Merge src/com/android/contacts/common/ from platform/packages/apps/ContactsCommon to src/com/android/contacts/common/
diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000..9e9a55a
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,86 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := optional
+
+contacts_common_dir := ../ContactsCommon
+phone_common_dir := ../PhoneCommon
+
+ifeq ($(TARGET_BUILD_APPS),)
+support_library_root_dir := frameworks/support
+else
+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
+
+LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
+LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs)) \
+    $(support_library_root_dir)/design/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 com.google.android.libraries.material.featurehighlight \
+    --extra-packages android.support.design \
+    --extra-packages android.support.v7.appcompat \
+    --extra-packages android.support.v7.cardview \
+    --extra-packages android.support.v7.recyclerview
+
+LOCAL_STATIC_JAVA_AAR_LIBRARIES := aar_feature_highlight
+
+LOCAL_STATIC_JAVA_LIBRARIES := \
+    android-common \
+    android-support-design \
+    android-support-v13 \
+    android-support-v7-appcompat \
+    android-support-v7-cardview \
+    android-support-v7-recyclerview \
+    android-support-v7-palette \
+    android-support-v4 \
+    com.android.vcard \
+    guava \
+    libphonenumber \
+    lib_animation \
+    lib_math \
+    lib_navigation_finder \
+    lib_path \
+    lib_util_objects \
+    lib_util_preconditions
+
+LOCAL_PACKAGE_NAME := Contacts
+LOCAL_CERTIFICATE := shared
+LOCAL_PRIVILEGED_MODULE := true
+
+LOCAL_PROGUARD_FLAG_FILES := proguard.flags
+
+LOCAL_SDK_VERSION := current
+LOCAL_MIN_SDK_VERSION := 21
+
+include $(BUILD_PACKAGE)
+
+#########################################################################################
+
+include $(CLEAR_VARS)
+# Import FeatureHighlight aar and its dependencies.
+LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := aar_feature_highlight:libs/featurehighlight.aar \
+    lib_animation:libs/libanimation.jar \
+    lib_math:libs/libmath.jar \
+    lib_navigation_finder:libs/libappcompat.jar \
+    lib_path:libs/libpath.jar \
+    lib_util_objects:libs/libutil_Objects.jar \
+    lib_util_preconditions:libs/libutil_Preconditions.jar
+
+include $(BUILD_MULTI_PREBUILT)
+
+#########################################################################################
+
+# Use the folloing include to make our test apk.
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
new file mode 100644
index 0000000..0bedf6b
--- /dev/null
+++ b/AndroidManifest.xml
@@ -0,0 +1,559 @@
+<?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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.contacts"
+    android:versionCode="10512"
+    android:versionName="1.5.12">
+
+    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="25" />
+
+    <original-package android:name="com.android.contacts" />
+
+    <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_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" />
+    <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" />
+    <!-- Following used for Contact metadata syncing -->
+    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
+
+    <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_square"
+        android:roundIcon="@mipmap/ic_contacts_launcher"
+        android:taskAffinity="android.task.contacts"
+        android:hardwareAccelerated="true"
+        android:supportsRtl="true"
+        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/PeopleActivityTheme"
+            android:alwaysRetainTaskState="true"
+            android:launchMode="singleTop"
+            android:resizeableActivity="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" />
+            </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" />
+            </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" />
+            </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" />
+            </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>
+
+            <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" />
+            </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" />
+            </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" />
+            </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"
+                android:resource="@xml/shortcuts"
+            />
+
+        </activity>
+
+        <activity android:name=".activities.ContactSelectionActivity"
+            android:label="@string/launcherActivityLabel"
+            android:theme="@style/ContactPickerTheme"
+            android:launchMode="singleTop"
+            android:clearTaskOnLaunch="true"
+            android:uiOptions="splitActionBarWhenNarrow"
+            android:windowSoftInputMode="adjustResize">
+            <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" />
+            </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" />
+                <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" />
+            </intent-filter>
+
+            <intent-filter>
+                <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"
+            android:targetActivity=".activities.PeopleActivity"
+        />
+
+        <!-- Backwards compatibility: "Contacts" from Honeycomb -->
+        <activity-alias android:name=".activities.ContactsFrontDoor"
+            android:targetActivity=".activities.PeopleActivity"
+            android:exported="true"
+        />
+
+        <!-- Backwards compatibility: "Contacts" from Gingerbread and earlier -->
+        <activity-alias android:name="DialtactsContactsEntryActivity"
+            android:targetActivity=".activities.PeopleActivity"
+            android:exported="true"
+        />
+
+        <!-- Used to set options -->
+        <activity
+            android:name=".common.preference.ContactsPreferenceActivity"
+            android:label="@string/activity_title_settings"
+            android:theme="@style/ContactsPreferencesTheme"
+            android:launchMode="singleTop"
+            android:exported="false"/>
+
+        <activity android:name=".common.activity.LicenseActivity"
+            android:label="@string/activity_title_licenses"
+            android:theme="@style/ContactsPreferencesTheme"
+            android:exported="false" />
+
+        <!-- Used to filter contacts list by account -->
+        <activity
+            android:name=".common.list.AccountFilterActivity"
+            android:label="@string/activity_title_contacts_filter"
+            android:theme="@style/ContactListFilterTheme" />
+
+        <!-- Used to select display and sync groups -->
+        <activity
+            android:name=".common.list.CustomContactListFilterActivity"
+            android:label="@string/custom_list_filter"
+            android:theme="@style/ContactListFilterTheme" />
+
+        <activity
+            android:name=".common.activity.RequestPermissionsActivity"
+            android:label="@string/launcherActivityLabel"
+            android:theme="@style/PeopleTheme"
+            android:exported="false"/>
+
+        <activity
+            android:name=".common.activity.RequestDesiredPermissionsActivity"
+            android:label="@string/launcherActivityLabel"
+            android:theme="@style/PeopleTheme"
+            android:exported="false"/>
+
+        <activity
+            android:name=".common.activity.RequestImportVCardPermissionsActivity"
+            android:label="@string/launcherActivityLabel"
+            android:theme="@style/PeopleTheme"
+            android:exported="false"/>
+
+        <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" />
+            </intent-filter>
+        </activity>
+
+        <!-- Displays the members of a group in a list -->
+        <activity android:name=".activities.GroupMembersActivity"
+            android:theme="@style/PeopleActivityTheme">
+
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+                <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.EDIT" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:mimeType="vnd.android.cursor.item/group" />
+            </intent-filter>
+        </activity>
+
+        <activity
+            android:name=".quickcontact.QuickContactActivity"
+            android:label="@string/quickContactActivityLabel"
+            android:theme="@style/Theme.QuickContact"
+            android:launchMode="singleTop"
+            android:excludeFromRecents="true"
+            android:taskAffinity=""
+            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" />
+            </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" />
+            </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>
+
+        <!-- Accounts changed prompt that can appear when creating a new contact. -->
+        <activity
+            android:name=".activities.ContactEditorAccountsChangedActivity"
+            android:theme="@style/ContactEditorAccountsChangedActivityTheme"
+            android:windowSoftInputMode="adjustResize"
+            android:exported="false"/>
+
+        <!-- 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">
+
+            <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>
+        </activity>
+
+        <activity android:name=".common.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" />
+
+        <!-- Service to save a contact -->
+        <service
+            android:name=".ContactSaveService"
+            android:exported="false" />
+
+        <!-- Attaches a photo to a contact. Started from external applications -->
+        <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" />
+            </intent-filter>
+        </activity>
+
+        <!-- vCard related -->
+        <activity android:name=".common.vcard.ImportVCardActivity"
+            android:label="@string/launcherActivityLabel"
+            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" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".common.vcard.NfcImportVCardActivity"
+            android:label="@string/launcherActivityLabel"
+            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" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".common.vcard.CancelActivity"
+            android:label="@string/launcherActivityLabel"
+            android:theme="@style/BackgroundOnlyTheme" />
+
+        <activity android:name=".common.vcard.SelectAccountActivity"
+            android:label="@string/launcherActivityLabel"
+            android:theme="@style/BackgroundOnlyTheme" />
+
+        <activity android:name=".common.vcard.ExportVCardActivity"
+            android:label="@string/launcherActivityLabel"
+            android:theme="@style/BackgroundOnlyTheme" />
+
+        <activity android:name=".common.vcard.ShareVCardActivity"
+                  android:label="@string/launcherActivityLabel"
+                  android:theme="@style/BackgroundOnlyTheme" />
+
+        <service
+            android:name=".common.vcard.VCardService"
+            android:exported="false" />
+        <!-- end vCard related -->
+
+        <!-- Intercept Dialer Intents for devices without a phone.
+             This activity should have the same intent filters as the DialtactsActivity,
+             so that its capturing the same events. Omit android.intent.category.LAUNCHER, because
+             we don't want this to show up in the Launcher. The priorities of the intent-filters
+             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"
+            >
+            <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">
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW"/>
+            </intent-filter>
+        </activity>
+
+        <!-- Service that is exclusively for the Phone application that sends out a view
+             notification. This service might be removed in future versions of the app.
+
+             This is called explicitly by the phone app via package name and class.
+             (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">
+            <intent-filter>
+                <action android:name="com.android.contacts.VIEW_NOTIFICATION"/>
+                <data android:mimeType="vnd.android.cursor.item/contact"/>
+            </intent-filter>
+        </service>
+
+        <provider
+            android:name="android.support.v4.content.FileProvider"
+            android:authorities="@string/contacts_file_provider_authority"
+            android:grantUriPermissions="true"
+            android:exported="false">
+            <meta-data
+                android:name="android.support.FILE_PROVIDER_PATHS"
+                android:resource="@xml/file_paths" />
+        </provider>
+
+        <meta-data android:name="android.nfc.disable_beam_default" android:value="true" />
+
+        <receiver android:name="com.android.contacts.editor.AccountsChangedBroadcastReceiver">
+            <intent-filter>
+                <action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED"/>
+            </intent-filter>
+        </receiver>
+    </application>
+</manifest>
diff --git a/CleanSpec.mk b/CleanSpec.mk
new file mode 100644
index 0000000..63f1939
--- /dev/null
+++ b/CleanSpec.mk
@@ -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.
+#
+
+# If you don't need to do a full clean build but would like to touch
+# a file or delete some intermediate files, add a clean step to the end
+# of the list.  These steps will only be run once, if they haven't been
+# run before.
+#
+# E.g.:
+#     $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
+#     $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
+#
+# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
+# files that are missing or have been moved.
+#
+# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
+# Use $(OUT_DIR) to refer to the "out" directory.
+#
+# If you need to re-do something that's already mentioned, just copy
+# the command and add it to the bottom of the list.  E.g., if a change
+# that you made last week required touching a file and a change you
+# made today requires touching the same file, just copy the old
+# touch step and add it to the end of the list.
+#
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
+
+# For example:
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
+#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
+#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
+
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/Contacts_intermediates)
diff --git a/MODULE_LICENSE_APACHE2 b/MODULE_LICENSE_APACHE2
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/MODULE_LICENSE_APACHE2
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..c5b1efa
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,190 @@
+
+   Copyright (c) 2005-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.
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+                                 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
+
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/icons/res/mipmap-hdpi/ic_contacts_launcher.png b/icons/res/mipmap-hdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..86380d1
--- /dev/null
+++ b/icons/res/mipmap-hdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/icons/res/mipmap-hdpi/ic_contacts_launcher_square.png b/icons/res/mipmap-hdpi/ic_contacts_launcher_square.png
new file mode 100644
index 0000000..64eff00
--- /dev/null
+++ b/icons/res/mipmap-hdpi/ic_contacts_launcher_square.png
Binary files differ
diff --git a/icons/res/mipmap-mdpi/ic_contacts_launcher.png b/icons/res/mipmap-mdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..85132c5
--- /dev/null
+++ b/icons/res/mipmap-mdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/icons/res/mipmap-mdpi/ic_contacts_launcher_square.png b/icons/res/mipmap-mdpi/ic_contacts_launcher_square.png
new file mode 100644
index 0000000..b4ee821
--- /dev/null
+++ b/icons/res/mipmap-mdpi/ic_contacts_launcher_square.png
Binary files differ
diff --git a/icons/res/mipmap-xhdpi/ic_contacts_launcher.png b/icons/res/mipmap-xhdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..c198749
--- /dev/null
+++ b/icons/res/mipmap-xhdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/icons/res/mipmap-xhdpi/ic_contacts_launcher_square.png b/icons/res/mipmap-xhdpi/ic_contacts_launcher_square.png
new file mode 100644
index 0000000..6feeadf
--- /dev/null
+++ b/icons/res/mipmap-xhdpi/ic_contacts_launcher_square.png
Binary files differ
diff --git a/icons/res/mipmap-xxhdpi/ic_contacts_launcher.png b/icons/res/mipmap-xxhdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..4fa10a6
--- /dev/null
+++ b/icons/res/mipmap-xxhdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/icons/res/mipmap-xxhdpi/ic_contacts_launcher_square.png b/icons/res/mipmap-xxhdpi/ic_contacts_launcher_square.png
new file mode 100644
index 0000000..01a3fde
--- /dev/null
+++ b/icons/res/mipmap-xxhdpi/ic_contacts_launcher_square.png
Binary files differ
diff --git a/icons/res/mipmap-xxxhdpi/ic_contacts_launcher.png b/icons/res/mipmap-xxxhdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..10bda63
--- /dev/null
+++ b/icons/res/mipmap-xxxhdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/icons/res/mipmap-xxxhdpi/ic_contacts_launcher_square.png b/icons/res/mipmap-xxxhdpi/ic_contacts_launcher_square.png
new file mode 100644
index 0000000..328e067
--- /dev/null
+++ b/icons/res/mipmap-xxxhdpi/ic_contacts_launcher_square.png
Binary files differ
diff --git a/libs/README.txt b/libs/README.txt
new file mode 100644
index 0000000..6232d95
--- /dev/null
+++ b/libs/README.txt
@@ -0,0 +1,9 @@
+featurehighlight.aar was generated from google3:
+blaze build java/com/google/android/libraries/material/featurehighlight:featurehighlight.aar
+
+Other libs are dependencies of featurehighlight.aar:
+blaze build java/com/google/android/libraries/material/featurehighlight/appcompat:appcompat for libappcompat.jar
+blaze build java/com/google/android/libraries/material/animation:animation for libanimation.jar
+blaze build java/com/google/android/libraries/stitch/util:util for libutil_Objects.jar and libutil_Preconditions.jar
+blaze build java/com/google/android/libraries/material/math:math for libmath.jar
+blaze build java/com/google/android/libraries/material/path:path for libpath.jar
diff --git a/libs/featurehighlight.aar b/libs/featurehighlight.aar
new file mode 100644
index 0000000..5497f57
--- /dev/null
+++ b/libs/featurehighlight.aar
Binary files differ
diff --git a/libs/libanimation.jar b/libs/libanimation.jar
new file mode 100644
index 0000000..868ffff
--- /dev/null
+++ b/libs/libanimation.jar
Binary files differ
diff --git a/libs/libappcompat.jar b/libs/libappcompat.jar
new file mode 100644
index 0000000..1cff196
--- /dev/null
+++ b/libs/libappcompat.jar
Binary files differ
diff --git a/libs/libmath.jar b/libs/libmath.jar
new file mode 100644
index 0000000..cec2e2a
--- /dev/null
+++ b/libs/libmath.jar
Binary files differ
diff --git a/libs/libpath.jar b/libs/libpath.jar
new file mode 100644
index 0000000..cb31ec0
--- /dev/null
+++ b/libs/libpath.jar
Binary files differ
diff --git a/libs/libutil_Objects.jar b/libs/libutil_Objects.jar
new file mode 100644
index 0000000..d55a3e9
--- /dev/null
+++ b/libs/libutil_Objects.jar
Binary files differ
diff --git a/libs/libutil_Preconditions.jar b/libs/libutil_Preconditions.jar
new file mode 100644
index 0000000..0f27ae2
--- /dev/null
+++ b/libs/libutil_Preconditions.jar
Binary files differ
diff --git a/proguard.flags b/proguard.flags
new file mode 100644
index 0000000..baff4b6
--- /dev/null
+++ b/proguard.flags
@@ -0,0 +1,37 @@
+-keep class com.android.contacts.model.Sources {
+  public <init>(...);
+}
+
+# Xml files containing onClick (menus and layouts) require that proguard not
+# remove their handlers.
+-keepclassmembers class * extends android.app.Activity {
+  public void *(android.view.View);
+  public void *(android.view.MenuItem);
+}
+
+-keep class com.google.android.libraries.material.featurehighlight.** { *;}
+
+-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 { *;}
+
+# Any class or method annotated with NeededForTesting or NeededForReflection.
+-keep @com.android.contacts.common.testing.NeededForTesting class *
+-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
new file mode 100644
index 0000000..35d15e7
--- /dev/null
+++ b/res-aosp/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/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/drawable-hdpi/ab_solid_custom_blue_inverse_holo.9.png b/res/drawable-hdpi/ab_solid_custom_blue_inverse_holo.9.png
new file mode 100644
index 0000000..956d61b
--- /dev/null
+++ b/res/drawable-hdpi/ab_solid_custom_blue_inverse_holo.9.png
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
new file mode 100644
index 0000000..42528b1
--- /dev/null
+++ b/res/drawable-hdpi/ab_stacked_solid_inverse_holo.9.png
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
new file mode 100644
index 0000000..d279fb1
--- /dev/null
+++ b/res/drawable-hdpi/aggregation_suggestions_bg.9.png
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
new file mode 100644
index 0000000..da1fe94
--- /dev/null
+++ b/res/drawable-hdpi/aggregation_suggestions_bg_light_holo.9.png
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
new file mode 100644
index 0000000..e285c66
--- /dev/null
+++ b/res/drawable-hdpi/btn_star_off_normal_holo_light.png
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
new file mode 100644
index 0000000..4b34e57
--- /dev/null
+++ b/res/drawable-hdpi/btn_star_on_normal_holo_light.png
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
new file mode 100644
index 0000000..50ebbc5
--- /dev/null
+++ b/res/drawable-hdpi/expanding_entry_card_expand_white_24.png
Binary files differ
diff --git a/res/drawable-hdpi/fab_blue.png b/res/drawable-hdpi/fab_blue.png
new file mode 100644
index 0000000..8ff3d29
--- /dev/null
+++ b/res/drawable-hdpi/fab_blue.png
Binary files differ
diff --git a/res/drawable-hdpi/generic_business_white_540dp.png b/res/drawable-hdpi/generic_business_white_540dp.png
new file mode 100644
index 0000000..14665ff
--- /dev/null
+++ b/res/drawable-hdpi/generic_business_white_540dp.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
new file mode 100644
index 0000000..ba5a509
--- /dev/null
+++ b/res/drawable-hdpi/ic_account_circle_black_24dp.png
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
new file mode 100644
index 0000000..5229623
--- /dev/null
+++ b/res/drawable-hdpi/ic_add_contact_holo_light.png
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
new file mode 100644
index 0000000..6d46ccf
--- /dev/null
+++ b/res/drawable-hdpi/ic_add_group_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_business_black_24dp.png b/res/drawable-hdpi/ic_business_black_24dp.png
new file mode 100644
index 0000000..fa069ab
--- /dev/null
+++ b/res/drawable-hdpi/ic_business_black_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_call_arrow.png b/res/drawable-hdpi/ic_call_arrow.png
new file mode 100644
index 0000000..14a33e3
--- /dev/null
+++ b/res/drawable-hdpi/ic_call_arrow.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
new file mode 100644
index 0000000..4978a3a
--- /dev/null
+++ b/res/drawable-hdpi/ic_camera_alt_black_24dp.png
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
new file mode 100644
index 0000000..da6561d
--- /dev/null
+++ b/res/drawable-hdpi/ic_check_circle_googblue_drawable_24dp.png
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
new file mode 100644
index 0000000..8973e89
--- /dev/null
+++ b/res/drawable-hdpi/ic_circles_extended_black_24dp.png
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
new file mode 100644
index 0000000..37dabfc
--- /dev/null
+++ b/res/drawable-hdpi/ic_dialer_sip_black_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_directions_24dp.png b/res/drawable-hdpi/ic_directions_24dp.png
new file mode 100644
index 0000000..c378972
--- /dev/null
+++ b/res/drawable-hdpi/ic_directions_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_done_wht_24dp.png b/res/drawable-hdpi/ic_done_wht_24dp.png
new file mode 100644
index 0000000..12ce8e0
--- /dev/null
+++ b/res/drawable-hdpi/ic_done_wht_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_email_24dp.png b/res/drawable-hdpi/ic_email_24dp.png
new file mode 100644
index 0000000..231b141
--- /dev/null
+++ b/res/drawable-hdpi/ic_email_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_event_24dp.png b/res/drawable-hdpi/ic_event_24dp.png
new file mode 100644
index 0000000..023695a
--- /dev/null
+++ b/res/drawable-hdpi/ic_event_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_hangout_24dp.png b/res/drawable-hdpi/ic_hangout_24dp.png
new file mode 100644
index 0000000..496a2a0
--- /dev/null
+++ b/res/drawable-hdpi/ic_hangout_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_hangout_video_24dp.png b/res/drawable-hdpi/ic_hangout_video_24dp.png
new file mode 100644
index 0000000..0825a15
--- /dev/null
+++ b/res/drawable-hdpi/ic_hangout_video_24dp.png
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
new file mode 100644
index 0000000..d472658
--- /dev/null
+++ b/res/drawable-hdpi/ic_insert_comment_black_24dp.png
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
new file mode 100644
index 0000000..31fcce2
--- /dev/null
+++ b/res/drawable-hdpi/ic_link_grey600_drawable_24dp.png
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
new file mode 100644
index 0000000..41c6eda
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_expander_maximized_holo_light.png
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
new file mode 100644
index 0000000..a3b22bc
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_expander_minimized_holo_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_person_black_24dp.png b/res/drawable-hdpi/ic_person_black_24dp.png
new file mode 100644
index 0000000..2eeb7c6
--- /dev/null
+++ b/res/drawable-hdpi/ic_person_black_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_phone_24dp.png b/res/drawable-hdpi/ic_phone_24dp.png
new file mode 100644
index 0000000..a6a6448
--- /dev/null
+++ b/res/drawable-hdpi/ic_phone_24dp.png
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
new file mode 100644
index 0000000..497c88c
--- /dev/null
+++ b/res/drawable-hdpi/ic_photo_camera_white_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_photos_white_24.png b/res/drawable-hdpi/ic_photos_white_24.png
new file mode 100644
index 0000000..a5180a1
--- /dev/null
+++ b/res/drawable-hdpi/ic_photos_white_24.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_place_24dp.png b/res/drawable-hdpi/ic_place_24dp.png
new file mode 100644
index 0000000..8e21320
--- /dev/null
+++ b/res/drawable-hdpi/ic_place_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_public_black_24dp.png b/res/drawable-hdpi/ic_public_black_24dp.png
new file mode 100644
index 0000000..e3cdeb4
--- /dev/null
+++ b/res/drawable-hdpi/ic_public_black_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_star_24dp.png b/res/drawable-hdpi/ic_star_24dp.png
new file mode 100644
index 0000000..b3d2f44
--- /dev/null
+++ b/res/drawable-hdpi/ic_star_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_star_outline_24dp.png b/res/drawable-hdpi/ic_star_outline_24dp.png
new file mode 100644
index 0000000..4d4b7c1
--- /dev/null
+++ b/res/drawable-hdpi/ic_star_outline_24dp.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/logo_quick_contacts_color_44in48dp.png b/res/drawable-hdpi/logo_quick_contacts_color_44in48dp.png
new file mode 100644
index 0000000..a52fe5a
--- /dev/null
+++ b/res/drawable-hdpi/logo_quick_contacts_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-hdpi/logo_quick_contacts_dialer_color_44in48dp.png b/res/drawable-hdpi/logo_quick_contacts_dialer_color_44in48dp.png
new file mode 100644
index 0000000..a3591ec
--- /dev/null
+++ b/res/drawable-hdpi/logo_quick_contacts_dialer_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-hdpi/logo_quick_contacts_mail_color_44in48dp.png b/res/drawable-hdpi/logo_quick_contacts_mail_color_44in48dp.png
new file mode 100644
index 0000000..5a77a44
--- /dev/null
+++ b/res/drawable-hdpi/logo_quick_contacts_mail_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-hdpi/panel_content.9.png b/res/drawable-hdpi/panel_content.9.png
new file mode 100644
index 0000000..5c3090d
--- /dev/null
+++ b/res/drawable-hdpi/panel_content.9.png
Binary files differ
diff --git a/res/drawable-hdpi/person_white_540dp.png b/res/drawable-hdpi/person_white_540dp.png
new file mode 100644
index 0000000..fc168ef
--- /dev/null
+++ b/res/drawable-hdpi/person_white_540dp.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
new file mode 100644
index 0000000..a3aa76f
--- /dev/null
+++ b/res/drawable-hdpi/quantum_ic_assistant_grey600_48.png
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
new file mode 100644
index 0000000..db4ce80
--- /dev/null
+++ b/res/drawable-hdpi/quickcontact_badge_overlay_normal_light.9.png
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
new file mode 100644
index 0000000..169cd4e
--- /dev/null
+++ b/res/drawable-hdpi/quickcontact_badge_overlay_pressed_light.9.png
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
new file mode 100644
index 0000000..8bea3ec
--- /dev/null
+++ b/res/drawable-hdpi/sym_action_audiochat_holo_light.png
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
new file mode 100644
index 0000000..b86c435
--- /dev/null
+++ b/res/drawable-hdpi/sym_action_videochat_holo_light.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
new file mode 100644
index 0000000..4cf24e2
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_add_contact_holo_light.png
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
new file mode 100644
index 0000000..54f247a
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/ic_add_group_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/panel_content.9.png b/res/drawable-ldrtl-hdpi/panel_content.9.png
new file mode 100644
index 0000000..1ab1f12
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/panel_content.9.png
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
new file mode 100644
index 0000000..a3aa76f
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/quantum_ic_assistant_grey600_48.png
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
new file mode 100644
index 0000000..1f833d3
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/quickcontact_badge_overlay_normal_light.9.png
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
new file mode 100644
index 0000000..3adbc84
--- /dev/null
+++ b/res/drawable-ldrtl-hdpi/quickcontact_badge_overlay_pressed_light.9.png
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
new file mode 100644
index 0000000..5c0f756
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_add_contact_holo_light.png
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
new file mode 100644
index 0000000..a984b56
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/ic_add_group_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/panel_content.9.png b/res/drawable-ldrtl-mdpi/panel_content.9.png
new file mode 100644
index 0000000..b157502
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/panel_content.9.png
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
new file mode 100644
index 0000000..a3aa76f
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/quantum_ic_assistant_grey600_48.png
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
new file mode 100644
index 0000000..1b0905a
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/quickcontact_badge_overlay_normal_light.9.png
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
new file mode 100644
index 0000000..179644c
--- /dev/null
+++ b/res/drawable-ldrtl-mdpi/quickcontact_badge_overlay_pressed_light.9.png
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
new file mode 100644
index 0000000..2bd27c7
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_add_contact_holo_light.png
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
new file mode 100644
index 0000000..3688e46
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/ic_add_group_holo_dark.png
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/panel_content.9.png b/res/drawable-ldrtl-xhdpi/panel_content.9.png
new file mode 100644
index 0000000..eb0e2d7
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/panel_content.9.png
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
new file mode 100644
index 0000000..a3aa76f
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/quantum_ic_assistant_grey600_48.png
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
new file mode 100644
index 0000000..6b22d44
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/quickcontact_badge_overlay_normal_light.9.png
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
new file mode 100644
index 0000000..2a1d508
--- /dev/null
+++ b/res/drawable-ldrtl-xhdpi/quickcontact_badge_overlay_pressed_light.9.png
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
new file mode 100644
index 0000000..3e9f167
--- /dev/null
+++ b/res/drawable-mdpi/ab_solid_custom_blue_inverse_holo.9.png
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
new file mode 100644
index 0000000..a823841
--- /dev/null
+++ b/res/drawable-mdpi/ab_stacked_solid_inverse_holo.9.png
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
new file mode 100644
index 0000000..6cce274
--- /dev/null
+++ b/res/drawable-mdpi/aggregation_suggestions_bg.9.png
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
new file mode 100644
index 0000000..03e24c6
--- /dev/null
+++ b/res/drawable-mdpi/aggregation_suggestions_bg_light_holo.9.png
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
new file mode 100644
index 0000000..3bb4154
--- /dev/null
+++ b/res/drawable-mdpi/btn_star_off_normal_holo_light.png
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
new file mode 100644
index 0000000..4da97e2
--- /dev/null
+++ b/res/drawable-mdpi/btn_star_on_normal_holo_light.png
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
new file mode 100644
index 0000000..a0d4063
--- /dev/null
+++ b/res/drawable-mdpi/expanding_entry_card_expand_white_24.png
Binary files differ
diff --git a/res/drawable-mdpi/fab_blue.png b/res/drawable-mdpi/fab_blue.png
new file mode 100644
index 0000000..2ca6b4b
--- /dev/null
+++ b/res/drawable-mdpi/fab_blue.png
Binary files differ
diff --git a/res/drawable-mdpi/generic_business_white_540dp.png b/res/drawable-mdpi/generic_business_white_540dp.png
new file mode 100644
index 0000000..b4023b8
--- /dev/null
+++ b/res/drawable-mdpi/generic_business_white_540dp.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
new file mode 100644
index 0000000..0c1202d
--- /dev/null
+++ b/res/drawable-mdpi/ic_account_circle_black_24dp.png
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
new file mode 100644
index 0000000..06a43a2
--- /dev/null
+++ b/res/drawable-mdpi/ic_add_contact_holo_light.png
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
new file mode 100644
index 0000000..a676ab8
--- /dev/null
+++ b/res/drawable-mdpi/ic_add_group_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_business_black_24dp.png b/res/drawable-mdpi/ic_business_black_24dp.png
new file mode 100644
index 0000000..1c54f8b
--- /dev/null
+++ b/res/drawable-mdpi/ic_business_black_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_call_arrow.png b/res/drawable-mdpi/ic_call_arrow.png
new file mode 100644
index 0000000..169cf29
--- /dev/null
+++ b/res/drawable-mdpi/ic_call_arrow.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
new file mode 100644
index 0000000..90dd073
--- /dev/null
+++ b/res/drawable-mdpi/ic_camera_alt_black_24dp.png
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
new file mode 100644
index 0000000..efa2fdf
--- /dev/null
+++ b/res/drawable-mdpi/ic_check_circle_googblue_drawable_24dp.png
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
new file mode 100644
index 0000000..e851532
--- /dev/null
+++ b/res/drawable-mdpi/ic_circles_extended_black_24dp.png
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
new file mode 100644
index 0000000..51d5e13
--- /dev/null
+++ b/res/drawable-mdpi/ic_dialer_sip_black_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_directions_24dp.png b/res/drawable-mdpi/ic_directions_24dp.png
new file mode 100644
index 0000000..bd171d2
--- /dev/null
+++ b/res/drawable-mdpi/ic_directions_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_done_wht_24dp.png b/res/drawable-mdpi/ic_done_wht_24dp.png
new file mode 100644
index 0000000..1032711
--- /dev/null
+++ b/res/drawable-mdpi/ic_done_wht_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_email_24dp.png b/res/drawable-mdpi/ic_email_24dp.png
new file mode 100644
index 0000000..c32d03a
--- /dev/null
+++ b/res/drawable-mdpi/ic_email_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_event_24dp.png b/res/drawable-mdpi/ic_event_24dp.png
new file mode 100644
index 0000000..f5abeb7
--- /dev/null
+++ b/res/drawable-mdpi/ic_event_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_hangout_24dp.png b/res/drawable-mdpi/ic_hangout_24dp.png
new file mode 100644
index 0000000..1b0acfd
--- /dev/null
+++ b/res/drawable-mdpi/ic_hangout_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_hangout_video_24dp.png b/res/drawable-mdpi/ic_hangout_video_24dp.png
new file mode 100644
index 0000000..b54b1cb
--- /dev/null
+++ b/res/drawable-mdpi/ic_hangout_video_24dp.png
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
new file mode 100644
index 0000000..3a2bda7
--- /dev/null
+++ b/res/drawable-mdpi/ic_insert_comment_black_24dp.png
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
new file mode 100644
index 0000000..65997eb
--- /dev/null
+++ b/res/drawable-mdpi/ic_link_grey600_drawable_24dp.png
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
new file mode 100644
index 0000000..342867c
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_expander_maximized_holo_light.png
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
new file mode 100644
index 0000000..f447069
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_expander_minimized_holo_light.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_person_black_24dp.png b/res/drawable-mdpi/ic_person_black_24dp.png
new file mode 100644
index 0000000..8c415b9
--- /dev/null
+++ b/res/drawable-mdpi/ic_person_black_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_phone_24dp.png b/res/drawable-mdpi/ic_phone_24dp.png
new file mode 100644
index 0000000..2286bb4
--- /dev/null
+++ b/res/drawable-mdpi/ic_phone_24dp.png
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
new file mode 100644
index 0000000..e830522
--- /dev/null
+++ b/res/drawable-mdpi/ic_photo_camera_white_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_photos_white_24.png b/res/drawable-mdpi/ic_photos_white_24.png
new file mode 100644
index 0000000..e0e5854
--- /dev/null
+++ b/res/drawable-mdpi/ic_photos_white_24.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_place_24dp.png b/res/drawable-mdpi/ic_place_24dp.png
new file mode 100644
index 0000000..2ef1381
--- /dev/null
+++ b/res/drawable-mdpi/ic_place_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_public_black_24dp.png b/res/drawable-mdpi/ic_public_black_24dp.png
new file mode 100644
index 0000000..b18b4ec
--- /dev/null
+++ b/res/drawable-mdpi/ic_public_black_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_star_24dp.png b/res/drawable-mdpi/ic_star_24dp.png
new file mode 100644
index 0000000..b8f32f8
--- /dev/null
+++ b/res/drawable-mdpi/ic_star_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_star_outline_24dp.png b/res/drawable-mdpi/ic_star_outline_24dp.png
new file mode 100644
index 0000000..22b4fb8
--- /dev/null
+++ b/res/drawable-mdpi/ic_star_outline_24dp.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/logo_quick_contacts_color_44in48dp.png b/res/drawable-mdpi/logo_quick_contacts_color_44in48dp.png
new file mode 100644
index 0000000..7c7f2de
--- /dev/null
+++ b/res/drawable-mdpi/logo_quick_contacts_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-mdpi/logo_quick_contacts_dialer_color_44in48dp.png b/res/drawable-mdpi/logo_quick_contacts_dialer_color_44in48dp.png
new file mode 100644
index 0000000..846c5cf
--- /dev/null
+++ b/res/drawable-mdpi/logo_quick_contacts_dialer_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-mdpi/logo_quick_contacts_mail_color_44in48dp.png b/res/drawable-mdpi/logo_quick_contacts_mail_color_44in48dp.png
new file mode 100644
index 0000000..9d4056e
--- /dev/null
+++ b/res/drawable-mdpi/logo_quick_contacts_mail_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-mdpi/panel_content.9.png b/res/drawable-mdpi/panel_content.9.png
new file mode 100644
index 0000000..c5d2545
--- /dev/null
+++ b/res/drawable-mdpi/panel_content.9.png
Binary files differ
diff --git a/res/drawable-mdpi/person_white_540dp.png b/res/drawable-mdpi/person_white_540dp.png
new file mode 100644
index 0000000..053e8b6
--- /dev/null
+++ b/res/drawable-mdpi/person_white_540dp.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
new file mode 100644
index 0000000..a3aa76f
--- /dev/null
+++ b/res/drawable-mdpi/quantum_ic_assistant_grey600_48.png
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
new file mode 100644
index 0000000..886b044
--- /dev/null
+++ b/res/drawable-mdpi/quickcontact_badge_overlay_normal_light.9.png
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
new file mode 100644
index 0000000..c714a3b
--- /dev/null
+++ b/res/drawable-mdpi/quickcontact_badge_overlay_pressed_light.9.png
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
new file mode 100644
index 0000000..9e6e328
--- /dev/null
+++ b/res/drawable-mdpi/sym_action_audiochat_holo_light.png
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
new file mode 100644
index 0000000..0ef40f8
--- /dev/null
+++ b/res/drawable-mdpi/sym_action_videochat_holo_light.png
Binary files differ
diff --git a/res/drawable-v21/drawer_item_background.xml b/res/drawable-v21/drawer_item_background.xml
new file mode 100644
index 0000000..cfc7761
--- /dev/null
+++ b/res/drawable-v21/drawer_item_background.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
+  -->
+
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="@color/nav_item_selected_background">
+  <item>
+    <selector>
+      <item android:drawable="@color/nav_item_selected_background" android:state_checked="true"/>
+      <item android:drawable="@android:color/transparent"/>
+    </selector>
+  </item>
+</ripple>
\ No newline at end of file
diff --git a/res/drawable-v21/floating_action_button.xml b/res/drawable-v21/floating_action_button.xml
new file mode 100644
index 0000000..9a90112
--- /dev/null
+++ b/res/drawable-v21/floating_action_button.xml
@@ -0,0 +1,25 @@
+<?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
new file mode 100644
index 0000000..00c6db7
--- /dev/null
+++ b/res/drawable-v21/view_pager_tab_background.xml
@@ -0,0 +1,22 @@
+<?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
new file mode 100644
index 0000000..31fea59
--- /dev/null
+++ b/res/drawable-xhdpi/ab_solid_custom_blue_inverse_holo.9.png
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
new file mode 100644
index 0000000..16b9bef
--- /dev/null
+++ b/res/drawable-xhdpi/ab_stacked_solid_inverse_holo.9.png
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
new file mode 100644
index 0000000..816cc0b
--- /dev/null
+++ b/res/drawable-xhdpi/aggregation_suggestions_bg.9.png
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
new file mode 100644
index 0000000..94ae50a
--- /dev/null
+++ b/res/drawable-xhdpi/aggregation_suggestions_bg_light_holo.9.png
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
new file mode 100644
index 0000000..e6048d9
--- /dev/null
+++ b/res/drawable-xhdpi/btn_star_off_normal_holo_light.png
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
new file mode 100644
index 0000000..5588118
--- /dev/null
+++ b/res/drawable-xhdpi/btn_star_on_normal_holo_light.png
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
new file mode 100644
index 0000000..42e9f2c
--- /dev/null
+++ b/res/drawable-xhdpi/expanding_entry_card_expand_white_24.png
Binary files differ
diff --git a/res/drawable-xhdpi/fab_blue.png b/res/drawable-xhdpi/fab_blue.png
new file mode 100644
index 0000000..300b07e
--- /dev/null
+++ b/res/drawable-xhdpi/fab_blue.png
Binary files differ
diff --git a/res/drawable-xhdpi/generic_business_white_540dp.png b/res/drawable-xhdpi/generic_business_white_540dp.png
new file mode 100644
index 0000000..4f38ea7
--- /dev/null
+++ b/res/drawable-xhdpi/generic_business_white_540dp.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
new file mode 100644
index 0000000..f26b201
--- /dev/null
+++ b/res/drawable-xhdpi/ic_account_circle_black_24dp.png
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
new file mode 100644
index 0000000..4fa8b94
--- /dev/null
+++ b/res/drawable-xhdpi/ic_add_contact_holo_light.png
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
new file mode 100644
index 0000000..85924ab
--- /dev/null
+++ b/res/drawable-xhdpi/ic_add_group_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_business_black_24dp.png b/res/drawable-xhdpi/ic_business_black_24dp.png
new file mode 100644
index 0000000..9e3b9b8
--- /dev/null
+++ b/res/drawable-xhdpi/ic_business_black_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_call_arrow.png b/res/drawable-xhdpi/ic_call_arrow.png
new file mode 100644
index 0000000..6f13660
--- /dev/null
+++ b/res/drawable-xhdpi/ic_call_arrow.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
new file mode 100644
index 0000000..8522251
--- /dev/null
+++ b/res/drawable-xhdpi/ic_camera_alt_black_24dp.png
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
new file mode 100644
index 0000000..70a22c9
--- /dev/null
+++ b/res/drawable-xhdpi/ic_check_circle_googblue_drawable_24dp.png
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
new file mode 100644
index 0000000..e87e928
--- /dev/null
+++ b/res/drawable-xhdpi/ic_circles_extended_black_24dp.png
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
new file mode 100644
index 0000000..619a79f
--- /dev/null
+++ b/res/drawable-xhdpi/ic_dialer_sip_black_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_directions_24dp.png b/res/drawable-xhdpi/ic_directions_24dp.png
new file mode 100644
index 0000000..99cde4a
--- /dev/null
+++ b/res/drawable-xhdpi/ic_directions_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_done_wht_24dp.png b/res/drawable-xhdpi/ic_done_wht_24dp.png
new file mode 100644
index 0000000..e34b73e
--- /dev/null
+++ b/res/drawable-xhdpi/ic_done_wht_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_email_24dp.png b/res/drawable-xhdpi/ic_email_24dp.png
new file mode 100644
index 0000000..adf14ef
--- /dev/null
+++ b/res/drawable-xhdpi/ic_email_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_event_24dp.png b/res/drawable-xhdpi/ic_event_24dp.png
new file mode 100644
index 0000000..a2bd4b2
--- /dev/null
+++ b/res/drawable-xhdpi/ic_event_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_hangout_24dp.png b/res/drawable-xhdpi/ic_hangout_24dp.png
new file mode 100644
index 0000000..0cd7795
--- /dev/null
+++ b/res/drawable-xhdpi/ic_hangout_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_hangout_video_24dp.png b/res/drawable-xhdpi/ic_hangout_video_24dp.png
new file mode 100644
index 0000000..97b984c
--- /dev/null
+++ b/res/drawable-xhdpi/ic_hangout_video_24dp.png
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
new file mode 100644
index 0000000..3ddd56b
--- /dev/null
+++ b/res/drawable-xhdpi/ic_insert_comment_black_24dp.png
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
new file mode 100644
index 0000000..9f37410
--- /dev/null
+++ b/res/drawable-xhdpi/ic_link_grey600_drawable_24dp.png
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
new file mode 100644
index 0000000..6a5ef9b
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_expander_maximized_holo_light.png
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
new file mode 100644
index 0000000..cb53db8
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_expander_minimized_holo_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_person_black_24dp.png b/res/drawable-xhdpi/ic_person_black_24dp.png
new file mode 100644
index 0000000..ec56af9
--- /dev/null
+++ b/res/drawable-xhdpi/ic_person_black_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_phone_24dp.png b/res/drawable-xhdpi/ic_phone_24dp.png
new file mode 100644
index 0000000..cd9ff60
--- /dev/null
+++ b/res/drawable-xhdpi/ic_phone_24dp.png
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
new file mode 100644
index 0000000..be9fb22
--- /dev/null
+++ b/res/drawable-xhdpi/ic_photo_camera_white_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_photos_white_24.png b/res/drawable-xhdpi/ic_photos_white_24.png
new file mode 100644
index 0000000..bc64bb0
--- /dev/null
+++ b/res/drawable-xhdpi/ic_photos_white_24.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_place_24dp.png b/res/drawable-xhdpi/ic_place_24dp.png
new file mode 100644
index 0000000..0f8bc5b
--- /dev/null
+++ b/res/drawable-xhdpi/ic_place_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_public_black_24dp.png b/res/drawable-xhdpi/ic_public_black_24dp.png
new file mode 100644
index 0000000..a3ab24c
--- /dev/null
+++ b/res/drawable-xhdpi/ic_public_black_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_star_24dp.png b/res/drawable-xhdpi/ic_star_24dp.png
new file mode 100644
index 0000000..e1ae246
--- /dev/null
+++ b/res/drawable-xhdpi/ic_star_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_star_outline_24dp.png b/res/drawable-xhdpi/ic_star_outline_24dp.png
new file mode 100644
index 0000000..f7dacfd
--- /dev/null
+++ b/res/drawable-xhdpi/ic_star_outline_24dp.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/logo_quick_contacts_color_44in48dp.png b/res/drawable-xhdpi/logo_quick_contacts_color_44in48dp.png
new file mode 100644
index 0000000..be27c75
--- /dev/null
+++ b/res/drawable-xhdpi/logo_quick_contacts_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/logo_quick_contacts_dialer_color_44in48dp.png b/res/drawable-xhdpi/logo_quick_contacts_dialer_color_44in48dp.png
new file mode 100644
index 0000000..38f6af8
--- /dev/null
+++ b/res/drawable-xhdpi/logo_quick_contacts_dialer_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/logo_quick_contacts_mail_color_44in48dp.png b/res/drawable-xhdpi/logo_quick_contacts_mail_color_44in48dp.png
new file mode 100644
index 0000000..ba83fa3
--- /dev/null
+++ b/res/drawable-xhdpi/logo_quick_contacts_mail_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/panel_content.9.png b/res/drawable-xhdpi/panel_content.9.png
new file mode 100644
index 0000000..6acbbb1
--- /dev/null
+++ b/res/drawable-xhdpi/panel_content.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/person_white_540dp.png b/res/drawable-xhdpi/person_white_540dp.png
new file mode 100644
index 0000000..1713727
--- /dev/null
+++ b/res/drawable-xhdpi/person_white_540dp.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
new file mode 100644
index 0000000..a3aa76f
--- /dev/null
+++ b/res/drawable-xhdpi/quantum_ic_assistant_grey600_48.png
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
new file mode 100644
index 0000000..2d3e5c8
--- /dev/null
+++ b/res/drawable-xhdpi/quickcontact_badge_overlay_normal_light.9.png
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
new file mode 100644
index 0000000..b038621
--- /dev/null
+++ b/res/drawable-xhdpi/quickcontact_badge_overlay_pressed_light.9.png
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
new file mode 100644
index 0000000..163e632
--- /dev/null
+++ b/res/drawable-xhdpi/sym_action_audiochat_holo_light.png
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
new file mode 100644
index 0000000..1ec2f63
--- /dev/null
+++ b/res/drawable-xhdpi/sym_action_videochat_holo_light.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
new file mode 100644
index 0000000..24c267f
--- /dev/null
+++ b/res/drawable-xxhdpi/ab_solid_custom_blue_inverse_holo.9.png
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
new file mode 100644
index 0000000..4ebf2f6
--- /dev/null
+++ b/res/drawable-xxhdpi/btn_star_off_normal_holo_light.png
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
new file mode 100644
index 0000000..9f07084
--- /dev/null
+++ b/res/drawable-xxhdpi/btn_star_on_normal_holo_light.png
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
new file mode 100644
index 0000000..af4d711
--- /dev/null
+++ b/res/drawable-xxhdpi/expanding_entry_card_expand_white_24.png
Binary files differ
diff --git a/res/drawable-xxhdpi/fab_blue.png b/res/drawable-xxhdpi/fab_blue.png
new file mode 100644
index 0000000..76d68ac
--- /dev/null
+++ b/res/drawable-xxhdpi/fab_blue.png
Binary files differ
diff --git a/res/drawable-xxhdpi/generic_business_white_540dp.png b/res/drawable-xxhdpi/generic_business_white_540dp.png
new file mode 100644
index 0000000..ada66e7
--- /dev/null
+++ b/res/drawable-xxhdpi/generic_business_white_540dp.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
new file mode 100644
index 0000000..3cc0a63
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_account_circle_black_24dp.png
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
new file mode 100644
index 0000000..b6d756d
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_add_contact_holo_light.png
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
new file mode 100644
index 0000000..44d8fe9
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_add_group_holo_dark.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_business_black_24dp.png b/res/drawable-xxhdpi/ic_business_black_24dp.png
new file mode 100644
index 0000000..85ddede
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_business_black_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_call_arrow.png b/res/drawable-xxhdpi/ic_call_arrow.png
new file mode 100644
index 0000000..0364ee0
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_call_arrow.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
new file mode 100644
index 0000000..fe8974e
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_camera_alt_black_24dp.png
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
new file mode 100644
index 0000000..7ac3497
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_check_circle_googblue_drawable_24dp.png
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
new file mode 100644
index 0000000..ec09d57
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_circles_extended_black_24dp.png
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
new file mode 100644
index 0000000..f1466a1
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_dialer_sip_black_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_directions_24dp.png b/res/drawable-xxhdpi/ic_directions_24dp.png
new file mode 100644
index 0000000..e0d53a3
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_directions_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_done_wht_24dp.png b/res/drawable-xxhdpi/ic_done_wht_24dp.png
new file mode 100644
index 0000000..4c6a653
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_done_wht_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_email_24dp.png b/res/drawable-xxhdpi/ic_email_24dp.png
new file mode 100644
index 0000000..d1fc5fc
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_email_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_event_24dp.png b/res/drawable-xxhdpi/ic_event_24dp.png
new file mode 100644
index 0000000..f27a424
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_event_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_hangout_24dp.png b/res/drawable-xxhdpi/ic_hangout_24dp.png
new file mode 100644
index 0000000..16858d1
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_hangout_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_hangout_video_24dp.png b/res/drawable-xxhdpi/ic_hangout_video_24dp.png
new file mode 100644
index 0000000..4183c76
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_hangout_video_24dp.png
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
new file mode 100644
index 0000000..3039cc1
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_insert_comment_black_24dp.png
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
new file mode 100644
index 0000000..140daef
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_link_grey600_drawable_24dp.png
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
new file mode 100644
index 0000000..a42aec2
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_menu_expander_maximized_holo_light.png
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
new file mode 100644
index 0000000..1ca2e46
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_menu_expander_minimized_holo_light.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_person_black_24dp.png b/res/drawable-xxhdpi/ic_person_black_24dp.png
new file mode 100644
index 0000000..89e8264
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_person_black_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_phone_24dp.png b/res/drawable-xxhdpi/ic_phone_24dp.png
new file mode 100644
index 0000000..ab538ff
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_phone_24dp.png
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
new file mode 100644
index 0000000..c8e69dc
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_photo_camera_white_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_photos_white_24.png b/res/drawable-xxhdpi/ic_photos_white_24.png
new file mode 100644
index 0000000..2cb5dbc
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_photos_white_24.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_place_24dp.png b/res/drawable-xxhdpi/ic_place_24dp.png
new file mode 100644
index 0000000..8a37614
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_place_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_public_black_24dp.png b/res/drawable-xxhdpi/ic_public_black_24dp.png
new file mode 100644
index 0000000..c7d17e3
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_public_black_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_star_24dp.png b/res/drawable-xxhdpi/ic_star_24dp.png
new file mode 100644
index 0000000..34e7c56
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_star_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_star_outline_24dp.png b/res/drawable-xxhdpi/ic_star_outline_24dp.png
new file mode 100644
index 0000000..2afcf04
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_star_outline_24dp.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/logo_quick_contacts_color_44in48dp.png b/res/drawable-xxhdpi/logo_quick_contacts_color_44in48dp.png
new file mode 100644
index 0000000..94334ba
--- /dev/null
+++ b/res/drawable-xxhdpi/logo_quick_contacts_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/logo_quick_contacts_dialer_color_44in48dp.png b/res/drawable-xxhdpi/logo_quick_contacts_dialer_color_44in48dp.png
new file mode 100644
index 0000000..df94a54
--- /dev/null
+++ b/res/drawable-xxhdpi/logo_quick_contacts_dialer_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/logo_quick_contacts_mail_color_44in48dp.png b/res/drawable-xxhdpi/logo_quick_contacts_mail_color_44in48dp.png
new file mode 100644
index 0000000..9b25b54
--- /dev/null
+++ b/res/drawable-xxhdpi/logo_quick_contacts_mail_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/person_white_540dp.png b/res/drawable-xxhdpi/person_white_540dp.png
new file mode 100644
index 0000000..16df17e
--- /dev/null
+++ b/res/drawable-xxhdpi/person_white_540dp.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
new file mode 100644
index 0000000..a3aa76f
--- /dev/null
+++ b/res/drawable-xxhdpi/quantum_ic_assistant_grey600_48.png
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
new file mode 100644
index 0000000..a044697
--- /dev/null
+++ b/res/drawable-xxhdpi/quickcontact_badge_overlay_pressed_light.9.png
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
new file mode 100644
index 0000000..ee17752
--- /dev/null
+++ b/res/drawable-xxhdpi/sym_action_audiochat_holo_light.png
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
new file mode 100644
index 0000000..ac3507c
--- /dev/null
+++ b/res/drawable-xxhdpi/sym_action_videochat_holo_light.png
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
new file mode 100644
index 0000000..b972190
--- /dev/null
+++ b/res/drawable-xxxhdpi/expanding_entry_card_expand_white_24.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/fab_blue.png b/res/drawable-xxxhdpi/fab_blue.png
new file mode 100644
index 0000000..1dd8a92
--- /dev/null
+++ b/res/drawable-xxxhdpi/fab_blue.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/generic_business_white_540dp.png b/res/drawable-xxxhdpi/generic_business_white_540dp.png
new file mode 100644
index 0000000..c8ee719
--- /dev/null
+++ b/res/drawable-xxxhdpi/generic_business_white_540dp.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
new file mode 100644
index 0000000..c6b56c3
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_account_circle_black_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_business_black_24dp.png b/res/drawable-xxxhdpi/ic_business_black_24dp.png
new file mode 100644
index 0000000..bc3b7bc
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_business_black_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_call_arrow.png b/res/drawable-xxxhdpi/ic_call_arrow.png
new file mode 100644
index 0000000..8243c25
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_call_arrow.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
new file mode 100644
index 0000000..bda927d
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_camera_alt_black_24dp.png
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
new file mode 100644
index 0000000..c077752
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_check_circle_googblue_drawable_24dp.png
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
new file mode 100644
index 0000000..d994a32
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_circles_extended_black_24dp.png
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
new file mode 100644
index 0000000..f812810
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_dialer_sip_black_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_directions_24dp.png b/res/drawable-xxxhdpi/ic_directions_24dp.png
new file mode 100644
index 0000000..b7e3377
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_directions_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_done_wht_24dp.png b/res/drawable-xxxhdpi/ic_done_wht_24dp.png
new file mode 100644
index 0000000..2e36684
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_done_wht_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_email_24dp.png b/res/drawable-xxxhdpi/ic_email_24dp.png
new file mode 100644
index 0000000..29ed46a
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_email_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_event_24dp.png b/res/drawable-xxxhdpi/ic_event_24dp.png
new file mode 100644
index 0000000..07f2d82
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_event_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_hangout_24dp.png b/res/drawable-xxxhdpi/ic_hangout_24dp.png
new file mode 100644
index 0000000..4bfdb0d
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_hangout_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_hangout_video_24dp.png b/res/drawable-xxxhdpi/ic_hangout_video_24dp.png
new file mode 100644
index 0000000..f1be2e7
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_hangout_video_24dp.png
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
new file mode 100644
index 0000000..7e795f8
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_insert_comment_black_24dp.png
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
new file mode 100644
index 0000000..6fe9b8c
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_link_grey600_drawable_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_person_black_24dp.png b/res/drawable-xxxhdpi/ic_person_black_24dp.png
new file mode 100644
index 0000000..3b55aa1
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_person_black_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_phone_24dp.png b/res/drawable-xxxhdpi/ic_phone_24dp.png
new file mode 100644
index 0000000..1f12d8d
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_phone_24dp.png
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
new file mode 100644
index 0000000..777658e
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_photo_camera_white_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_photos_white_24.png b/res/drawable-xxxhdpi/ic_photos_white_24.png
new file mode 100644
index 0000000..5722b4a
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_photos_white_24.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_place_24dp.png b/res/drawable-xxxhdpi/ic_place_24dp.png
new file mode 100644
index 0000000..e3efd0c
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_place_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_public_black_24dp.png b/res/drawable-xxxhdpi/ic_public_black_24dp.png
new file mode 100644
index 0000000..67aaffd
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_public_black_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_star_24dp.png b/res/drawable-xxxhdpi/ic_star_24dp.png
new file mode 100644
index 0000000..7e6c8a9
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_star_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_star_outline_24dp.png b/res/drawable-xxxhdpi/ic_star_outline_24dp.png
new file mode 100644
index 0000000..e3a4362
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_star_outline_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/logo_quick_contacts_color_44in48dp.png b/res/drawable-xxxhdpi/logo_quick_contacts_color_44in48dp.png
new file mode 100644
index 0000000..67543af
--- /dev/null
+++ b/res/drawable-xxxhdpi/logo_quick_contacts_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/logo_quick_contacts_dialer_color_44in48dp.png b/res/drawable-xxxhdpi/logo_quick_contacts_dialer_color_44in48dp.png
new file mode 100644
index 0000000..021a14a
--- /dev/null
+++ b/res/drawable-xxxhdpi/logo_quick_contacts_dialer_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/logo_quick_contacts_mail_color_44in48dp.png b/res/drawable-xxxhdpi/logo_quick_contacts_mail_color_44in48dp.png
new file mode 100644
index 0000000..c8c98c0
--- /dev/null
+++ b/res/drawable-xxxhdpi/logo_quick_contacts_mail_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/person_white_540dp.png b/res/drawable-xxxhdpi/person_white_540dp.png
new file mode 100644
index 0000000..763597d
--- /dev/null
+++ b/res/drawable-xxxhdpi/person_white_540dp.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
new file mode 100644
index 0000000..a3aa76f
--- /dev/null
+++ b/res/drawable-xxxhdpi/quantum_ic_assistant_grey600_48.png
Binary files differ
diff --git a/res/drawable/drawer_item_background.xml b/res/drawable/drawer_item_background.xml
new file mode 100644
index 0000000..3ffe041
--- /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_checked="true" android:drawable="@color/nav_item_selected_background"/>
+        <item android:drawable="@android:color/transparent" />
+</selector>
\ No newline at end of file
diff --git a/res/drawable/floating_action_button.xml b/res/drawable/floating_action_button.xml
new file mode 100644
index 0000000..2ba237f
--- /dev/null
+++ b/res/drawable/floating_action_button.xml
@@ -0,0 +1,24 @@
+<?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">
+          <shape android:shape="oval">
+               <solid android:color="@color/primary_color_dark" />
+          </shape>
+     </item>
+</selector>
\ No newline at end of file
diff --git a/res/drawable/gray_action_bar_background.xml b/res/drawable/gray_action_bar_background.xml
new file mode 100644
index 0000000..4192313
--- /dev/null
+++ b/res/drawable/gray_action_bar_background.xml
@@ -0,0 +1,22 @@
+<?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/ic_add.xml b/res/drawable/ic_add.xml
new file mode 100644
index 0000000..786d3e5
--- /dev/null
+++ b/res/drawable/ic_add.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
+</vector>
diff --git a/res/drawable/ic_add_circle_24dp.xml b/res/drawable/ic_add_circle_24dp.xml
new file mode 100644
index 0000000..ae37470
--- /dev/null
+++ b/res/drawable/ic_add_circle_24dp.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.
+-->
+
+<!-- Customized ic_add_circle material asset. See b/30018040#comment12 -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:height="24dp"
+        android:width="24dp"
+        android:viewportHeight="192.0"
+        android:viewportWidth="192.0">
+  <path android:fillColor="#F5F5F5"
+        android:pathData="M96,8C47.38,8 8,47.38 8,96s39.38,88 88,88s88,-39.38 88,-88S144.62,8 96,8z"/>
+  <path android:fillColor="#039BE5"
+        android:pathData="M124,100h-24v24h-8v-24H68v-8h24V68h8v24h24V100z"/>
+</vector>
diff --git a/res/drawable/ic_close_lt.xml b/res/drawable/ic_close_lt.xml
new file mode 100644
index 0000000..178b8a0
--- /dev/null
+++ b/res/drawable/ic_close_lt.xml
@@ -0,0 +1,20 @@
+<?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_google_plus_black_24dp.xml b/res/drawable/ic_google_plus_black_24dp.xml
new file mode 100644
index 0000000..398b0ad
--- /dev/null
+++ b/res/drawable/ic_google_plus_black_24dp.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.
+-->
+
+<!-- G+ icon -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+    <path
+            android:fillColor="#000000"
+            android:pathData="M23 11h-2V9h-2v2h-2v2h2v2h2v-2h2zM8 11v2.4h3.97c-.16 1.03-1.2 3.02-3.97 3.02-2.39 0-4.34-1.98-4.34-4.42S5.61 7.58 8 7.58c1.36 0 2.27.58 2.79 1.08l1.9-1.83C11.47 5.69 9.89 5 8 5c-3.87 0-7 3.13-7 7s3.13 7 7 7c4.04 0 6.72-2.84 6.72-6.84 0-.46-.05-.81-.11-1.16H8z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_history_24dp.xml b/res/drawable/ic_history_24dp.xml
new file mode 100644
index 0000000..1db190e
--- /dev/null
+++ b/res/drawable/ic_history_24dp.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.
+-->
+
+<!-- History icon -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.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-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"/>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_menu_delete.xml b/res/drawable/ic_menu_delete.xml
new file mode 100644
index 0000000..d994368
--- /dev/null
+++ b/res/drawable/ic_menu_delete.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.
+-->
+
+<!-- A trash can icon (ic_menu_delete) -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+    <path
+        android:fillColor="@color/actionbar_icon_color_grey"
+        android:pathData="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"/>
+</vector>
diff --git a/res/drawable/ic_menu_duplicates.xml b/res/drawable/ic_menu_duplicates.xml
new file mode 100644
index 0000000..a604d47
--- /dev/null
+++ b/res/drawable/ic_menu_duplicates.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/>
+</vector>
diff --git a/res/drawable/ic_menu_filter.xml b/res/drawable/ic_menu_filter.xml
new file mode 100644
index 0000000..2889fda
--- /dev/null
+++ b/res/drawable/ic_menu_filter.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.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/ic_menu_hamburger.xml b/res/drawable/ic_menu_hamburger.xml
new file mode 100644
index 0000000..dfe4269
--- /dev/null
+++ b/res/drawable/ic_menu_hamburger.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_menu_help.xml b/res/drawable/ic_menu_help.xml
new file mode 100644
index 0000000..bba36a2
--- /dev/null
+++ b/res/drawable/ic_menu_help.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"/>
+</vector>
diff --git a/res/drawable/ic_menu_label.xml b/res/drawable/ic_menu_label.xml
new file mode 100644
index 0000000..05e665f
--- /dev/null
+++ b/res/drawable/ic_menu_label.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+    <path
+        android:fillColor="#FF000000"
+        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.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/>
+</vector>
diff --git a/res/drawable/ic_menu_link.xml b/res/drawable/ic_menu_link.xml
new file mode 100644
index 0000000..e631034
--- /dev/null
+++ b/res/drawable/ic_menu_link.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.
+-->
+
+<!-- ic_menu_link -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+    <path
+        android:fillColor="@color/actionbar_icon_color_grey"
+        android:pathData="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/>
+</vector>
diff --git a/res/drawable/ic_menu_settings.xml b/res/drawable/ic_menu_settings.xml
new file mode 100644
index 0000000..e9a2078
--- /dev/null
+++ b/res/drawable/ic_menu_settings.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.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/ic_menu_share.xml b/res/drawable/ic_menu_share.xml
new file mode 100644
index 0000000..99e873b
--- /dev/null
+++ b/res/drawable/ic_menu_share.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.
+-->
+
+<!-- ic_menu_share -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+    <path
+        android:fillColor="@color/actionbar_icon_color_grey"
+        android:pathData="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.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/view_pager_tab_background.xml b/res/drawable/view_pager_tab_background.xml
new file mode 100644
index 0000000..f1ddbe2
--- /dev/null
+++ b/res/drawable/view_pager_tab_background.xml
@@ -0,0 +1,21 @@
+<?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
new file mode 100644
index 0000000..09bb5bb
--- /dev/null
+++ b/res/layout-land/compact_contact_editor_fragment.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.
+-->
+
+<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/contacts_unavailable_fragment_content.xml b/res/layout-land/contacts_unavailable_fragment_content.xml
new file mode 100644
index 0000000..234d7c4
--- /dev/null
+++ b/res/layout-land/contacts_unavailable_fragment_content.xml
@@ -0,0 +1,77 @@
+<?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="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="center_horizontal">
+
+    <LinearLayout
+        android:orientation="vertical"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content">
+
+        <ImageView
+            android:id="@+id/empty_image"
+            android:layout_width="@dimen/contacts_no_account_empty_image_width"
+            android:layout_height="wrap_content"
+            android:scaleType="centerInside"
+            android:adjustViewBounds="true"
+            android:src="@drawable/contacts_no_account_empty"/>
+
+        <TextView
+            android:id="@+id/message"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/contacts_no_account_empty_text_padding_top"
+            android:layout_gravity="center_horizontal"
+            style="@style/EmptyStateTextStyle"/>
+
+        <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>
+
+    <LinearLayout
+        android:id="@+id/buttons_container"
+        android:orientation="horizontal"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:gravity="center_horizontal">
+
+        <Button
+            android:id="@+id/add_account_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="@dimen/contacts_no_account_buttons_margin"
+            android:text="@string/contacts_unavailable_add_account"
+            style="@style/NoAccountViewButtonStyle"/>
+
+        <Button
+            android:id="@+id/import_contacts_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/contacts_unavailable_import_contacts"
+            style="@style/NoAccountViewButtonStyle"/>
+    </LinearLayout>
+</LinearLayout>
diff --git a/res/layout-land/people_activity_toolbar.xml b/res/layout-land/people_activity_toolbar.xml
new file mode 100644
index 0000000..8fb0dc1
--- /dev/null
+++ b/res/layout-land/people_activity_toolbar.xml
@@ -0,0 +1,44 @@
+<?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.
+-->
+
+<!-- Need to set a non null background on Toolbar in order for MenuItem ripples to be drawn on
+     this view, instead of another. This will *not* cause an additional draw since the
+     background is transparent.-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/toolbar_parent"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:background="#00000000"
+    android:elevation="@dimen/tab_elevation"
+    android:layout_height="wrap_content" >
+
+    <FrameLayout
+        android:id="@+id/toolbar_frame"
+        android:layout_width="match_parent"
+        android:layout_height="?attr/actionBarSize"
+        android:background="?attr/colorPrimary">
+
+        <!-- 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="?attr/actionBarSize"
+            android:id="@+id/toolbar"
+            android:padding="0dp"
+            style="@style/ContactsToolbarStyle" />
+
+    </FrameLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-sw600dp-land/contact_detail_updates_fragment.xml b/res/layout-sw600dp-land/contact_detail_updates_fragment.xml
new file mode 100644
index 0000000..40bc9c9
--- /dev/null
+++ b/res/layout-sw600dp-land/contact_detail_updates_fragment.xml
@@ -0,0 +1,30 @@
+<?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
new file mode 100644
index 0000000..4eb2d0c
--- /dev/null
+++ b/res/layout-sw600dp-land/contact_editor_activity.xml
@@ -0,0 +1,50 @@
+<?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/aggregation_suggestions.xml b/res/layout-sw600dp/aggregation_suggestions.xml
new file mode 100644
index 0000000..3a314b6
--- /dev/null
+++ b/res/layout-sw600dp/aggregation_suggestions.xml
@@ -0,0 +1,32 @@
+<?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
new file mode 100644
index 0000000..526fe2b
--- /dev/null
+++ b/res/layout-sw600dp/contact_editor_activity.xml
@@ -0,0 +1,28 @@
+<?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
new file mode 100644
index 0000000..be7723d
--- /dev/null
+++ b/res/layout-sw600dp/contact_editor_fragment.xml
@@ -0,0 +1,38 @@
+<?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-sw720dp-land/contact_detail_updates_fragment.xml b/res/layout-sw720dp-land/contact_detail_updates_fragment.xml
new file mode 100644
index 0000000..ba9f653
--- /dev/null
+++ b/res/layout-sw720dp-land/contact_detail_updates_fragment.xml
@@ -0,0 +1,30 @@
+<?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-land/quickcontact_activity.xml b/res/layout-sw720dp-land/quickcontact_activity.xml
new file mode 100644
index 0000000..af622dc
--- /dev/null
+++ b/res/layout-sw720dp-land/quickcontact_activity.xml
@@ -0,0 +1,18 @@
+<?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.
+-->
+<merge>
+    <include layout="@layout/quickcontact_activity_landscape" />
+</merge>
\ No newline at end of file
diff --git a/res/layout-sw720dp/contact_editor_activity.xml b/res/layout-sw720dp/contact_editor_activity.xml
new file mode 100644
index 0000000..b31171f
--- /dev/null
+++ b/res/layout-sw720dp/contact_editor_activity.xml
@@ -0,0 +1,50 @@
+<?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/quickcontact_activity.xml b/res/layout-sw720dp/quickcontact_activity.xml
new file mode 100644
index 0000000..0499b8e
--- /dev/null
+++ b/res/layout-sw720dp/quickcontact_activity.xml
@@ -0,0 +1,75 @@
+<?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.widget.MultiShrinkScroller
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:id="@+id/multiscroller"
+    android:focusable="true"
+    android:focusableInTouchMode="true"
+    android:descendantFocusability="afterDescendants" >
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="horizontal">
+
+        <View
+            android:id="@+id/empty_start_column"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="@integer/contact_list_space_layout_weight"
+            android:contentDescription="@string/quickcontact_transparent_view_description" />
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_weight="@integer/contact_list_card_layout_weight"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/quickcontact_starting_empty_height"
+                android:contentDescription="@string/quickcontact_transparent_view_description"
+                android:id="@+id/transparent_view" />
+
+            <FrameLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:id="@+id/toolbar_parent">
+                <include layout="@layout/quickcontact_header" />
+            </FrameLayout>
+
+            <include layout="@layout/quickcontact_content" />
+
+        </LinearLayout>
+
+        <View
+            android:id="@+id/empty_end_column"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="@integer/contact_list_space_layout_weight"
+            android:contentDescription="@string/quickcontact_transparent_view_description" />
+
+    </LinearLayout>
+
+    <!-- This title's maximum height must be less than the minimum size of its
+     parent ViewGroup because of an oddity in the way View#setScaleY() works. As a result,
+     this title can not be inside @style/quickcontact_header. -->
+    <include layout="@layout/quickcontact_title_and_phoneticname" />
+</com.android.contacts.widget.MultiShrinkScroller>
\ No newline at end of file
diff --git a/res/layout-v23/edit_date_picker.xml b/res/layout-v23/edit_date_picker.xml
new file mode 100644
index 0000000..299ccec
--- /dev/null
+++ b/res/layout-v23/edit_date_picker.xml
@@ -0,0 +1,28 @@
+<?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 to select a date in the contact editor. -->
+<Button
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/date_view"
+    style="@style/SpinnerButtonStyle"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/editor_min_line_item_height"
+    android:layout_weight="1"
+    android:textSize="@dimen/editor_form_text_size"
+    android:textAlignment="viewStart"
+    android:paddingEnd="@dimen/editor_spinner_right_padding_workaround" />
\ No newline at end of file
diff --git a/res/layout-v23/edit_spinner.xml b/res/layout-v23/edit_spinner.xml
new file mode 100644
index 0000000..37015f7
--- /dev/null
+++ b/res/layout-v23/edit_spinner.xml
@@ -0,0 +1,28 @@
+<?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.
+  -->
+
+<!-- Spinner for a field in the contact editor. -->
+<Spinner
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/spinner"
+    android:layout_gravity="bottom|start"
+    style="@android:style/Widget.Material.Spinner.Underlined"
+    android:layout_width="wrap_content"
+    android:layout_height="@dimen/editor_min_line_item_height"
+    android:paddingBottom="0dp"
+    android:paddingTop="0dp"
+    android:paddingEnd="@dimen/editor_spinner_right_padding_workaround"/>
\ No newline at end of file
diff --git a/res/layout-v23/item_group_membership.xml b/res/layout-v23/item_group_membership.xml
new file mode 100644
index 0000000..40605b1
--- /dev/null
+++ b/res/layout-v23/item_group_membership.xml
@@ -0,0 +1,44 @@
+<?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.
+-->
+
+<com.android.contacts.editor.GroupMembershipView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/group_membership_view"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal">
+
+    <ImageView
+        android:id="@+id/kind_icon"
+        android:src="@drawable/ic_menu_label"
+        style="@style/EditKindIconStyle" />
+
+    <Button
+        style="@style/SpinnerButtonStyle"
+        android:id="@+id/group_list"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="@dimen/editor_min_line_item_height"
+        android:textSize="@dimen/editor_form_text_size"
+        android:textAlignment="viewStart"
+        android:singleLine="true"
+        android:ellipsize="end"
+        android:focusable="true"
+        android:layout_marginEnd="@dimen/editor_delete_button_size"
+        android:layout_marginBottom="@dimen/editor_padding_between_editor_views"
+        android:paddingEnd="@dimen/editor_spinner_right_padding"/>
+
+</com.android.contacts.editor.GroupMembershipView>
\ No newline at end of file
diff --git a/res/layout-w500dp-land/quickcontact_activity.xml b/res/layout-w500dp-land/quickcontact_activity.xml
new file mode 100644
index 0000000..63cab3c
--- /dev/null
+++ b/res/layout-w500dp-land/quickcontact_activity.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.
+-->
+<merge>
+    <include layout="@layout/quickcontact_activity_landscape" />
+</merge>
\ No newline at end of file
diff --git a/res/layout/account_type_info.xml b/res/layout/account_type_info.xml
new file mode 100644
index 0000000..64e553c
--- /dev/null
+++ b/res/layout/account_type_info.xml
@@ -0,0 +1,36 @@
+<?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/account_type"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:visibility="gone">
+
+    <ImageView
+            android:id="@+id/account_type_icon"
+            style="@style/AccountTypeIconStyle" />
+
+    <TextView
+            android:id="@+id/account_type_name"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            style="@style/AccountTypeNameStyle" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/aggregation_suggestions.xml b/res/layout/aggregation_suggestions.xml
new file mode 100644
index 0000000..3b9d278
--- /dev/null
+++ b/res/layout/aggregation_suggestions.xml
@@ -0,0 +1,31 @@
+<?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/aggregation_suggestions_item.xml b/res/layout/aggregation_suggestions_item.xml
new file mode 100644
index 0000000..4f96326
--- /dev/null
+++ b/res/layout/aggregation_suggestions_item.xml
@@ -0,0 +1,55 @@
+<?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.
+ */
+-->
+
+<view xmlns:android="http://schemas.android.com/apk/res/android"
+    class="com.android.contacts.editor.AggregationSuggestionView"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="48dip"
+    android:paddingLeft="8dip"
+    android:paddingStart="8dip"
+    android:background="?android:attr/selectableItemBackground"
+    android:orientation="horizontal">
+
+    <LinearLayout
+        android:layout_width="0px"
+        android:layout_height="wrap_content"
+        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:textAppearance="?android:attr/textAppearanceMedium" />
+        <TextView
+            android:id="@+id/aggregation_suggestion_data"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="?android:attr/textColorSecondary" />
+    </LinearLayout>
+
+    <ImageView
+        android:id="@+id/aggregation_suggestion_photo"
+        android:layout_width="48dip"
+        android:layout_height="48dip"
+        android:scaleType="fitCenter"
+        android:layout_gravity="center_vertical" />
+</view>
diff --git a/res/layout/all_photos_button.xml b/res/layout/all_photos_button.xml
new file mode 100644
index 0000000..83578c3
--- /dev/null
+++ b/res/layout/all_photos_button.xml
@@ -0,0 +1,28 @@
+<?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/compact_account_info.xml b/res/layout/compact_account_info.xml
new file mode 100644
index 0000000..dda4fe4
--- /dev/null
+++ b/res/layout/compact_account_info.xml
@@ -0,0 +1,70 @@
+<?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
new file mode 100644
index 0000000..595f381
--- /dev/null
+++ b/res/layout/compact_contact_editor_activity.xml
@@ -0,0 +1,22 @@
+<?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
new file mode 100644
index 0000000..1d91448
--- /dev/null
+++ b/res/layout/compact_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/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
new file mode 100644
index 0000000..1e134e0
--- /dev/null
+++ b/res/layout/compact_contact_editor_fragment.xml
@@ -0,0 +1,50 @@
+<?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
new file mode 100644
index 0000000..771ccfe
--- /dev/null
+++ b/res/layout/compact_item_kind_section.xml
@@ -0,0 +1,36 @@
+<?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
new file mode 100644
index 0000000..8f791ca
--- /dev/null
+++ b/res/layout/compact_photo_editor_view.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.
+-->
+
+<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
new file mode 100644
index 0000000..42f5b96
--- /dev/null
+++ b/res/layout/compact_photo_selection_fragment.xml
@@ -0,0 +1,28 @@
+<?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
new file mode 100644
index 0000000..aea8ff6
--- /dev/null
+++ b/res/layout/compact_photo_selection_item.xml
@@ -0,0 +1,49 @@
+<?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/contact_detail_add_connection_entry_view.xml b/res/layout/contact_detail_add_connection_entry_view.xml
new file mode 100644
index 0000000..6d4971d
--- /dev/null
+++ b/res/layout/contact_detail_add_connection_entry_view.xml
@@ -0,0 +1,58 @@
+<?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
new file mode 100644
index 0000000..073dad8
--- /dev/null
+++ b/res/layout/contact_detail_network_title_entry_view.xml
@@ -0,0 +1,59 @@
+<?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
new file mode 100644
index 0000000..abe1cf8
--- /dev/null
+++ b/res/layout/contact_detail_separator_entry_view.xml
@@ -0,0 +1,26 @@
+<?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
new file mode 100644
index 0000000..02e906c
--- /dev/null
+++ b/res/layout/contact_detail_updates_fragment.xml
@@ -0,0 +1,22 @@
+<?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
new file mode 100644
index 0000000..7414f61
--- /dev/null
+++ b/res/layout/contact_detail_updates_fragment_container.xml
@@ -0,0 +1,26 @@
+<?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
new file mode 100644
index 0000000..0faea20
--- /dev/null
+++ b/res/layout/contact_editor_accounts_changed_activity_with_picker.xml
@@ -0,0 +1,55 @@
+<?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 account prompt (which includes a ListView) that can appear when
+  the user creates a new contact.
+-->
+
+<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/text"
+        layout="@layout/dialog_title"/>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dip"
+        android:background="?android:attr/listDivider"/>
+
+    <ListView android:id="@+id/account_list"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1"
+        android:fadingEdge="none"/>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dip"
+        android:background="?android:attr/listDivider"/>
+
+    <Button
+        android:id="@+id/add_account_button"
+        style="?android:attr/buttonBarButtonStyle"
+        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
new file mode 100644
index 0000000..7ee30f7
--- /dev/null
+++ b/res/layout/contact_editor_accounts_changed_activity_with_text.xml
@@ -0,0 +1,70 @@
+<?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 account prompt (which just includes text and 2 buttons) that can appear when the user
+  creates a new contact.
+-->
+
+<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/text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="24dp"
+        android:layout_marginEnd="24dp"
+        android:layout_marginTop="24dp"
+        android:layout_marginBottom="24dp"
+        android:textAppearance="?android:attr/textAppearanceMedium"/>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dip"
+        android:background="?android:attr/listDivider"/>
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:measureWithLargestChild="true"
+        android:baselineAligned="false"
+        style="?android:attr/buttonBarStyle">
+
+        <Button
+            android:id="@+id/right_button"
+            style="?android:attr/buttonBarButtonStyle"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentEnd="true"
+            android:layout_marginStart="8dp"
+            android:layout_marginEnd="8dp"
+            android:layout_marginTop="8dp"
+            android:layout_marginBottom="8dp"/>
+
+        <Button
+            android:id="@+id/left_button"
+            style="?android:attr/buttonBarButtonStyle"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_toLeftOf="@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
new file mode 100644
index 0000000..8c13629
--- /dev/null
+++ b/res/layout/contact_editor_activity.xml
@@ -0,0 +1,25 @@
+<?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.
+-->
+
+<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.editor.ContactEditorFragment"
+            android:id="@+id/contact_editor_fragment"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+</FrameLayout>
diff --git a/res/layout/contact_editor_fragment.xml b/res/layout/contact_editor_fragment.xml
new file mode 100644
index 0000000..f174a3d
--- /dev/null
+++ b/res/layout/contact_editor_fragment.xml
@@ -0,0 +1,31 @@
+<?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.
+-->
+
+<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:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+    />
+
+</ScrollView>
diff --git a/res/layout/contact_editor_label_name_dialog.xml b/res/layout/contact_editor_label_name_dialog.xml
new file mode 100644
index 0000000..162f85d
--- /dev/null
+++ b/res/layout/contact_editor_label_name_dialog.xml
@@ -0,0 +1,31 @@
+<?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.
+-->
+
+<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/custom_dialog_content"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
+</FrameLayout>
diff --git a/res/layout/contact_picker.xml b/res/layout/contact_picker.xml
new file mode 100644
index 0000000..faf5563
--- /dev/null
+++ b/res/layout/contact_picker.xml
@@ -0,0 +1,27 @@
+<?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/list_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" />
+
+</LinearLayout>
diff --git a/res/layout/contact_picker_content.xml b/res/layout/contact_picker_content.xml
new file mode 100644
index 0000000..36734c5
--- /dev/null
+++ b/res/layout/contact_picker_content.xml
@@ -0,0 +1,44 @@
+<?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.
+-->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+             android:layout_width="match_parent"
+             android:layout_height="match_parent">
+
+    <include layout="@layout/contact_list_card"/>
+
+    <view
+        class="com.android.contacts.common.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="@dimen/contact_browser_list_item_padding_top_or_bottom"
+        android:clipToPadding="false"
+        android:fastScrollEnabled="true"/>
+
+    <TextView android:id="@android:id/empty"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:layout_gravity="center"
+              android:textSize="20sp"
+              android:textColor="?android:attr/textColorSecondary"
+              android:text="@string/listFoundAllContactsZero"/>
+
+</FrameLayout>
diff --git a/res/layout/contacts_drawer_activity.xml b/res/layout/contacts_drawer_activity.xml
new file mode 100644
index 0000000..e560494
--- /dev/null
+++ b/res/layout/contacts_drawer_activity.xml
@@ -0,0 +1,65 @@
+<?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:app="http://schemas.android.com/apk/res-auto"
+    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">
+
+    <!-- To prevent hamburger menu from getting the initial focus. -->
+    <View
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:layout_width="1px"
+        android:layout_height="1px" >
+        <requestFocus/>
+    </View>
+
+    <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>
+
+    <android.support.design.widget.NavigationView
+        android:id="@+id/nav_view"
+        android:theme="@style/NavigationDrawerMenuItemTextAppearance"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_gravity="start"
+        android:fitsSystemWindows="true"
+        app:itemBackground="@drawable/drawer_item_background"
+        app:headerLayout="@layout/nav_header_main"
+        app:menu="@menu/activity_main_drawer"/>
+
+</android.support.v4.widget.DrawerLayout>
\ No newline at end of file
diff --git a/res/layout/contacts_unavailable_fragment.xml b/res/layout/contacts_unavailable_fragment.xml
new file mode 100644
index 0000000..01a8787
--- /dev/null
+++ b/res/layout/contacts_unavailable_fragment.xml
@@ -0,0 +1,30 @@
+<?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="match_parent">
+
+    <include layout="@layout/contact_list_card"/>
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:fillViewport="true"
+        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
new file mode 100644
index 0000000..860490d
--- /dev/null
+++ b/res/layout/contacts_unavailable_fragment_content.xml
@@ -0,0 +1,74 @@
+<?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:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="center_horizontal">
+
+    <ImageView
+        android:id="@+id/empty_image"
+        android:layout_width="@dimen/contacts_no_account_empty_image_width"
+        android:layout_height="wrap_content"
+        android:scaleType="centerInside"
+        android:adjustViewBounds="true"
+        android:src="@drawable/contacts_no_account_empty"/>
+
+    <LinearLayout
+        android:orientation="vertical"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content">
+
+        <TextView
+            android:id="@+id/message"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/contacts_no_account_empty_text_padding_top"
+            style="@style/EmptyStateTextStyle"/>
+
+        <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>
+
+    <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="@dimen/contacts_no_account_empty_button_padding_top"
+            android:text="@string/contacts_unavailable_add_account"
+            style="@style/NoAccountViewButtonStyle"/>
+
+        <Button
+            android:id="@+id/import_contacts_button"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/contacts_unavailable_import_contacts"
+            style="@style/NoAccountViewButtonStyle"/>
+    </LinearLayout>
+</LinearLayout>
diff --git a/res/layout/create_new_contact.xml b/res/layout/create_new_contact.xml
new file mode 100644
index 0000000..3af60d3
--- /dev/null
+++ b/res/layout/create_new_contact.xml
@@ -0,0 +1,49 @@
+<?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/date_picker.xml b/res/layout/date_picker.xml
new file mode 100644
index 0000000..c700f9e
--- /dev/null
+++ b/res/layout/date_picker.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 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.
+*/
+-->
+
+<!-- Layout of date picker-->
+
+<!-- The width of this container is manually set a little bigger than the one of the children
+     contained in it. This helps to prevent rounding errors when toggling the "Show year" option -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_gravity="center_horizontal"
+    android:layout_width="270dip"
+    android:layout_height="wrap_content">
+
+    <CheckBox
+        android:id="@+id/yearToggle"
+        android:text="@string/date_year_toggle"
+        android:paddingTop="5dip"
+        android:paddingBottom="5dip"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:layout_gravity="center_horizontal"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"/>
+    <!-- Warning: everything within the parent is removed and re-ordered depending
+         on the date format selected by the user. -->
+    <LinearLayout
+        android:id="@+id/parent"
+        android:orientation="horizontal"
+        android:layout_gravity="center_horizontal"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content">
+
+        <!-- Month -->
+        <NumberPicker
+            android:id="@+id/month"
+            android:layout_width="80dip"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="1dip"
+            android:layout_marginRight="1dip"
+            android:layout_marginStart="1dip"
+            android:layout_marginEnd="1dip"
+            android:focusable="true"
+            android:focusableInTouchMode="true"
+            />
+
+        <!-- Day -->
+        <NumberPicker
+            android:id="@+id/day"
+            android:layout_width="80dip"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="1dip"
+            android:layout_marginRight="1dip"
+            android:layout_marginStart="1dip"
+            android:layout_marginEnd="1dip"
+            android:focusable="true"
+            android:focusableInTouchMode="true"
+            />
+
+        <!-- Year -->
+        <NumberPicker
+            android:id="@+id/year"
+            android:layout_width="95dip"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="1dip"
+            android:layout_marginRight="1dip"
+            android:layout_marginStart="1dip"
+            android:layout_marginEnd="1dip"
+            android:focusable="true"
+            android:focusableInTouchMode="true"
+            />
+    </LinearLayout>
+</LinearLayout>
diff --git a/res/layout/date_picker_dialog.xml b/res/layout/date_picker_dialog.xml
new file mode 100644
index 0000000..edaba4c
--- /dev/null
+++ b/res/layout/date_picker_dialog.xml
@@ -0,0 +1,26 @@
+<?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.
+*/
+-->
+
+<view xmlns:android="http://schemas.android.com/apk/res/android"
+    class="com.android.contacts.datepicker.DatePicker"
+    android:id="@+id/datePicker"
+    android:padding="5dip"
+    android:layout_gravity="center_horizontal"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"/>
diff --git a/res/layout/edit_add_field.xml b/res/layout/edit_add_field.xml
new file mode 100644
index 0000000..ac90482
--- /dev/null
+++ b/res/layout/edit_add_field.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.
+-->
+<!-- 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_date_picker.xml b/res/layout/edit_date_picker.xml
new file mode 100644
index 0000000..5d60a36
--- /dev/null
+++ b/res/layout/edit_date_picker.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.
+  -->
+
+<!-- Button to select a date in the contact editor. -->
+<Button
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/date_view"
+    style="@style/SpinnerButtonStyle"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/editor_min_line_item_height"
+    android:layout_weight="1"
+    android:textSize="@dimen/editor_form_text_size"
+    android:textAlignment="viewStart"
+    android:paddingRight="@dimen/editor_spinner_right_padding" />
\ No newline at end of file
diff --git a/res/layout/edit_delete_button.xml b/res/layout/edit_delete_button.xml
new file mode 100644
index 0000000..d2c7fb9
--- /dev/null
+++ b/res/layout/edit_delete_button.xml
@@ -0,0 +1,40 @@
+<?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.
+  -->
+
+<!-- "Delete field" 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="center_vertical">
+    <ImageView
+        android:id="@+id/delete_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:duplicateParentState="true"
+        android:background="?android:attr/selectableItemBackground"
+        android:src="@drawable/ic_menu_remove_field_holo_light"
+        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"
+        android:contentDescription="@string/description_minus_button" />
+</FrameLayout>
diff --git a/res/layout/edit_expansion_view.xml b/res/layout/edit_expansion_view.xml
new file mode 100644
index 0000000..0b62f28
--- /dev/null
+++ b/res/layout/edit_expansion_view.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.
+  -->
+
+<!-- "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_field_list.xml b/res/layout/edit_field_list.xml
new file mode 100644
index 0000000..066810a
--- /dev/null
+++ b/res/layout/edit_field_list.xml
@@ -0,0 +1,26 @@
+<?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 to contain a list of fields in the contact editor. -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/editors"
+    android:layout_width="0dip"
+    android:layout_height="wrap_content"
+    android:layout_weight="1"
+    android:orientation="vertical" />
diff --git a/res/layout/edit_field_list_with_anchor_view.xml b/res/layout/edit_field_list_with_anchor_view.xml
new file mode 100644
index 0000000..a2c4cd1
--- /dev/null
+++ b/res/layout/edit_field_list_with_anchor_view.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.
+  -->
+
+<!-- Layout that behaves similarly to edit_field_list.xml,
+     but also has an anchor view for ListPopupWindow -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="0dip"
+    android:layout_height="wrap_content"
+    android:layout_weight="1"
+    android:orientation="vertical">
+    <LinearLayout
+         android:id="@+id/editors"
+         android:layout_width="match_parent"
+         android:layout_height="wrap_content"
+         android:orientation="vertical" />
+    <View
+         android:id="@+id/anchor_view"
+         android:layout_width="match_parent"
+         android:layout_height="0px" />
+</LinearLayout>
diff --git a/res/layout/edit_kind_title.xml b/res/layout/edit_kind_title.xml
new file mode 100644
index 0000000..acdcc07
--- /dev/null
+++ b/res/layout/edit_kind_title.xml
@@ -0,0 +1,32 @@
+<?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_simple_spinner_item.xml b/res/layout/edit_simple_spinner_item.xml
new file mode 100644
index 0000000..35b5ab4
--- /dev/null
+++ b/res/layout/edit_simple_spinner_item.xml
@@ -0,0 +1,31 @@
+<?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 TextView is displayed inside editor Spinners. In order to make this TextView get laid
+    out the same as an EditText, we use the EditText's background and gravity=center_vertical. The
+    EditText's background 9patch directly affects padding. -->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/text1"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="?android:attr/editTextBackground"
+    android:gravity="center_vertical"
+    android:paddingStart="0dp"
+    android:paddingEnd="0dp"
+    android:maxLines="1"
+    android:textAlignment="viewStart"
+    android:ellipsize="end" />
\ No newline at end of file
diff --git a/res/layout/edit_spinner.xml b/res/layout/edit_spinner.xml
new file mode 100644
index 0000000..b1c879c
--- /dev/null
+++ b/res/layout/edit_spinner.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.
+  -->
+
+<!-- Spinner for a field in the contact editor. -->
+<Spinner
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/spinner"
+    android:layout_gravity="bottom|start"
+    style="@android:style/Widget.Material.Spinner.Underlined"
+    android:layout_width="wrap_content"
+    android:layout_height="@dimen/editor_min_line_item_height"
+    android:paddingBottom="0dp"
+    android:paddingTop="0dp"
+    android:paddingRight="@dimen/editor_spinner_right_padding"/>
\ No newline at end of file
diff --git a/res/layout/editor_account_header.xml b/res/layout/editor_account_header.xml
new file mode 100644
index 0000000..59ae3b1
--- /dev/null
+++ b/res/layout/editor_account_header.xml
@@ -0,0 +1,73 @@
+<?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/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">
+
+    <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" />
+
+        <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" />
+
+    </LinearLayout>
+
+    <FrameLayout
+        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>
+
+</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
new file mode 100644
index 0000000..c3d9e31
--- /dev/null
+++ b/res/layout/editor_account_header_expandable.xml
@@ -0,0 +1,86 @@
+<?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
new file mode 100644
index 0000000..dcd0e28
--- /dev/null
+++ b/res/layout/editor_account_selector.xml
@@ -0,0 +1,81 @@
+<?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
new file mode 100644
index 0000000..c830d38
--- /dev/null
+++ b/res/layout/editor_all_rawcontacts_accounts_selector.xml
@@ -0,0 +1,58 @@
+<?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
new file mode 100644
index 0000000..7764674
--- /dev/null
+++ b/res/layout/editor_custom_action_bar.xml
@@ -0,0 +1,45 @@
+<?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..bb8ddcc
--- /dev/null
+++ b/res/layout/empty_group_view.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<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/event_field_editor_view.xml b/res/layout/event_field_editor_view.xml
new file mode 100644
index 0000000..f4e5d28
--- /dev/null
+++ b/res/layout/event_field_editor_view.xml
@@ -0,0 +1,48 @@
+<?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.
+  -->
+
+<!-- Editor for a single event entry in the contact editor -->
+
+<com.android.contacts.editor.EventFieldEditorView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal">
+
+    <LinearLayout
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:orientation="vertical">
+
+        <include
+            android:id="@+id/date_view"
+            layout="@layout/edit_date_picker" />
+
+        <include
+            android:id="@+id/spinner"
+            layout="@layout/edit_spinner"
+            android:visibility="gone" />
+
+    </LinearLayout>
+
+    <include
+        android:id="@+id/delete_button_container"
+        layout="@layout/edit_delete_button"
+        android:visibility="gone" />
+
+</com.android.contacts.editor.EventFieldEditorView>
diff --git a/res/layout/expanding_entry_card_item.xml b/res/layout/expanding_entry_card_item.xml
new file mode 100644
index 0000000..99f9174
--- /dev/null
+++ b/res/layout/expanding_entry_card_item.xml
@@ -0,0 +1,115 @@
+<?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.
+-->
+
+<view
+    class="com.android.contacts.quickcontact.ExpandingEntryCardView$EntryView"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/SelectableItem"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingStart="@dimen/expanding_entry_card_item_padding_start"
+    android:paddingEnd="@dimen/expanding_entry_card_item_padding_end"
+    android:paddingTop="@dimen/expanding_entry_card_item_padding_top"
+    android:paddingBottom="@dimen/expanding_entry_card_item_padding_bottom">
+
+    <ImageView
+        android:id="@+id/icon"
+        android:layout_width="@dimen/expanding_entry_card_item_icon_height"
+        android:layout_height="@dimen/expanding_entry_card_item_icon_width"
+        android:layout_alignParentStart="true"
+        android:layout_alignParentTop="true"
+        android:layout_marginEnd="@dimen/expanding_entry_card_item_image_spacing"
+        android:scaleType="fitCenter"
+        android:layout_marginTop="@dimen/expanding_entry_card_item_icon_margin_top" />
+
+    <TextView
+        android:id="@+id/header"
+        android:textSize="@dimen/expanding_entry_card_title_text_size"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentTop="true"
+        android:paddingTop="5dp"
+        android:layout_toEndOf="@+id/icon"
+        android:layout_toStartOf="@+id/third_icon"
+        android:textColor="@color/quickcontact_entry_header_text_color"
+        android:textAlignment="viewStart"
+        android:layout_marginBottom="@dimen/expanding_entry_card_header_margin_bottom" />
+
+    <TextView
+        android:id="@+id/sub_header"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/header"
+        android:layout_toEndOf="@+id/icon_sub_header"
+        android:layout_toStartOf="@+id/third_icon"
+        android:textAlignment="viewStart"
+        android:textColor="@color/quickcontact_entry_sub_header_text_color" />
+
+    <ImageView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/icon_sub_header"
+        android:layout_below="@+id/header"
+        android:layout_toEndOf="@+id/icon"
+        android:layout_marginEnd="@dimen/expanding_entry_card_item_sub_header_icon_margin_right"
+        android:layout_marginBottom="@dimen/expanding_entry_card_item_sub_header_icon_margin_bottom" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/text"
+        android:layout_below="@+id/sub_header"
+        android:layout_toEndOf="@+id/icon_text"
+        android:layout_toStartOf="@+id/third_icon"
+        android:textAlignment="viewStart"
+        android:textColor="@color/quickcontact_entry_sub_header_text_color" />
+
+    <ImageView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/icon_text"
+        android:layout_toEndOf="@+id/icon"
+        android:layout_below="@+id/sub_header"
+        android:layout_marginTop="@dimen/expanding_entry_card_item_text_icon_margin_top"
+        android:layout_marginEnd="@dimen/expanding_entry_card_item_text_icon_margin_right" />
+
+     <ImageView
+         android:id="@+id/third_icon"
+         android:layout_width="wrap_content"
+         android:layout_height="wrap_content"
+         android:layout_alignParentTop="true"
+         android:layout_toStartOf="@+id/icon_alternate"
+         android:layout_alignWithParentIfMissing="true"
+         android:visibility="gone"
+         android:background="?android:attr/selectableItemBackgroundBorderless"
+         android:paddingTop="@dimen/expanding_entry_card_item_icon_margin_top"
+         android:paddingBottom="@dimen/expanding_entry_card_item_icon_margin_bottom"
+         android:paddingLeft="@dimen/expanding_entry_card_item_icon_margin_left"
+         android:paddingRight="@dimen/expanding_entry_card_item_icon_margin_right"/>
+
+     <ImageView
+         android:id="@+id/icon_alternate"
+         android:layout_width="wrap_content"
+         android:layout_height="wrap_content"
+         android:layout_alignParentEnd="true"
+         android:layout_alignParentTop="true"
+         android:visibility="gone"
+         android:background="?android:attr/selectableItemBackgroundBorderless"
+         android:paddingTop="@dimen/expanding_entry_card_item_icon_margin_top"
+         android:paddingBottom="@dimen/expanding_entry_card_item_icon_margin_bottom"
+         android:paddingLeft="@dimen/expanding_entry_card_item_icon_margin_left"
+         android:paddingRight="@dimen/expanding_entry_card_item_icon_margin_right"/>
+</view>
diff --git a/res/layout/expanding_entry_card_view.xml b/res/layout/expanding_entry_card_view.xml
new file mode 100644
index 0000000..7eacd1f
--- /dev/null
+++ b/res/layout/expanding_entry_card_view.xml
@@ -0,0 +1,46 @@
+<?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="wrap_content"
+    android:orientation="vertical"
+    android:id="@+id/container">
+
+    <TextView
+        android:id="@+id/title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:ellipsize="end"
+        android:lines="1"
+        android:padding="@dimen/expanding_entry_card_title_padding"
+        android:singleLine="true"
+        android:textSize="@dimen/expanding_entry_card_title_text_size"
+        android:visibility="gone" />
+
+    <View
+        android:id="@+id/title_separator"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/divider_line_height"
+        android:background="@color/divider_line_color_light"
+        android:visibility="gone" />
+
+    <LinearLayout
+        android:id="@+id/content_area_linear_layout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/floating_action_button.xml b/res/layout/floating_action_button.xml
new file mode 100644
index 0000000..95c76ae
--- /dev/null
+++ b/res/layout/floating_action_button.xml
@@ -0,0 +1,37 @@
+<?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 expects to be included inside a RelativeLayout -->
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    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_alignParentEnd="true"
+    android:layout_alignParentBottom="true">
+
+    <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_add"/>
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/group_members_activity.xml b/res/layout/group_members_activity.xml
new file mode 100644
index 0000000..5466d2f
--- /dev/null
+++ b/res/layout/group_members_activity.xml
@@ -0,0 +1,23 @@
+<?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:id="@+id/fragment_container_inner"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+</LinearLayout>
diff --git a/res/layout/group_membership_list_item.xml b/res/layout/group_membership_list_item.xml
new file mode 100644
index 0000000..19e8d80
--- /dev/null
+++ b/res/layout/group_membership_list_item.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.
+-->
+
+<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/text1"
+    android:layout_width="match_parent"
+    android:layout_height="48dip"
+    android:textAppearance="?android:attr/textAppearanceMedium"
+    android:gravity="center_vertical"
+    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
+    android:paddingLeft="6dip"
+    android:paddingRight="6dip"
+    android:paddingStart="6dip"
+    android:paddingEnd="6dip"
+/>
diff --git a/res/layout/group_name_dialog.xml b/res/layout/group_name_dialog.xml
new file mode 100644
index 0000000..f19df86
--- /dev/null
+++ b/res/layout/group_name_dialog.xml
@@ -0,0 +1,32 @@
+<?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"
+        android:minHeight="@dimen/group_name_edit_text_min_height"/>
+</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..9a8c69f
--- /dev/null
+++ b/res/layout/group_name_edit_dialog.xml
@@ -0,0 +1,37 @@
+<?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="wrap_content"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:paddingBottom="24dp"
+    android:paddingStart="24dp"
+    android:paddingEnd="24dp">
+
+    <EditText android:id="@android:id/text1"
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="@dimen/group_name_edit_text_min_height"
+        android:layout_marginBottom="4dp"
+        android:layout_marginRight="4dp"
+        android:layout_marginTop="16dp"
+        android:hint="@string/group_name_dialog_hint"
+        android:inputType="text"
+        android:singleLine="true"
+        android:maxLength="@integer/group_name_max_length"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/item_group_membership.xml b/res/layout/item_group_membership.xml
new file mode 100644
index 0000000..5d302a6
--- /dev/null
+++ b/res/layout/item_group_membership.xml
@@ -0,0 +1,44 @@
+<?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.
+-->
+
+<com.android.contacts.editor.GroupMembershipView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/group_membership_view"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal">
+
+    <ImageView
+        android:id="@+id/kind_icon"
+        android:src="@drawable/ic_menu_label"
+        style="@style/EditKindIconStyle" />
+
+    <Button
+        style="@style/SpinnerButtonStyle"
+        android:id="@+id/group_list"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="@dimen/editor_min_line_item_height"
+        android:textSize="@dimen/editor_form_text_size"
+        android:textAlignment="viewStart"
+        android:singleLine="true"
+        android:ellipsize="end"
+        android:focusable="true"
+        android:layout_marginEnd="@dimen/editor_delete_button_size"
+        android:layout_marginBottom="@dimen/editor_padding_between_editor_views"
+        android:paddingRight="@dimen/editor_spinner_right_padding"/>
+
+</com.android.contacts.editor.GroupMembershipView>
\ No newline at end of file
diff --git a/res/layout/item_kind_section.xml b/res/layout/item_kind_section.xml
new file mode 100644
index 0000000..d62523b
--- /dev/null
+++ b/res/layout/item_kind_section.xml
@@ -0,0 +1,35 @@
+<?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.
+-->
+
+<!-- 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"
+        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
new file mode 100644
index 0000000..e3eff4e
--- /dev/null
+++ b/res/layout/item_photo_editor.xml
@@ -0,0 +1,84 @@
+<?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
new file mode 100644
index 0000000..edb6f61
--- /dev/null
+++ b/res/layout/item_photo_editor_readonly.xml
@@ -0,0 +1,58 @@
+<?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
new file mode 100644
index 0000000..3195b4c
--- /dev/null
+++ b/res/layout/item_read_only_field.xml
@@ -0,0 +1,60 @@
+<?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:layout_marginEnd="@dimen/editor_delete_button_width"
+    android:layout_marginBottom="@dimen/editor_padding_between_read_only_editor_views"
+    android:orientation="horizontal">
+
+    <ImageView
+        android:id="@+id/kind_icon"
+        android:layout_marginTop="2dp"
+        style="@style/EditKindIconStyle" />
+
+    <LinearLayout
+        android:layout_width="0dp"
+        android:layout_weight="1"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/data"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textSize="@dimen/editor_form_text_size"
+            android:textColor="?android:attr/textColorSecondary"
+            android:singleLine="true"
+            android:saveEnabled="false"
+            android:textAlignment="viewStart"
+            android:enabled="false"/>
+
+        <TextView
+            android:id="@+id/type"
+            android:layout_width="@dimen/editor_type_label_width"
+            android:layout_height="wrap_content"
+            android:textSize="@dimen/editor_form_text_size"
+            android:textColor="?android:attr/textColorSecondary"
+            android:singleLine="true"
+            android:saveEnabled="false"
+            android:textAlignment="viewStart"
+            android:enabled="false"/>
+
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/join_contact_picker_list_content.xml b/res/layout/join_contact_picker_list_content.xml
new file mode 100644
index 0000000..5bde895
--- /dev/null
+++ b/res/layout/join_contact_picker_list_content.xml
@@ -0,0 +1,56 @@
+<?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="match_parent"
+    android:orientation="vertical">
+
+    <TextView
+        android:id="@+id/join_contact_blurb"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="@dimen/join_header_left_margin"
+        android:layout_marginRight="@dimen/join_header_right_margin"
+        android:layout_marginStart="@dimen/join_header_left_margin"
+        android:layout_marginEnd="@dimen/join_header_right_margin"
+        android:layout_marginTop="@dimen/join_header_top_margin"
+        android:layout_marginBottom="@dimen/join_header_bottom_margin"
+        android:paddingLeft="?attr/list_item_header_text_indent"
+        android:paddingStart="?attr/list_item_header_text_indent"
+        android:maxLines="2"
+        android:textAppearance="?android:attr/textAppearanceSmall" />
+
+    <FrameLayout
+        android:id="@+id/pinned_header_list_layout"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+        <include layout="@layout/contact_list_card"/>
+        <view
+            class="com.android.contacts.common.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:fastScrollEnabled="true"
+            android:scrollbarStyle="outsideOverlay" />
+    </FrameLayout>
+</LinearLayout>
diff --git a/res/layout/join_contact_picker_section_header.xml b/res/layout/join_contact_picker_section_header.xml
new file mode 100644
index 0000000..7dafb49
--- /dev/null
+++ b/res/layout/join_contact_picker_section_header.xml
@@ -0,0 +1,30 @@
+<?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 used for "Join contacts" screen's section headers. -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+    <TextView
+        android:id="@+id/text"
+        style="@style/ContactListSeparatorTextViewStyle"
+        android:paddingLeft="8dip"
+        android:paddingRight="8dip"
+        android:paddingStart="8dip"
+        android:paddingEnd="8dip" />
+</LinearLayout>
diff --git a/res/layout/name_edit_expansion_view.xml b/res/layout/name_edit_expansion_view.xml
new file mode 100644
index 0000000..13a50a8
--- /dev/null
+++ b/res/layout/name_edit_expansion_view.xml
@@ -0,0 +1,42 @@
+<?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.
+  -->
+
+<!-- "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"
+    android:contentDescription="@string/expand_collapse_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/nav_header_main.xml b/res/layout/nav_header_main.xml
new file mode 100644
index 0000000..37a33f4
--- /dev/null
+++ b/res/layout/nav_header_main.xml
@@ -0,0 +1,31 @@
+<?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="@dimen/nav_header_height"
+    android:background="@color/contacts_accent_color"
+    android:gravity="bottom"
+    android:orientation="vertical"
+    android:paddingBottom="@dimen/nav_activity_vertical_margin"
+    android:paddingLeft="@dimen/nav_activity_horizontal_margin"
+    android:paddingRight="@dimen/nav_activity_horizontal_margin"
+    android:paddingTop="@dimen/nav_activity_vertical_margin"
+    android:theme="@style/ThemeOverlay.AppCompat.Dark">
+</LinearLayout>
diff --git a/res/layout/nick_name_editor_view.xml b/res/layout/nick_name_editor_view.xml
new file mode 100644
index 0000000..3b91917
--- /dev/null
+++ b/res/layout/nick_name_editor_view.xml
@@ -0,0 +1,44 @@
+<?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
new file mode 100644
index 0000000..d8b900d
--- /dev/null
+++ b/res/layout/people_activity.xml
@@ -0,0 +1,48 @@
+<?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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/list_container"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <!--
+        ViewPager for swiping between tabs.  We put fragments 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"
+        android:layout_height="match_parent"
+        android:layout_width="match_parent"
+        android:layout_below="@id/toolbar_parent"
+        />
+
+    <FrameLayout
+        android:id="@+id/contacts_unavailable_view"
+        android:layout_width="match_parent"
+        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>
+
+    <include layout="@layout/floating_action_button" />
+</RelativeLayout>
diff --git a/res/layout/people_activity_tabs_lands.xml b/res/layout/people_activity_tabs_lands.xml
new file mode 100644
index 0000000..8d7b42b
--- /dev/null
+++ b/res/layout/people_activity_tabs_lands.xml
@@ -0,0 +1,28 @@
+<?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:visibility="gone"
+    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
new file mode 100644
index 0000000..edca3ba
--- /dev/null
+++ b/res/layout/people_activity_toolbar.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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/toolbar_parent"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:elevation="@dimen/tab_elevation"
+    android:layout_height="wrap_content" >
+
+    <FrameLayout
+        android:id="@+id/toolbar_frame"
+        android:layout_width="match_parent"
+        android:layout_height="?attr/actionBarSize"
+        android:background="?attr/colorPrimary">
+
+        <!-- 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="?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="?attr/actionBarSize"
+        android:textAllCaps="true"
+        android:orientation="horizontal"
+        android:layout_gravity="top"
+        android:layout_weight="0"
+        android:layout_below="@id/toolbar"
+        android:visibility="gone"
+        style="@style/ContactsActionBarTabTextStyle" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/phonetic_name_edit_expansion_view.xml b/res/layout/phonetic_name_edit_expansion_view.xml
new file mode 100644
index 0000000..1613391
--- /dev/null
+++ b/res/layout/phonetic_name_edit_expansion_view.xml
@@ -0,0 +1,40 @@
+<?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
new file mode 100644
index 0000000..f51d3df
--- /dev/null
+++ b/res/layout/phonetic_name_editor_view.xml
@@ -0,0 +1,48 @@
+<?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/pinned_header_list_demo.xml b/res/layout/pinned_header_list_demo.xml
new file mode 100644
index 0000000..c717b35
--- /dev/null
+++ b/res/layout/pinned_header_list_demo.xml
@@ -0,0 +1,35 @@
+<?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_activity.xml b/res/layout/quickcontact_activity.xml
new file mode 100644
index 0000000..c3b035d
--- /dev/null
+++ b/res/layout/quickcontact_activity.xml
@@ -0,0 +1,54 @@
+<?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.widget.MultiShrinkScroller
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:id="@+id/multiscroller"
+    android:focusable="true"
+    android:focusableInTouchMode="true"
+    android:descendantFocusability="afterDescendants" >
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/quickcontact_starting_empty_height"
+            android:contentDescription="@string/quickcontact_transparent_view_description"
+            android:id="@+id/transparent_view" />
+
+        <FrameLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:id="@+id/toolbar_parent">
+            <include layout="@layout/quickcontact_header" />
+        </FrameLayout>
+
+        <include layout="@layout/quickcontact_content" />
+
+    </LinearLayout>
+
+    <!-- This title's maximum height must be less than the minimum size of its
+         parent ViewGroup because of an oddity in the way View#setScaleY() works. As a result,
+         this title can not be inside @style/quickcontact_header. -->
+    <include layout="@layout/quickcontact_title_and_phoneticname" />
+
+</com.android.contacts.widget.MultiShrinkScroller>
\ No newline at end of file
diff --git a/res/layout/quickcontact_activity_landscape.xml b/res/layout/quickcontact_activity_landscape.xml
new file mode 100644
index 0000000..5f3bbc4
--- /dev/null
+++ b/res/layout/quickcontact_activity_landscape.xml
@@ -0,0 +1,64 @@
+<?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 file is in the base layout/ directory so that it can be referenced from multiple config
+     folder without duplicating this file. -->
+<com.android.contacts.widget.MultiShrinkScroller
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:id="@+id/multiscroller"
+    android:focusable="true"
+    android:focusableInTouchMode="true"
+    android:descendantFocusability="afterDescendants" >
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/quickcontact_starting_empty_height"
+            android:contentDescription="@string/quickcontact_transparent_view_description"
+            android:id="@+id/transparent_view" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="horizontal">
+
+            <!-- Needs a non null background for elevation to work on this View. This will
+                 *not* cause an additional draw since the background is transparent. -->
+            <FrameLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:background="#00000000"
+                android:id="@+id/toolbar_parent">
+
+                <include layout="@layout/quickcontact_header" />
+
+                <include layout="@layout/quickcontact_title_and_phoneticname" />
+
+            </FrameLayout>
+
+            <include layout="@layout/quickcontact_content" />
+
+        </LinearLayout>
+
+    </LinearLayout>
+
+</com.android.contacts.widget.MultiShrinkScroller>
\ No newline at end of file
diff --git a/res/layout/quickcontact_collapsed_suggestion_card.xml b/res/layout/quickcontact_collapsed_suggestion_card.xml
new file mode 100644
index 0000000..45de7f5
--- /dev/null
+++ b/res/layout/quickcontact_collapsed_suggestion_card.xml
@@ -0,0 +1,63 @@
+<?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.
+-->
+<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:card_view="http://schemas.android.com/apk/res-auto"
+    style="@style/ExpandingEntryCardStyle"
+    android:layout_height="@dimen/quickcontact_collapse_view_height"
+    android:layout_width="match_parent"
+    android:visibility="gone"
+    android:id="@+id/collapsed_suggestion_card">
+
+    <LinearLayout
+        android:layout_height="wrap_content"
+        android:layout_width="match_parent"
+        android:orientation="horizontal"
+        android:clickable="true"
+        android:id="@+id/collapsed_suggestion_header">
+
+        <ImageView
+                android:src="@drawable/quantum_ic_assistant_grey600_48"
+                android:layout_width="@dimen/quickcontact_collapse_icon_size"
+                android:layout_height="@dimen/quickcontact_collapse_icon_size"
+                android:layout_margin="@dimen/quickcontact_collapse_image_padding"
+                android:layout_gravity="center_vertical"/>
+
+        <TextView
+                android:id="@+id/collapsed_suggestion_card_title"
+                android:textSize="@dimen/expanding_entry_card_title_text_size"
+                android:layout_marginLeft="8dp"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textColor="@color/quickcontact_entry_header_text_color"
+                android:singleLine="true"
+                android:ellipsize="end"
+                android:textAlignment="viewStart"
+                android:paddingTop="@dimen/quickcontact_collapse_text_padding"/>
+
+        <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>>
+
+</android.support.v7.widget.CardView>
\ No newline at end of file
diff --git a/res/layout/quickcontact_content.xml b/res/layout/quickcontact_content.xml
new file mode 100644
index 0000000..b6cff4b
--- /dev/null
+++ b/res/layout/quickcontact_content.xml
@@ -0,0 +1,68 @@
+<?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.widget.TouchlessScrollView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:cardview="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:fillViewport="true"
+    android:id="@+id/content_scroller"
+    android:background="@color/card_margin_color">
+
+    <!-- All the cards should be inserted into this LinearLayout -->
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:paddingTop="@dimen/first_card_marginTop"
+        android:id="@+id/card_container" >
+
+        <com.android.contacts.quickcontact.ExpandingEntryCardView
+            style="@style/ExpandingEntryCardStyle"
+            android:id="@+id/no_contact_data_card"
+            android:visibility="gone"
+            cardview:cardCornerRadius="@dimen/expanding_entry_card_card_corner_radius" />
+
+        <com.android.contacts.quickcontact.ExpandingEntryCardView
+            style="@style/ExpandingEntryCardStyle"
+            android:id="@+id/communication_card"
+            android:visibility="gone"
+            cardview:cardCornerRadius="@dimen/expanding_entry_card_card_corner_radius" />
+
+        <com.android.contacts.quickcontact.ExpandingEntryCardView
+            style="@style/ExpandingEntryCardStyle"
+            android:id="@+id/recent_card"
+            android:visibility="gone"
+            cardview:cardCornerRadius="@dimen/expanding_entry_card_card_corner_radius" />
+
+        <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" />
+
+        <include layout="@layout/quickcontact_collapsed_suggestion_card" />
+        <include layout="@layout/quickcontact_expand_suggestion_card" />
+
+    </LinearLayout>
+
+</com.android.contacts.widget.TouchlessScrollView>
\ No newline at end of file
diff --git a/res/layout/quickcontact_expand_suggestion_card.xml b/res/layout/quickcontact_expand_suggestion_card.xml
new file mode 100644
index 0000000..1d91f87
--- /dev/null
+++ b/res/layout/quickcontact_expand_suggestion_card.xml
@@ -0,0 +1,163 @@
+<?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.
+-->
+
+<!--
+  Layout for the expand suggestion card in QuickContact.
+-->
+<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:card_view="http://schemas.android.com/apk/res-auto"
+    style="@style/ExpandingEntryCardStyle"
+    android:layout_height="wrap_content"
+    android:layout_width="match_parent"
+    android:visibility="gone"
+    android:id="@+id/expand_suggestion_card">
+
+    <LinearLayout
+        android:layout_height="wrap_content"
+        android:layout_width="match_parent"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/expand_suggestion_card_title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textStyle="bold"
+            android:textColor="@color/quickcontact_entry_header_text_color"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:textAlignment="viewStart"
+            android:paddingTop="@dimen/quickcontact_suggestion_card_image_spacing"
+            android:paddingBottom="@dimen/quickcontact_suggestion_card_image_spacing"
+            android:paddingStart="@dimen/quickcontact_suggestion_card_image_spacing"/>
+
+        <TextView
+            android:id="@+id/expand_suggestion_card_help"
+            android:textSize="@dimen/quickcontact_expanding_help_text_size"
+            android:text="@string/suggestion_card_help_message"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textColor="@color/quickcontact_entry_header_text_color"
+            android:lineSpacingMultiplier="1.2"
+            android:textAlignment="viewStart"
+            android:paddingBottom="@dimen/quickcontact_suggestion_card_image_spacing"
+            android:paddingStart="@dimen/quickcontact_suggestion_card_image_spacing"
+            android:paddingEnd="@dimen/quickcontact_suggestion_card_image_spacing"/>
+
+        <TextView
+            android:id="@+id/expand_suggestion_card_this_contact"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:text="@string/suggestion_card_this_contact_title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textColor="@color/quickcontact_entry_sub_header_text_color"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:textAlignment="viewStart"
+            android:paddingStart="@dimen/quickcontact_suggestion_card_image_spacing"/>
+
+        <LinearLayout
+            android:layout_height="@dimen/quickcontact_expanding_item_height"
+            android:layout_width="match_parent"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:id="@+id/suggestion_icon"
+                android:layout_width="@dimen/quickcontact_suggestion_card_icon_height"
+                android:layout_height="@dimen/quickcontact_suggestion_card_icon_width"
+                android:layout_gravity="center_vertical"
+                android:layout_marginStart="@dimen/quickcontact_suggestion_card_image_spacing"
+                android:scaleType="fitCenter" />
+
+            <LinearLayout
+                android:id="@+id/suggestion_for_contact_info"
+                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/suggestion_for_name"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:textAppearance="?android:attr/textAppearanceMedium"
+                    android:textColor="@color/quickcontact_entry_header_text_color"
+                    android:singleLine="true"
+                    android:ellipsize="end"
+                    android:layout_marginTop="@dimen/quickcontact_suggestion_card_layout_margin" />
+
+                <TextView
+                    android:id="@+id/suggestion_for_contacts_number"
+                    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>
+
+        </LinearLayout>
+
+        <TextView
+            android:id="@+id/expand_suggestion_card_duplicates_title"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:text="@string/suggestion_card_duplicates_title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textColor="@color/quickcontact_entry_sub_header_text_color"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:textAlignment="viewStart"
+            android:paddingStart="@dimen/quickcontact_suggestion_card_image_spacing"/>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:id="@+id/suggestion_list"
+            android:animateLayoutChanges="true"
+            android:orientation="vertical" />
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/quickcontact_expanding_button_section_height"
+            android:layout_gravity="center_vertical|end"
+            android:layout_marginEnd="@dimen/quickcontact_expanding_button_right_padding"
+            android:layout_marginRight="@dimen/quickcontact_expanding_button_right_padding"
+            android:layout_marginTop="@dimen/quickcontact_expanding_button_section_padding"
+            android:layout_marginBottom="@dimen/quickcontact_expanding_button_section_padding"
+            android:orientation="horizontal">
+
+            <Button
+                android:id="@+id/cancel_button"
+                style="?android:attr/buttonBarButtonStyle"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/quickcontact_suggestion_cancel_button"/>
+
+            <Button
+                android:id="@+id/link_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:lines="1"
+                android:ellipsize="end"
+                android:text="@string/quickcontact_suggestion_link_button"/>
+        </LinearLayout>
+    </LinearLayout>
+</android.support.v7.widget.CardView>
\ No newline at end of file
diff --git a/res/layout/quickcontact_expanding_entry_card_button.xml b/res/layout/quickcontact_expanding_entry_card_button.xml
new file mode 100644
index 0000000..b198b06
--- /dev/null
+++ b/res/layout/quickcontact_expanding_entry_card_button.xml
@@ -0,0 +1,67 @@
+<?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"
+    style="@style/SelectableItem"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical" >
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/divider_line_height"
+        android:background="@color/divider_line_color_light" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal" >
+
+        <ImageView
+            android:id="@+id/arrow"
+            android:src="@drawable/expanding_entry_card_expand_white_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" />
+
+        <TextView
+            android:id="@+id/text"
+            android:layout_width="wrap_content"
+            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_header.xml b/res/layout/quickcontact_header.xml
new file mode 100644
index 0000000..88a80f7
--- /dev/null
+++ b/res/layout/quickcontact_header.xml
@@ -0,0 +1,54 @@
+<?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.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <com.android.contacts.widget.QuickContactImageView
+        android:id="@+id/photo"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:clickable="false"
+        android:scaleType="centerCrop" />
+
+    <View
+        android:id="@+id/photo_touch_intercept_overlay"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@drawable/item_background_material_dark" />
+
+    <!-- Overlays/gradients that can be used to make white text/buttons visible -->
+    <View
+        android:id="@+id/title_gradient"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom" />
+    <View
+        android:id="@+id/action_bar_gradient"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="top" />
+
+    <!-- Need to set a non null background on Toolbar in order for MenuItem ripples to be drawn on
+         this view, instead of another. This will *not* cause an additional draw since the
+         background is transparent.-->
+    <Toolbar
+        android:layout_width="wrap_content"
+        android:layout_gravity="end|top"
+        android:layout_height="?android:attr/actionBarSize"
+        android:background="#00000000"
+        android:id="@+id/toolbar"/>
+
+</merge>
diff --git a/res/layout/quickcontact_suggestion_contact_item.xml b/res/layout/quickcontact_suggestion_contact_item.xml
new file mode 100644
index 0000000..3e7ed49
--- /dev/null
+++ b/res/layout/quickcontact_suggestion_contact_item.xml
@@ -0,0 +1,70 @@
+<?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/quickcontact_title_and_phoneticname.xml b/res/layout/quickcontact_title_and_phoneticname.xml
new file mode 100644
index 0000000..350c5e9
--- /dev/null
+++ b/res/layout/quickcontact_title_and_phoneticname.xml
@@ -0,0 +1,48 @@
+<?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/title_and_phonetic_name"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:layout_marginStart="@dimen/quickcontact_title_initial_margin"
+    android:layout_marginEnd="@dimen/quickcontact_title_initial_margin"
+    android:layout_marginBottom="@dimen/quickcontact_title_initial_bottom_margin">
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="top|start"
+        android:textColor="@color/actionbar_text_color"
+        android:maxLines="@integer/quickcontact_title_lines"
+        android:textSize="@dimen/quickcontact_maximum_title_size"
+        android:textAlignment="viewStart"
+        android:ellipsize="end"
+        android:importantForAccessibility="no"
+        android:id="@+id/large_title"/>
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/large_title"
+        android:textColor="@color/actionbar_text_color"
+        android:maxLines="@integer/quickcontact_title_lines"
+        android:textSize="@dimen/quickcontact_maximum_phonetic_name_size"
+        android:textAlignment="viewStart"
+        android:ellipsize="end"
+        android:importantForAccessibility="no"
+        android:id="@+id/phonetic_name"/>
+</LinearLayout>
diff --git a/res/layout/quickcontact_title_placeholder.xml b/res/layout/quickcontact_title_placeholder.xml
new file mode 100644
index 0000000..31d83ff
--- /dev/null
+++ b/res/layout/quickcontact_title_placeholder.xml
@@ -0,0 +1,31 @@
+<?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.
+  -->
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="match_parent" >
+
+    <!-- Marks the location and size of the Activity title -->
+    <TextView
+        android:id="@+id/placeholder_textview"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        style="@android:style/TextAppearance.Material.Widget.ActionBar.Title" />
+
+</FrameLayout>
+
+
diff --git a/res/layout/raw_contact_editor_view.xml b/res/layout/raw_contact_editor_view.xml
new file mode 100644
index 0000000..97c1b49
--- /dev/null
+++ b/res/layout/raw_contact_editor_view.xml
@@ -0,0 +1,76 @@
+<?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_readonly_editor_view.xml b/res/layout/raw_contact_readonly_editor_view.xml
new file mode 100644
index 0000000..25699ce
--- /dev/null
+++ b/res/layout/raw_contact_readonly_editor_view.xml
@@ -0,0 +1,88 @@
+<?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_header.xml b/res/layout/search_header.xml
new file mode 100644
index 0000000..6907a62
--- /dev/null
+++ b/res/layout/search_header.xml
@@ -0,0 +1,26 @@
+<?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.
+-->
+
+<TextView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:id="@+id/totalContactsText"
+    android:minHeight="@dimen/contact_filter_header_min_height"
+    android:paddingTop="24dip"
+    android:gravity="center_horizontal"
+    android:textAppearance="?android:attr/textAppearanceLarge"
+    android:textColor="?android:attr/textColorSecondary" />
diff --git a/res/layout/selection_bar.xml b/res/layout/selection_bar.xml
new file mode 100644
index 0000000..72a5a10
--- /dev/null
+++ b/res/layout/selection_bar.xml
@@ -0,0 +1,58 @@
+<?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:id="@+id/selection_bar"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/contextual_selection_bar_color">
+
+    <ImageButton
+        android:id="@+id/selection_close"
+        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:alpha="@dimen/close_icon_alpha"
+        android:background="?attr/selectableItemBackgroundBorderless"
+        android:contentDescription="@string/action_menu_back_from_edit_select"
+        android:src="@drawable/ic_close_black_24dp"/>
+
+    <TextView
+        android:id="@+id/selection_count_text"
+        style="@style/ContactsActionBarTitleTextBlack"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical|start"
+        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/split_aggregate_list_item.xml b/res/layout/split_aggregate_list_item.xml
new file mode 100644
index 0000000..1d712ee
--- /dev/null
+++ b/res/layout/split_aggregate_list_item.xml
@@ -0,0 +1,79 @@
+<?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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="?android:attr/listPreferredItemHeight"
+    android:paddingLeft="12dip"
+    android:paddingRight="12dip"
+    android:paddingStart="12dip"
+    android:paddingEnd="12dip"
+>
+    <ImageView
+        android:id="@+id/sourceIcon"
+        android:layout_width="32dip"
+        android:layout_height="32dip"
+        android:layout_alignParentRight="true"
+        android:layout_alignParentEnd="true"
+        android:layout_alignParentTop="true"
+        android:layout_centerVertical="true"
+        android:layout_marginTop="15dip"
+        android:layout_marginLeft="5dip"
+        android:layout_marginRight="8dip"
+        android:layout_marginStart="5dip"
+        android:layout_marginEnd="8dip"
+
+        android:gravity="center"
+        android:scaleType="centerInside"
+    />
+
+   <TextView android:id="@+id/additionalData"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_toLeftOf="@id/sourceIcon"
+        android:layout_toStartOf="@id/sourceIcon"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        android:layout_alignWithParentIfMissing="true"
+        android:layout_marginBottom="8dip"
+        android:layout_marginTop="-8dip"
+
+        android:singleLine="true"
+        android:ellipsize="marquee"
+        android:textAppearance="?android:attr/textAppearanceSmall"
+    />
+
+    <TextView android:id="@+id/name"
+        android:layout_width="0dip"
+        android:layout_height="0dip"
+        android:layout_alignWithParentIfMissing="true"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        android:layout_alignParentTop="true"
+        android:layout_above="@id/additionalData"
+        android:layout_toLeftOf="@id/sourceIcon"
+        android:layout_toStartOf="@id/sourceIcon"
+        android:layout_marginBottom="1dip"
+
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:singleLine="true"
+        android:ellipsize="marquee"
+        android:gravity="center_vertical|left"
+    />
+
+</RelativeLayout>
diff --git a/res/layout/structured_name_editor_view.xml b/res/layout/structured_name_editor_view.xml
new file mode 100644
index 0000000..830f4d8
--- /dev/null
+++ b/res/layout/structured_name_editor_view.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.
+  -->
+
+<com.android.contacts.editor.StructuredNameEditorView
+    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:orientation="horizontal">
+
+    <!-- This isn't used in StructuredNameEditorView. 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"/>
+
+    <ImageView
+        android:id="@+id/kind_icon"
+        android:src="@drawable/ic_person_black_24dp"
+        android:contentDescription="@string/header_name_entry"
+        style="@style/EditKindIconStyle"/>
+
+    <include
+        layout="@layout/edit_field_list_with_anchor_view"/>
+
+    <include
+        android:id="@+id/expansion_view_container"
+        layout="@layout/name_edit_expansion_view"
+        android:visibility="gone"/>
+
+    <!-- This isn't used in StructuredNameEditorView. 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.StructuredNameEditorView>
diff --git a/res/layout/structured_name_readonly_editor_view.xml b/res/layout/structured_name_readonly_editor_view.xml
new file mode 100644
index 0000000..4778570
--- /dev/null
+++ b/res/layout/structured_name_readonly_editor_view.xml
@@ -0,0 +1,38 @@
+<?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="wrap_content"
+        android:minHeight="@dimen/editor_min_line_item_height"
+        android:orientation="vertical">
+
+    <TextView
+            android:id="@+id/display_name"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="4dp"
+            android:layout_marginBottom="6dp"
+            android:singleLine="true"
+            android:textSize="@dimen/editor_form_text_size"
+            android:textColor="?android:attr/textColorSecondary"
+            android:enabled="false"/>
+
+    <include layout="@layout/account_type_info"
+            android:layout_marginStart="12dp" />
+
+</LinearLayout>
diff --git a/res/layout/take_a_photo_button.xml b/res/layout/take_a_photo_button.xml
new file mode 100644
index 0000000..b837e85
--- /dev/null
+++ b/res/layout/take_a_photo_button.xml
@@ -0,0 +1,28 @@
+<?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
new file mode 100644
index 0000000..dc3a312
--- /dev/null
+++ b/res/layout/text_fields_editor_view.xml
@@ -0,0 +1,48 @@
+<?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.TextFieldsEditorView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal">
+
+    <LinearLayout
+        android:layout_width="0dp"
+        android:layout_weight="1"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:id="@+id/editors"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical" />
+
+        <include
+            android:id="@+id/spinner"
+            layout="@layout/edit_spinner"
+            android:visibility="gone" />
+
+    </LinearLayout>
+
+    <include
+        android:id="@+id/delete_button_container"
+        layout="@layout/edit_delete_button"
+        android:visibility="gone" />
+
+</com.android.contacts.editor.TextFieldsEditorView>
diff --git a/res/menu/activity_main_drawer.xml b/res/menu/activity_main_drawer.xml
new file mode 100644
index 0000000..a006761
--- /dev/null
+++ b/res/menu/activity_main_drawer.xml
@@ -0,0 +1,59 @@
+<?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">
+
+    <group android:id="@+id/nav_utilities">
+        <item
+            android:id="@+id/nav_all_contacts"
+            android:icon="@drawable/ic_menu_filter"
+            android:title="@string/contactsList" />
+        <item
+            android:id="@+id/nav_find_duplicates"
+            android:icon="@drawable/ic_menu_duplicates"
+            android:title="@string/menu_duplicates"/>
+    </group>
+
+    <group android:id="@+id/groups">
+        <item
+            android:id="@+id/nav_groups"
+            android:title="@string/menu_title_groups">
+            <menu/>
+        </item>
+    </group>
+
+    <group android:id="@+id/filters">
+        <item
+            android:id="@+id/nav_filters"
+            android:title="@string/menu_title_filters">
+            <menu/>
+        </item>
+    </group>
+
+    <group android:id="@+id/nav_misc">
+        <item
+            android:id="@+id/nav_settings"
+            android:icon="@drawable/ic_menu_settings"
+            android:title="@string/menu_settings"/>
+        <item
+            android:id="@+id/nav_help"
+            android:icon="@drawable/ic_menu_help"
+            android:title="@string/menu_help"/>
+    </group>
+
+</menu>
diff --git a/res/menu/edit_contact.xml b/res/menu/edit_contact.xml
new file mode 100644
index 0000000..9bf067f
--- /dev/null
+++ b/res/menu/edit_contact.xml
@@ -0,0 +1,48 @@
+<?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">
+    <item
+        android:id="@+id/menu_save"
+        android:showAsAction="always"
+        android:actionLayout="@layout/editor_save_button"
+        android:title="@string/menu_save" />
+
+    <item
+        android:id="@+id/menu_split"
+        android:title="@string/menu_splitAggregate" />
+
+    <item
+        android:id="@+id/menu_join"
+        android:title="@string/menu_joinAggregate" />
+
+    <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_help"
+        android:title="@string/menu_help" />
+</menu>
diff --git a/res/menu/edit_contact_photo.xml b/res/menu/edit_contact_photo.xml
new file mode 100644
index 0000000..725ea8b
--- /dev/null
+++ b/res/menu/edit_contact_photo.xml
@@ -0,0 +1,24 @@
+<?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/group_member_picker.xml b/res/menu/group_member_picker.xml
new file mode 100644
index 0000000..9e623f6
--- /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/menu_help.xml b/res/menu/menu_help.xml
new file mode 100644
index 0000000..3b5d3df
--- /dev/null
+++ b/res/menu/menu_help.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.
+  -->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:id="@+id/nav_help"/>
+</menu>
\ No newline at end of file
diff --git a/res/menu/people_options.xml b/res/menu/people_options.xml
new file mode 100644
index 0000000..a2402b9
--- /dev/null
+++ b/res/menu/people_options.xml
@@ -0,0 +1,48 @@
+<?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.
+-->
+<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"
+        contacts:showAsAction="ifRoom" />
+
+    <item
+        android:id="@+id/export_database"
+        android:title="@string/menu_export_database"
+        android:visible="false"
+        android:showAsAction="never" />
+
+    <item
+        android:id="@+id/menu_share"
+        android:icon="@drawable/ic_menu_share"
+        android:title="@string/menu_share"
+        contacts:showAsAction="ifRoom"/>
+
+    <item
+        android:id="@+id/menu_delete"
+        android:icon="@drawable/ic_menu_delete"
+        android:title="@string/menu_deleteContact"
+        contacts:showAsAction="ifRoom"/>
+
+    <item
+        android:id="@+id/menu_join"
+        android:icon="@drawable/ic_menu_link"
+        android:title="@string/menu_joinAggregate"
+        contacts:showAsAction="ifRoom"/>
+
+</menu>
diff --git a/res/menu/quickcontact.xml b/res/menu/quickcontact.xml
new file mode 100644
index 0000000..6cfe053
--- /dev/null
+++ b/res/menu/quickcontact.xml
@@ -0,0 +1,44 @@
+<?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.
+-->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- Icon and titles are set in code for menu_star and menu_edit -->
+
+    <item
+        android:id="@+id/menu_star"
+        android:showAsAction="always" />
+
+    <item
+        android:id="@+id/menu_edit"
+        android:showAsAction="always" />
+
+    <item
+        android:id="@+id/menu_delete"
+        android:title="@string/menu_deleteContact" />
+
+    <item
+        android:id="@+id/menu_share"
+        android:title="@string/menu_share"
+        android:alphabeticShortcut="s" />
+
+    <item
+        android:id="@+id/menu_create_contact_shortcut"
+        android:title="@string/menu_create_contact_shortcut" />
+
+    <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
new file mode 100644
index 0000000..89068d0
--- /dev/null
+++ b/res/menu/search_menu.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.
+-->
+<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"
+        contacts:showAsAction="always" />
+</menu>
diff --git a/res/menu/star.xml b/res/menu/star.xml
new file mode 100644
index 0000000..904adbf
--- /dev/null
+++ b/res/menu/star.xml
@@ -0,0 +1,21 @@
+<?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
new file mode 100644
index 0000000..8c36924
--- /dev/null
+++ b/res/menu/view_contact.xml
@@ -0,0 +1,44 @@
+<?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
new file mode 100644
index 0000000..24eb0b5
--- /dev/null
+++ b/res/menu/view_group.xml
@@ -0,0 +1,42 @@
+<?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"
+    xmlns:contacts="http://schemas.android.com/apk/res-auto">
+
+    <item
+        android:id="@+id/menu_add"
+        android:icon="@drawable/ic_person_add_24dp"
+        android:title="@string/menu_addToGroup"
+        contacts:showAsAction="ifRoom" />
+
+    <item
+        android:id="@+id/menu_edit_group"
+        android:icon="@drawable/ic_create_24dp"
+        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/values-af/strings.xml b/res/values-af/strings.xml
new file mode 100644
index 0000000..8b73bad
--- /dev/null
+++ b/res/values-af/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"By gunstelinge gevoeg"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Verdeel"</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_contact_action_bar" msgid="7371001434034419566">"Voeg kontak by"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Skep nuwe …"</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">"Koppel"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Stoor"</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="contactsJoinedMessage" msgid="3343535986195643136">"Kontakte is saamgevoeg"</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">%d</xliff:g> kontakte · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontak · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Die kontakte wat uitgevee gaan word, bevat besonderhede van veelvuldige rekeninge af. Besonderhede van leesalleen-rekeninge sal versteek word, nie uitgevee word nie."</string>
+    <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 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="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="2228592924476426108">"Jou kontaktelys is leeg"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Geen etikette nie."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Jy het \'n rekening nodig om groepe te skep."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Kon nie etiket laai nie"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Etiket gestoor"</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="8121032018490980184">"Kon nie etiketveranderinge 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="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="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="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="5122118085780669813">"Etiket"</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="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="8038224059926963133">"Etiket"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"maak toe"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Skakel die huidige kontak aan die geselekteerde kontak?"</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="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="3182801738595937144">"Voer in"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Skep nuwe etiket"</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="5058226498605989285">"Gooi jou veranderings weg en hou op om te wysig?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Gooi weg"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Hou aan wysig"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Wysig kontak"</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="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="288549957278065542">"Skep tans \'n persoonlike kopie..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Gister"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisasie"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Bynaam"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Nota"</string>
+    <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_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="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="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 koppel."</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="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="6975676844194755501">"Kontaklys word tans opgedateer om die taalverandering te weerspieël.\n\nWag asseblief …"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplikate"</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="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="630115334220569184">"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="7442308698936786415">"Organiseer jou lys"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Vee duplikate uit en groepeer kontakte volgens etiket"</string>
+</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
new file mode 100644
index 0000000..1bfc997
--- /dev/null
+++ b/res/values-am/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"እውቂያ ያክሉ"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"አዲስ ፍጠር…"</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>
+    <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">%d</xliff:g> እውቂያዎች · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> እውቂያዎች · <xliff:g id="ACCOUNT_3">%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="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 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="2228592924476426108">"የእውቂያዎች ዝርዝርዎ ባዶ ነው"</string>
+    <string name="noGroups" msgid="4607906327968232225">"ምንም መሰየሚያ የለም።"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"ቡድኖች ለመፍጠር መለያ ያስፈልግሃል፡፡"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ይህ መሰየሚያ ያላቸው ምንም እውቂያዎች የሉም"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"በዚህ መለያ ውስጥ ምንም እውቂያዎች የሉም።"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"የእውቂያዎች ዝርዝርዎ ባዶ ነው"</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="groupLoadErrorToast" msgid="7536267148196064554">"መሰየሚያ መጫን አልተሳካም"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"መሰየሚያ ተቀምጧል"</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="8121032018490980184">"የመሰየሚያ ለውጦችን መቀየር አልተቻለም።"</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="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="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="5122118085780669813">"መሰየሚያ"</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="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="8038224059926963133">"መሰየሚያ"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"ዝጋ"</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="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="3182801738595937144">"አምጣ"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"አዲስ መሰየሚያ ፍጠር"</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="5058226498605989285">"ለውጦችዎ ይወገዱ እና ማርትዕ ይቁም?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"አስወግድ"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"አርትዖቱን ቀጥል"</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="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="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="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="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="288549957278065542">"የግል ቅጂ በመፍጠር ላይ..."</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">"ፈጣን መልዕክት"</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="6975676844194755501">"የእውቅያ ዝርዝር የቋንቋ ለውጥን ለማንፀባረቅ ዘምኗል።\n\nእባክዎ ይጠብቁ…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"የተባዙ"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"የአሰሳ መሣቢያውን ክፈት"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"የአሰሳ መሣቢያውን ዝጋ"</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="630115334220569184">"ኩነቶች እና መልዕክቶች"</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="7442308698936786415">"ዝርዝርዎን ያደራጁ"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"ተደጋጋሚዎችን ያጽዱ፤ እንዲሁም እውቂያዎችን በመሰየሚያ ያቧድኑ።"</string>
+</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
new file mode 100644
index 0000000..0df6033
--- /dev/null
+++ b/res/values-ar/strings.xml
@@ -0,0 +1,389 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"إضافة جهة اتصال"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"إنشاء مجموعة جديدة…"</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="zero">تم حذف جهة الاتصال</item>
+      <item quantity="two">تم حذف جهتي الاتصال</item>
+      <item quantity="few">تم حذف جهات الاتصال</item>
+      <item quantity="many">تم حذف جهات الاتصال</item>
+      <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">%d</xliff:g> جهة اتصال · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="two"><xliff:g id="COUNT_2">%d</xliff:g> جهتا اتصال · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%d</xliff:g> جهات اتصال · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%d</xliff:g> جهة اتصال · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> جهة اتصال · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> جهة اتصال · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"قائمة جهات اتصالك فارغة"</string>
+    <string name="noGroups" msgid="4607906327968232225">"لا تصنيف"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"يجب توفير حساب لإنشاء مجموعات."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"لا توجد جهات اتصال بهذه التسمية"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"لا توجد جهات اتصال في هذا الحساب"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"قائمة جهات اتصالك فارغة"</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="groupLoadErrorToast" msgid="7536267148196064554">"فشل تحميل التصنيف"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"تم حفظ التصنيف"</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="8121032018490980184">"لا يمكن حفظ التغييرات على التصنيف."</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="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="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="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="5122118085780669813">"التصنيف"</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="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="8038224059926963133">"التصنيف"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"إغلاق"</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="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="3182801738595937144">"استيراد"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"إنشاء تصنيف جديد"</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="5058226498605989285">"هل تريد تجاهل التغييرات ومغادرة التعديل؟"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"تجاهل"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"متابعة التعديلات"</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="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="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="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="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="288549957278065542">"جارٍ إنشاء نسخة شخصية..."</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">"المراسلة الفورية"</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="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="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_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="6975676844194755501">"يتم تحديث قائمة جهات الاتصال لتعكس التغيير الذي حدث في اللغة.\n\nالرجاء الانتظار…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"جهات الاتصال المكررة"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"فتح لائحة التنقل"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"إغلاق لائحة التنقل"</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="630115334220569184">"الأحداث والرسائل"</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="7442308698936786415">"ترتيب قائمتك"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"إزالة النُسخ طبق الأصل وجهات اتصال المجموعات حسب التصنيف"</string>
+</resources>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
new file mode 100644
index 0000000..2557079
--- /dev/null
+++ b/res/values-az-rAZ/strings.xml
@@ -0,0 +1,345 @@
+<?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="groupMemberPickerActivityTitle" msgid="1431750793695262522">"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="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="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_contact_action_bar" msgid="7371001434034419566">"Kontakt əlavə edin"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Yenisini 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="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>
+    <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">%d</xliff:g> kontakt · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%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="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="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 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="2228592924476426108">"Kontakt siyahınız boşdur"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Etiket yoxdur"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Qrup yaratmaq üçün hesaba ehtiyacınız var."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Etiketi yükləmək uğursuz oldu"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Etiket yadda saxlanıldı"</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="8121032018490980184">"Etiket dəyişikliyini yadda saxlamaq mümkün olmadı."</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="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="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="5122118085780669813">"Etiket"</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="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="8038224059926963133">"Etiket"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"qapadın"</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="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="3182801738595937144">"İmport"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Yeni etiket yaradın"</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="5058226498605989285">"Dəyişiklikləriniz kənarlaşdırılsın və redaktə sonlandırılsın?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Ləğv edin"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Redaktəyə davam 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="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="toast_displaying_all_contacts" msgid="2737388783898593875">"Bütün kontaktlar göstərilir"</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="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="7192223018128934940">"Yeni kontakt əlavə edin"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Kontakta düzəliş edin"</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="288549957278065542">"Şə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="6975676844194755501">"Kontakt siyahısı dilin dəyişməsinə uyğun olaraq güncəlləşir.\n\nLütfən, gözləyin..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Dublikatlar"</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="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="630115334220569184">"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="7442308698936786415">"Siyahınızı sistemləşdirin"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Dublikatları və qrup kontaktlarını etiket vasitəsi ilə təmizləyin"</string>
+</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 0000000..3078976
--- /dev/null
+++ b/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,349 @@
+<?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="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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Dodato je u Omiljeno"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Razdvoji"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"Izmeni"</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_contact_action_bar" msgid="7371001434034419566">"Dodaj kontakt"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Napravi novu…"</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="menu_joinAggregate" msgid="3599512127797513606">"Objedini"</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="contactsJoinedMessage" msgid="3343535986195643136">"Kontakti su objedinjeni"</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="3287407967505649458">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontakt</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakta</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakata</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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kontakti koje ste izabrali za brisanje imaju detalje sa više naloga. Detalji sa naloga koji su samo za čitanje će biti skriveni, ali ne i izbrisani."</string>
+    <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 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="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="4607906327968232225">"Nema oznaka."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Morate da imate nalog da biste mogli da pravite grupe."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Nema kontakata sa ovom oznakom"</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="groupLoadErrorToast" msgid="7536267148196064554">"Učitavanje oznake nije uspelo"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Oznaka je sačuvana"</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="8121032018490980184">"Čuvanje promena oznake nije uspelo."</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="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="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="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="5122118085780669813">"Oznaka"</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>"</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="take_photo" msgid="7496128293167402354">"Snimi fotografiju"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Napravi novu fotografiju"</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="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="8038224059926963133">"Oznaka"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"zatvorite"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Želite li da aktuelni kontakt objedinite sa izabranim kontaktom?"</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="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="5363404287877384473">"Napravite novu oznaku"</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="5058226498605989285">"Želite li da odbacite promene i prekinete sa izmenama?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Odbaci"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Nastavi izmene"</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="enter_contact_name" msgid="4594274696120278368">"Pretražite kontakte"</string>
+    <!-- no translation found for title_edit_group (1889302367574226969) -->
+    <skip />
+    <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="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_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="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="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="288549957278065542">"Pravljenje lične kopije..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Juče"</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="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>
+    <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">"Beleška"</string>
+    <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_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="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"</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="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">"Slikaj"</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_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="6975676844194755501">"Lista kontakata se ažurira da bi se primenila promena jezika.\n\nSačekajte…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplikati"</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="menu_title_groups" msgid="8356921831150278868">"Oznake"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Nalozi"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Pregledajte istoriju zajedno"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="630115334220569184">"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>
+</resources>
diff --git a/res/values-be-rBY/strings.xml b/res/values-be-rBY/strings.xml
new file mode 100644
index 0000000..2eee399
--- /dev/null
+++ b/res/values-be-rBY/strings.xml
@@ -0,0 +1,359 @@
+<?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">"Выберыце нумар для адпраўкi паведамлення"</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="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_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_contact_action_bar" msgid="7371001434034419566">"Дадаць кантакт"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Стварыць новую..."</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">"Выберыце кантакт, які хочаце звязаць з iмем <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="few">Кантакты выдалены</item>
+      <item quantity="many">Кантакты выдалены</item>
+      <item quantity="other">Кантакты выдалены</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="3287407967505649458">
+      <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="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="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 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="4607906327968232225">"Метак няма."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Для стварэння групы патрабуецца ўліковы запіс."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Няма кантактаў з гэтай меткай"</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="groupLoadErrorToast" msgid="7536267148196064554">"Збой загрузкі этыкеткі"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Метка захавана"</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="8121032018490980184">"Не ўдалося захаваць змяненні меткі."</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="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="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="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="5122118085780669813">"Метка"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Галасавы чат"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Відэачат"</string>
+    <string name="connections" msgid="8098440723172028350">"Сувязi"</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="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="upgrade_in_progress" msgid="474511436863451061">"Спiс кантактаў абнаўляецца."</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="8038224059926963133">"Метка"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"закрыць"</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="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="5363404287877384473">"Стварыць новую метку"</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="5058226498605989285">"Адхіліць змены і скончыць рэдагаванне?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Адхіліць"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Працягнуць рэдагаванне"</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="enter_contact_name" msgid="4594274696120278368">"Пошук кантактаў"</string>
+    <!-- no translation found for title_edit_group (1889302367574226969) -->
+    <skip />
+    <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="generic_no_account_prompt" msgid="7218827704367325460">"Абаранiце свае кантакты, нават калі страціце тэлефон: сінхранізуйце iх з вэб-службай."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Дадаць уліковы запіс"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Рэзервовая копiя вашага новага кантакту не будзе створана. Дадаць улiковы запiс, у якiм будуць захоўвацца рэзервовыя копii кантактаў у Iнтэрнэце?"</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">"Адправiць паведамленне"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Стварэнне асабістай копіі..."</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">"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_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="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="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_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="6975676844194755501">"Спіс кантактаў абнаўляецца, каб адлюстраваць змяненне мовы.\n\nПачакайце..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Дублікаты"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Адкрыць высоўнае меню навігацыі"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Закрыць высоўнае меню навігацыi"</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="630115334220569184">"Падзеі і паведамленні"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Падзеі"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Паведамленні"</string>
+</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
new file mode 100644
index 0000000..6b0cb8d
--- /dev/null
+++ b/res/values-bg/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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">"Изпращaне на SMS на контакт"</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_contact_action_bar" msgid="7371001434034419566">"Добавяне на контакт"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Създаване на ново…"</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>
+    <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">%d</xliff:g> контакта · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> контакт · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"Списъкът ви с контакти е празен"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Няма етикети."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Необходим ви е профил, за да създавате групи."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Няма контакти с този етикет"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"В този профил няма контакти"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Списъкът ви с контакти е празен"</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="groupLoadErrorToast" msgid="7536267148196064554">"Зареждането на етикета не бе успешно"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Етикетът е запазен."</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="8121032018490980184">"Промените в етикета не можаха да бъдат запазени."</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="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="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="5122118085780669813">"Етикет"</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="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="8038224059926963133">"Етикет"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"затваряне"</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="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="3182801738595937144">"Импортиране"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Създаване на нов етикет"</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="5058226498605989285">"Искате ли да отхвърлите направените от вас промени и да излезете от редактирането?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Отхвърляне"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Продължаване с редактирането"</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="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="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="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="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="288549957278065542">"Създава се лично копие..."</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">"Незабавно съобщение"</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="6975676844194755501">"Списъкът с контакти се актуализира, за да отрази промяната на езика.\n\nМоля, изчакайте…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Дублирани"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Отваряне на слоя за навигация"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Затваряне на слоя за навигация"</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="630115334220569184">"Събития и съобщения"</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="7442308698936786415">"Организирайте списъка си"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Разчистете дубликатите и групирайте контактите по етикет"</string>
+</resources>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
new file mode 100644
index 0000000..21ddf31
--- /dev/null
+++ b/res/values-bn-rBD/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"পরিচিতি যোগ করুন"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"নতুন তৈরি করুন…"</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>
+    <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">%d</xliff:g>টি পরিচিতি · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g>টি পরিচিতি · <xliff:g id="ACCOUNT_3">%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="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 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="2228592924476426108">"আপনার পরিচিতির তালিকা খালি"</string>
+    <string name="noGroups" msgid="4607906327968232225">"কোনো লেবেল নেই।"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"গোষ্ঠীগুলি তৈরি করার জন্য আপনার একটি অ্যাকাউন্টের প্রয়োজন৷"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"এই লেবেলে কোনো পরিচিতি নেই"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"এই অ্যাকাউন্টে কোনো পরিচিতি নেই"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"আপনার পরিচিতির তালিকা খালি"</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="groupLoadErrorToast" msgid="7536267148196064554">"লেবেল লোড করা গেল না"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"লেবেল সংরক্ষিত হয়েছে"</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="8121032018490980184">"লেবেল পরিবর্তনগুলি সংরক্ষণ করা গেল না।"</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="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="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="5122118085780669813">"লেবেল"</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="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="8038224059926963133">"লেবেল"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"বন্ধ করুন"</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="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="3182801738595937144">"আমদানি করুন"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"নতুন লেবেল তৈরি করুন"</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="5058226498605989285">"আপনার পরিবর্তনগুলি বাতিল করতে এবং সম্পাদনা থেকে প্রস্থান করতে চান?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"বাতিল করুন"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"সম্পাদনা করা চালিয়ে যান"</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="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="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="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="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="288549957278065542">"একটি ব্যক্তিগত অনুলিপি তৈরি করা হচ্ছে…"</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="6975676844194755501">"ভাষা পরিবর্তন দেখানোর জন্য পরিচিতির তালিকা আপডেট করা হচ্ছে৷\n\n অনুগ্রহ করে অপেক্ষা করুন…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"সদৃশগুলি"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"নেভিগেশান ড্রয়ার খুলুন"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"নেভিগেশান ড্রয়ার বন্ধ করুন"</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="630115334220569184">"ইভেন্ট এবং বার্তাগুলি"</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="7442308698936786415">"আপনার তালিকা সংগঠিত করুন"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"সদৃশগুলিকে সাফ এবং লেবেল অনুযায়ী পরিচিতিগুলিকে গোষ্ঠীবদ্ধ করুন"</string>
+</resources>
diff --git a/res/values-bs-rBA/strings.xml b/res/values-bs-rBA/strings.xml
new file mode 100644
index 0000000..67f5166
--- /dev/null
+++ b/res/values-bs-rBA/strings.xml
@@ -0,0 +1,349 @@
+<?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="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="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">"Izaberite prečicu kontakta"</string>
+    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Izaberite broj za pozivanje"</string>
+    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Izaberite broj da pošaljete poruku"</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="starredList" msgid="4817256136413959463">"Označeno zvijezdom"</string>
+    <string name="frequentList" msgid="7154768136473953056">"Često kontaktirani"</string>
+    <string name="strequentList" msgid="5640192862059373511">"Favoriti"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"Detalji o kontaktu"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"Uredi kontakt"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"Napravi kontakt"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"O kontaktu"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"Ažuriranja"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Traž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>
+    <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="1217971915748509640">"Postavi na Početni ekran"</string>
+    <string name="menu_call" msgid="3992595586042260618">"Pozovi kontakt"</string>
+    <string name="menu_sendSMS" msgid="5535886767547006515">"Pošalji tekstualnu poruku kontaktu"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Razdvoji"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"Uredi"</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_contact_action_bar" msgid="7371001434034419566">"Dodaj kontakt"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Napravi novu…"</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="menu_joinAggregate" msgid="3599512127797513606">"Poveži"</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="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="contactsJoinedMessage" msgid="3343535986195643136">"Kontakti su povezani"</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="3287407967505649458">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontakt</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakta</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakata</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="4181789196416396656">"Svi pozivi na govornu poštu"</string>
+    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontakti s računa koji su samo za čitanje se ne mogu izbrisati, ali se mogu sakriti."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Sakrij"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Kontakt kojeg želite izbrisati sadrži detalje s više računa. Detalji s računa koji su samo za čitanje se neće izbrisati, već sakriti."</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="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 ekran."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Kontakt <xliff:g id="NAME">%s</xliff:g> je dodan na Početni ekran."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Napravi novi kontakt"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Napravi novi kontakt"</string>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Na tabletu nema dostupnih slika."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Na telefonu 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="send_to_voicemail_checkbox" msgid="9001686764070676353">"Pošalji pozive direktno na govornu poštu"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Ukloni fotografiju"</string>
+    <string name="noContacts" msgid="4955659076981974652">"Nema kontakata"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Nema oznaka."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Potreban vam je račun da napravite grupe."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Nema kontakata s ovom oznakom"</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 promjene kontakta."</string>
+    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Nije moguće razdvojiti kontakt."</string>
+    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Nije moguće povezati kontakt."</string>
+    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Greška prilikom čuvanja kontakta."</string>
+    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Nije moguće sačuvati promjene fotografije kontakta."</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Učitavanje oznake nije uspjelo"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Oznaka je sačuvana"</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="8121032018490980184">"Nije moguće sačuvati promjene oznake."</string>
+    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontakt s brojem telefona</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakta s brojevima telefona</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakata s brojevima telefona</item>
+    </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nema kontakata s brojevima telefona"</string>
+    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontakt pronađen</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakta pronađena</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakata pronađeno</item>
+    </plurals>
+    <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> kontakt pronađen</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakta pronađena</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakata pronađeno</item>
+    </plurals>
+    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Sve"</string>
+    <string name="callBack" msgid="5498224409038809224">"Uputi povratni 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">"Dodati \"<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> kontakata"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Imena kontakata"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"Nije pronađena aplikacija za obavljanje ove radnje."</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="5122118085780669813">"Oznaka"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Glasovno ć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="google_account_type_format" msgid="5283997303922067997">"Račun <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <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="upgrade_in_progress" msgid="474511436863451061">"Lista kontakata se ažurira."</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Pretraživanje…"</string>
+    <string name="menu_display_selected" msgid="6470001164297969034">"Prikaži odabrane"</string>
+    <string name="menu_display_all" msgid="8887488642609786198">"Prikaži sve"</string>
+    <string name="menu_select_all" msgid="621719255150713545">"Odaberi sve"</string>
+    <string name="menu_select_none" msgid="7093222469852132345">"Ukloni odabir svih"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Dodaj novi"</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="8038224059926963133">"Oznaka"</string>
+    <string name="change_photo" msgid="8530597935483526383">"Promijeni"</string>
+    <string name="primary_photo" msgid="8517942231868516999">"Primarna fotografija"</string>
+    <string name="description_star" msgid="2605854427360036550">"favorit"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"Uredi kontakt"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"zatvori"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Povezati trenutni kontakt s odabranim kontaktom?"</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="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">"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="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">"Dodaj u kontakt"</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 godine"</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">"Napravi 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="5363404287877384473">"Napravi novu oznaku"</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="5058226498605989285">"Želite li odbaciti napravljene promjene i prekinuti uređivanje?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Odbaci"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Nastavi uređivanje"</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="enter_contact_name" msgid="4594274696120278368">"Traži kontakte"</string>
+    <!-- no translation found for title_edit_group (1889302367574226969) -->
+    <skip />
+    <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="toast_displaying_all_contacts" msgid="2737388783898593875">"Prikazuju se svi kontakti"</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Očuvajte sigurnost svojih kontakata čak i ako izgubite telefon: sinhronizirajte ih s 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">"Neće biti napravljena sigurnosna kopija novog računa. Dodati račun za pravljenje sigurnosnih kopija kontakata na mreži?"</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="7192223018128934940">"Dodaj novi kontakt"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Uredi kontakt"</string>
+    <string name="keep_local" msgid="1258761699192993322">"Zadrži na uređaju"</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="3180222523336380017">"dodaj 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="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Pogledaj sve"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Nedavno"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"O kontaktu"</string>
+    <string name="send_message" msgid="8938418965550543196">"Pošalji poruku"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Izrađivanje lične kopije u toku…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Jučer"</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="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 stranica"</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-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 da proširite uređivač kontakata."</string>
+    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Kliknite da skupite uređivač kontakata."</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">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%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">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%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="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts funkcionira bolje kada unesete Hangouts identifikator osobe u polje za adresu e-pošte ili telefon."</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 uređivača nije uspjelo."</string>
+    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Sačuvati na"</string>
+    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Trenutno se sprema na račun <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Dodirnite dvaput da izaberete 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="quickcontact_suggestion_link_button" msgid="3244619714781727946">"POVEŽI 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ć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> povezan 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">"Moguće je da su ovi kontakti ista osoba. 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">"Izaberi fotografiju"</string>
+    <string name="contact_from_account_name" msgid="2078526819634079406">"Od kontakta <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_short" msgid="7335518371270844912">"Izbriši <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Fotografija s računa <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>nije označena"</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>je označena"</string>
+    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Fotografija s nepoznatog računa nije označena"</string>
+    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Fotografija s nepoznatog računa je označena"</string>
+    <string name="locale_change_in_progress" msgid="6975676844194755501">"Lista kontakata se ažurira u skladu s promjenom jezika.\n\nPričekajte…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplikati"</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="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="630115334220569184">"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>
+</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
new file mode 100644
index 0000000..95dff95
--- /dev/null
+++ b/res/values-ca/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Afegeix al contacte"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Tria un contacte"</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="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="contactDetailAbout" msgid="5430408883907061400">"Quant a"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"Actualitz."</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">"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_splitAggregate" msgid="2627252205317945563">"Desenllaça"</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_contact_action_bar" msgid="7371001434034419566">"Afegeix un contacte"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Crea…"</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="menu_joinAggregate" msgid="3599512127797513606">"Enllaça"</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="contactsJoinedMessage" msgid="3343535986195643136">"Contactes enllaçats"</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">%d</xliff:g> contactes · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contacte · <xliff:g id="ACCOUNT_1">%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="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="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"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Crea un contacte"</string>
+    <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="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="2228592924476426108">"La llista de contactes està buida"</string>
+    <string name="noGroups" msgid="4607906327968232225">"No hi ha cap etiqueta."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Per crear grups necessites un compte."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"L\'etiqueta no s\'ha pogut carregar"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"L\'etiqueta s\'ha desat"</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\'ha afegit a l\'etiqueta"</string>
+    <string name="groupSavedErrorToast" msgid="8121032018490980184">"No s\'han pogut desar els canvis fets a l\'etiqueta."</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="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="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="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="5122118085780669813">"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">"<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="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="8038224059926963133">"Etiqueta"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"tanca"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Vols enllaçar el contacte actual amb el contacte seleccionat?"</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="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="3182801738595937144">"Importa"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Crea una etiqueta"</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="5058226498605989285">"Vols descartar els canvis i sortir del mode d\'edició?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Descarta"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Continua editant"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Edita el contacte"</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="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 un missatge"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"S\'està creant una còpia personal..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Ahir"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organització"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Àlies"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Nota"</string>
+    <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_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="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="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_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="6975676844194755501">"La llista de contactes s\'està actualitzant per reflectir el canvi d\'idioma.\n\nEspera…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplicats"</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="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="630115334220569184">"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="7442308698936786415">"Organitza la llista"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Fes neteja dels duplicats i agrupa els contactes per etiqueta"</string>
+</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
new file mode 100644
index 0000000..de11f48
--- /dev/null
+++ b/res/values-cs/strings.xml
@@ -0,0 +1,367 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Přidáno mezi oblíbené"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Zrušit propojení"</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_contact_action_bar" msgid="7371001434034419566">"Přidat kontakt"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Nový š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="menu_joinAggregate" msgid="3599512127797513606">"Propojit"</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="contactsJoinedMessage" msgid="3343535986195643136">"Kontakty byly propojeny"</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">%d</xliff:g> kontakty · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%d</xliff:g> kontaktu · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> kontaktů · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kontakty určené ke smazání obsahují podrobnosti z několika účtů. Podrobnosti z účtů pouze ke čtení budou skryty, ale smazány nebudou."</string>
+    <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 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="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="2228592924476426108">"Váš seznam kontaktů je prázdný"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Žádné štítky."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"K vytváření skupin potřebujete účet."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Štítek se nepodařilo načíst"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Štítek byl uložen"</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="8121032018490980184">"Změny štítku se nepodařilo 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="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="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="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="5122118085780669813">"Štítek"</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">"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="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="8038224059926963133">"Štítek"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"zavřít"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Propojit aktuální kontakt s vybraným kontaktem?"</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="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="3182801738595937144">"Importovat"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Vytvořit nový štítek"</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="5058226498605989285">"Zahodit změny a ukončit úpravy?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Zrušit"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Pokračovat v úpravách"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Upravit kontakt"</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="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="288549957278065542">"Vytváření osobní kopie..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Včera"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organizace"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Přezdívka"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Poznámka"</string>
+    <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_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="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="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_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="6975676844194755501">"V souvislosti se změnou jazyka probíhá aktualizace seznamu kontaktů.\n\nČekejte prosím…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplicitní kontakty"</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="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="630115334220569184">"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="7442308698936786415">"Udělejte si v kontaktech pořádek"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Zbavte se duplicit a seskupte kontakty pod štítky"</string>
+</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
new file mode 100644
index 0000000..6a02ce4
--- /dev/null
+++ b/res/values-da/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Føjet til foretrukne"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Fjern link"</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_contact_action_bar" msgid="7371001434034419566">"Tilføj kontaktperson"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Opret ny…"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Vil du fjerne linkningen og opdele denne kontaktperson i flere kontaktpersoner?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Fjern link"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Vil du gemme de ændringer, du allerede har foretaget, og fjerne linkningen og opdele kontaktpersonen i flere kontaktpersoner?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Gem, og fjern link"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Vil du gemme de ændringer, du allerede har foretaget, og linke med den valgte kontaktperson?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Gem, og link"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Link"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Gem"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Link kontaktpersoner"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Vælg den kontaktperson, der skal linkes 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="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktpersonerne er linket"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <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">%d</xliff:g> kontaktperson · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> kontaktpersoner · <xliff:g id="ACCOUNT_3">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"De kontaktpersoner, du vil slette, indeholder oplysninger fra flere konti. Oplysninger fra skrivebeskyttede konti skjules fremfor at blive slettet."</string>
+    <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 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="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="2228592924476426108">"Din liste over kontaktpersoner er tom"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Der er ingen etiketter."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Du skal have en konto for at kunne oprette grupper."</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="contactSavedToast" msgid="9171862279493213075">"Kontaktpersonen er gemt"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Linkningen til kontaktpersonerne er fjernet"</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Der kunne ikke gemmes ændringer i kontaktpersoner."</string>
+    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Linkningen 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="groupLoadErrorToast" msgid="7536267148196064554">"Etiketten kan ikke indlæses"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Etiketten blev gemt"</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="8121032018490980184">"Ændringerne af etiketten kan 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="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="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="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="5122118085780669813">"Etiket"</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="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="8038224059926963133">"Etiket"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"luk"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Vil du linke den aktuelle kontaktperson til den valgte kontaktperson?"</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="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="contacts_unavailable_add_account" msgid="4347232421410561500">"Tilføj konto"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importér"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Opret en ny etiket"</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 linkes sammen til 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="5058226498605989285">"Vil du kassere ændringerne og afslutte redigering?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Kassér"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Fortsæt redigering"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Rediger kontaktperson"</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="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="288549957278065542">"Opretter en privat kopi..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"I går"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisation"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Kaldenavn"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Note"</string>
+    <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_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="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">Linket kontaktperson (<xliff:g id="COUNT">%d</xliff:g>)</item>
+      <item quantity="other">Linkede kontaktpersoner (<xliff:g id="COUNT">%d</xliff:g>)</item>
+    </plurals>
+    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> linkede 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">"LINK 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> linket kontaktperson</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> linkede 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 linke dem til én enkelt kontaktperson."</string>
+    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Linkede 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_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="6975676844194755501">"Kontaktlisten opdateres for at afspejle ændringen af sprog.\n\nVent et øjeblik…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Dubletter"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Åbn navigationsskuffen"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Luk navigationsskuffen"</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="630115334220569184">"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="7442308698936786415">"Organiser din liste"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Fjern dubletter, og gruppér kontaktpersoner efter etiket"</string>
+</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
new file mode 100644
index 0000000..f2566fb
--- /dev/null
+++ b/res/values-de/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Zu Favoriten hinzugefügt"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Verknüpfung aufheben"</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_contact_action_bar" msgid="7371001434034419566">"Kontakt hinzufügen"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Neu 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="menu_joinAggregate" msgid="3599512127797513606">"Verknüpfen"</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="contactsJoinedMessage" msgid="3343535986195643136">"Kontakte verknüpft"</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">%d</xliff:g> Kontakte · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> Kontakt · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Die zu löschenden Kontakte enthalten Informationen aus mehreren Konten. Informationen aus schreibgeschützten Konten werden nicht gelöscht, sondern nur ausgeblendet."</string>
+    <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 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="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="2228592924476426108">"Die Kontaktliste ist leer"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Keine Labels."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Du benötigst ein Konto, um Gruppen erstellen zu können."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Label konnte nicht geladen werden"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Label gespeichert"</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="8121032018490980184">"Änderungen am Label 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="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="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="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="5122118085780669813">"Label"</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="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="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="8038224059926963133">"Label"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"Schließen"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Aktuellen Kontakt mit ausgewähltem Kontakt verknüpfen?"</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="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="3182801738595937144">"Importieren"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Neues Label erstellen"</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="5058226498605989285">"Möchtest du die Änderungen verwerfen und den Bearbeitungsmodus beenden?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Verwerfen"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Bearbeitung fortsetzen"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Kontakt bearbeiten"</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="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="288549957278065542">"Persönliche Kopie wird erstellt..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Gestern"</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="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">"Alias"</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_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="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="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_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="6975676844194755501">"Die Kontaktliste wird an die geänderte Sprache angepasst.\n\nBitte warten…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplikate"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Navigationsleiste öffnen"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Navigationsleiste schließen"</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="630115334220569184">"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="7442308698936786415">"Liste organisieren"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Duplikate bereinigen und Kontakte nach Label gruppieren"</string>
+</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
new file mode 100644
index 0000000..15fa54f
--- /dev/null
+++ b/res/values-el/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"Προσθήκη επαφής"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Δημιουργία νέας…"</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">"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="contactsJoinedMessage" msgid="3343535986195643136">"Οι επαφές συνδέθηκαν"</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">%d</xliff:g> επαφές · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> επαφή · <xliff:g id="ACCOUNT_1">%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="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 name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Δεν υπάρχουν διαθέσιμες εικόνες στο tablet."</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="2228592924476426108">"Η λίστα επαφών σας είναι άδεια"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Δεν υπάρχουν ετικέτες."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Για να δημιουργήσετε ομάδες πρέπει να έχετε έναν λογαριασμό."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Δεν υπάρχουν επαφές με αυτήν την εκτικέτα"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Δεν υπάρχουν επαφές σε αυτόν το λογαριασμό"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Η λίστα επαφών σας είναι άδεια"</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="groupLoadErrorToast" msgid="7536267148196064554">"Η φόρτωση ετικέτας απέτυχε"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Η ετικέτα αποθηκεύτηκε."</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="8121032018490980184">"Δεν ήταν δυνατή η αποθήκευση των αλλαγών ετικέτας."</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="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="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="5122118085780669813">"Ετικέτα"</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="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="8038224059926963133">"Ετικέτα"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"κλείσιμο"</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="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="3182801738595937144">"Εισαγωγή"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Δημιουργία νέας ετικέτας"</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="5058226498605989285">"Να απορριφθούν οι αλλαγές που πραγματοποιήσατε και να τερματιστεί η επεξεργασία;"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Απόρριψη"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Συνέχεια επεξεργασίας"</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="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="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="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="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="288549957278065542">"Δημιουργία προσωπικού αντιγράφου..."</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="6975676844194755501">"Η λίστα επαφών ενημερώνεται, ώστε να αντικατοπτρίζει την αλλαγή γλώσσας.\n\nΠεριμένετε…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Διπλότυπα"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Άνοιγμα συρταριού πλοήγησης"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Κλείσιμο συρταριού πλοήγησης"</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="630115334220569184">"Συμβάντα και μηνύματα"</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="7442308698936786415">"Οργανώστε τη λίστα σας"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Απαλλαγείτε από τις διπλότυπες εγγραφές &amp; ομαδοποιήστε επαφές ανά ετικέτα"</string>
+</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
new file mode 100644
index 0000000..72374d5
--- /dev/null
+++ b/res/values-en-rAU/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Added to favourites"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Unlink"</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_contact_action_bar" msgid="7371001434034419566">"Add contact"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Create new…"</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="menu_joinAggregate" msgid="3599512127797513606">"Link"</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="contactsJoinedMessage" msgid="3343535986195643136">"Contacts linked"</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">%d</xliff:g> contacts · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contact · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"The contacts to be deleted have details from multiple accounts. Details from read-only accounts will be hidden, not deleted."</string>
+    <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 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="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="2228592924476426108">"Your contacts list is empty"</string>
+    <string name="noGroups" msgid="4607906327968232225">"No labels."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"To create groups you need an account."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Failed to load label"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Label saved"</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="8121032018490980184">"Couldn\'t save label 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="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="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="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="5122118085780669813">"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">"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="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="8038224059926963133">"Label"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"close"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Link the current contact with the selected contact?"</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="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="3182801738595937144">"Import"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Create new label"</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="5058226498605989285">"Discard your changes and quit editing?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Discard"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Keep editing"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Edit contact"</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="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="288549957278065542">"Creating a personal copy…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Yesterday"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisation"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Nickname"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Note"</string>
+    <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_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="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="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_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="6975676844194755501">"Contact list is being updated to reflect the change of language.\n\nPlease wait…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplicates"</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="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="630115334220569184">"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="7442308698936786415">"Organise your list"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Clean up duplicates &amp; group contacts by label"</string>
+</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..72374d5
--- /dev/null
+++ b/res/values-en-rGB/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Added to favourites"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Unlink"</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_contact_action_bar" msgid="7371001434034419566">"Add contact"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Create new…"</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="menu_joinAggregate" msgid="3599512127797513606">"Link"</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="contactsJoinedMessage" msgid="3343535986195643136">"Contacts linked"</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">%d</xliff:g> contacts · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contact · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"The contacts to be deleted have details from multiple accounts. Details from read-only accounts will be hidden, not deleted."</string>
+    <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 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="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="2228592924476426108">"Your contacts list is empty"</string>
+    <string name="noGroups" msgid="4607906327968232225">"No labels."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"To create groups you need an account."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Failed to load label"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Label saved"</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="8121032018490980184">"Couldn\'t save label 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="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="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="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="5122118085780669813">"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">"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="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="8038224059926963133">"Label"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"close"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Link the current contact with the selected contact?"</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="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="3182801738595937144">"Import"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Create new label"</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="5058226498605989285">"Discard your changes and quit editing?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Discard"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Keep editing"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Edit contact"</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="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="288549957278065542">"Creating a personal copy…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Yesterday"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisation"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Nickname"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Note"</string>
+    <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_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="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="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_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="6975676844194755501">"Contact list is being updated to reflect the change of language.\n\nPlease wait…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplicates"</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="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="630115334220569184">"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="7442308698936786415">"Organise your list"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Clean up duplicates &amp; group contacts by label"</string>
+</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..72374d5
--- /dev/null
+++ b/res/values-en-rIN/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Added to favourites"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Unlink"</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_contact_action_bar" msgid="7371001434034419566">"Add contact"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Create new…"</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="menu_joinAggregate" msgid="3599512127797513606">"Link"</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="contactsJoinedMessage" msgid="3343535986195643136">"Contacts linked"</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">%d</xliff:g> contacts · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contact · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"The contacts to be deleted have details from multiple accounts. Details from read-only accounts will be hidden, not deleted."</string>
+    <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 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="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="2228592924476426108">"Your contacts list is empty"</string>
+    <string name="noGroups" msgid="4607906327968232225">"No labels."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"To create groups you need an account."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Failed to load label"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Label saved"</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="8121032018490980184">"Couldn\'t save label 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="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="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="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="5122118085780669813">"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">"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="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="8038224059926963133">"Label"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"close"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Link the current contact with the selected contact?"</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="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="3182801738595937144">"Import"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Create new label"</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="5058226498605989285">"Discard your changes and quit editing?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Discard"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Keep editing"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Edit contact"</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="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="288549957278065542">"Creating a personal copy…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Yesterday"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisation"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Nickname"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Note"</string>
+    <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_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="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="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_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="6975676844194755501">"Contact list is being updated to reflect the change of language.\n\nPlease wait…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplicates"</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="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="630115334220569184">"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="7442308698936786415">"Organise your list"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Clean up duplicates &amp; group contacts by label"</string>
+</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..7805c5e
--- /dev/null
+++ b/res/values-es-rUS/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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">"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_splitAggregate" msgid="2627252205317945563">"Desvincular"</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_contact_action_bar" msgid="7371001434034419566">"Agregar contacto"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Crear nueva…"</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="menu_joinAggregate" msgid="3599512127797513606">"Vincular"</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="contactsJoinedMessage" msgid="3343535986195643136">"Se vincularon los contactos"</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">%d</xliff:g> contactos   <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contacto · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Los contactos que se borrarán tienen detalles sobre múltiples cuentas. Los detalles de las cuentas de solo lectura se ocultarán, pero no se borrarán."</string>
+    <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 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="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="2228592924476426108">"Tu lista de contactos está vacía"</string>
+    <string name="noGroups" msgid="4607906327968232225">"No hay etiquetas."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Para crear grupos, necesitas una cuenta."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"No se pudo cargar la etiqueta"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Etiqueta guardada"</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="8121032018490980184">"No se pudieron guardar los cambios en la etiqueta."</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="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="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="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="5122118085780669813">"Etiqueta"</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="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="8038224059926963133">"Etiqueta"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"cerrar"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"¿Deseas vincular el contacto actual con el contacto seleccionado?"</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="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="3182801738595937144">"Importar"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Crear una etiqueta nueva"</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="5058226498605989285">"¿Deseas descartar los cambios y salir del editor?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Descartar"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Seguir editando"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Editar contacto"</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="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="288549957278065542">"Creando una copia personal..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Ayer"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organización"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Apodo"</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">"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_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="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">"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>. Presiona dos veces para elegir otra cuenta."</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="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_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="6975676844194755501">"La lista de contactos se está actualizando para reflejar el cambio de idioma.\n\nEspera…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplicados"</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="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="630115334220569184">"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="7442308698936786415">"Organiza tu lista"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Borra los contactos duplicados y agrupa los contactos por etiqueta"</string>
+</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
new file mode 100644
index 0000000..3461637
--- /dev/null
+++ b/res/values-es/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Añadir al 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="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="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_splitAggregate" msgid="2627252205317945563">"Desvincular"</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_contact_action_bar" msgid="7371001434034419566">"Añadir contacto"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Crear…"</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 vincular este contacto con el contacto seleccionado?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Guardar y vincular"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Vincular"</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 quieras 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="contactsJoinedMessage" msgid="3343535986195643136">"Contactos enlazados"</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">%d</xliff:g> contactos · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contacto · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Los contactos que se van a eliminar incluyen detalles de varias cuentas. Los detalles de las cuentas de solo lectura se ocultarán, no se eliminarán."</string>
+    <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 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="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="2228592924476426108">"La lista de contactos está vacía"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Sin etiquetas."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Para poder crear grupos, necesitas una cuenta."</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="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 vincular 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="groupLoadErrorToast" msgid="7536267148196064554">"No se ha podido cargar la etiqueta"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Etiqueta guardada"</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">"Eliminados de la etiqueta"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Añadido a la etiqueta"</string>
+    <string name="groupSavedErrorToast" msgid="8121032018490980184">"No se han podido guardar los cambios de la etiqueta."</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="callBack" msgid="5498224409038809224">"Llamar"</string>
+    <string name="callAgain" msgid="3197312117049874778">"Volver a llamar"</string>
+    <string name="returnCall" msgid="8171961914203617813">"Devolver llamada"</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="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="5122118085780669813">"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">"<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="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="8038224059926963133">"Etiqueta"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"cerrar"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"¿Quieres vincular el contacto actual con el contacto seleccionado?"</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="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="3182801738595937144">"Importar"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Crear etiqueta nueva"</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="5058226498605989285">"¿Descartar los cambios y dejar de editar?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Descartar"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Seguir editando"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Editar contacto"</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="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="288549957278065542">"Creando una copia personal..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Ayer"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organización"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Apodo"</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">"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_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="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">"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_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="6975676844194755501">"La lista de contactos se está actualizando para reflejar el cambio de idioma.\n\nEspera…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplicados"</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="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="630115334220569184">"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="7442308698936786415">"Organiza tu lista"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Elimina los contactos que tengas repetidos y agrúpalos por etiqueta"</string>
+</resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
new file mode 100644
index 0000000..0799d56
--- /dev/null
+++ b/res/values-et-rEE/strings.xml
@@ -0,0 +1,345 @@
+<?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="groupMemberPickerActivityTitle" msgid="1431750793695262522">"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="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="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_contact_action_bar" msgid="7371001434034419566">"Lisa kontakt"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Uue 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="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>
+    <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">%d</xliff:g> kontakti · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%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="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="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 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="2228592924476426108">"Teie kontaktiloend on tühi"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Silte pole."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Rühmade loomiseks vajate kontot."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Sildi laadimine ebaõnnestus"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Silt on salvestatud"</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="8121032018490980184">"Sildi muudatusi ei õnnestunud salvestada."</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="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="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="5122118085780669813">"Silt"</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="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="8038224059926963133">"Silt"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"sule"</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="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="3182801738595937144">"Importimine"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Uue sildi loomine"</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="5058226498605989285">"Kas soovite muudatustest loobuda ja muutmise lõpetada?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Loobu"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Jätka muutmist"</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="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="toast_displaying_all_contacts" msgid="2737388783898593875">"Kõigi kontaktide kuvamine"</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="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="7192223018128934940">"Kontakti lisamine"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Kontakti muutmine"</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="288549957278065542">"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">"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_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="6975676844194755501">"Kontaktiloendit värskendatakse keele muutmise kajastamiseks.\n\nOodake …"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplikaadid"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Ava navigeerimissahtel"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Sule navigeerimissahtel"</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">"Vaadake oma ajalugu koos"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="630115334220569184">"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="7442308698936786415">"Korraldage oma loendit"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Eemaldab duplikaadid ja grupeerib kontaktid sildi alusel"</string>
+</resources>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
new file mode 100644
index 0000000..0b9d40e
--- /dev/null
+++ b/res/values-eu-rES/strings.xml
@@ -0,0 +1,345 @@
+<?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="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Hautatu"</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="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="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_contact_action_bar" msgid="7371001434034419566">"Gehitu kontaktua"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Sortu…"</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">"Lotu"</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>
+    <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">%d</xliff:g> kontaktu · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontaktu · <xliff:g id="ACCOUNT_1">%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="4181789196416396656">"Dei guztiak erantzungailura"</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="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 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="2228592924476426108">"Hutsik dago kontaktuen zerrenda"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Ez dago etiketarik."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Taldeak sortzeko, kontu bat behar duzu."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Ezin izan da kargatu etiketa"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Gorde da 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 dira etiketatik"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Gehitu d(ir)a etiketan"</string>
+    <string name="groupSavedErrorToast" msgid="8121032018490980184">"Ezin izan dira gorde etiketen 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="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="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="5122118085780669813">"Etiketa"</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="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="8038224059926963133">"Etiketa"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"itxi"</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="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="3182801738595937144">"Inportatu"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Sortu etiketa"</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 ezabatuko kontaktuak.)"</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="5058226498605989285">"Aldaketak baztertu eta editatzeko modutik irten nahi duzu?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Baztertu"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Jarraitu editatzen"</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="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="toast_displaying_all_contacts" msgid="2737388783898593875">"Kontaktu guztiak bistaratzen"</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="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="7192223018128934940">"Gehitu kontaktu berria"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editatu kontaktua"</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="288549957278065542">"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="6975676844194755501">"Eguneratzen ari da kontaktuen zerrenda hizkuntza-aldaketa aplikatzeko.\n\nItxaron…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Bikoiztuak"</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="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="630115334220569184">"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="7442308698936786415">"Antolatu zerrenda"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Garbitu bikoiztuak eta taldekatu kontaktuak etiketen arabera"</string>
+</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
new file mode 100644
index 0000000..cf23fc4
--- /dev/null
+++ b/res/values-fa/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"افزودن مخاطب"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"ایجاد مورد جدید..."</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>
+    <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">%d</xliff:g> مخاطب · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> مخاطب · <xliff:g id="ACCOUNT_3">%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="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 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="2228592924476426108">"فهرست مخاطبینتان خالی است"</string>
+    <string name="noGroups" msgid="4607906327968232225">"برچسبی وجود ندارد."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"برای ایجاد گروه‌ها، نیاز به یک حساب دارید."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"هیچ مخاطبی با این برچسب وجود ندارد"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"هیچ مخاطبی در این حساب نیست"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"فهرست مخاطبینتان خالی است"</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="groupLoadErrorToast" msgid="7536267148196064554">"برچسب بار نشد"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"برچسب ذخیره شد"</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="8121032018490980184">"تغییرات برچسب ذخیره نشد."</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="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="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="5122118085780669813">"برچسب"</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="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="8038224059926963133">"برچسب"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"بستن"</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="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="3182801738595937144">"وارد کردن"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"ایجاد برچسب جدید"</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="5058226498605989285">"از تغییراتتان صرف‌نظر می‌کنید و از ویرایش خارج می‌شوید؟"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"صرف‌نظر کردن"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"حفظ ویرایش"</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="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="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="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="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="288549957278065542">"ایجاد یک کپی شخصی..."</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">"پیام فوری"</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="6975676844194755501">"فهرست مخاطبین برای اعمال تغییر زبان در حال به‌روزرسانی است.\n\nلطفاً صبر کنید..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"مخاطبین تکراری"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"بازکردن کشوی پیمایش"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"بستن کشوی پیمایش"</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="630115334220569184">"رویدادها و پیام‌ها"</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="7442308698936786415">"سازمان‌دهی فهرست"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"پاک کردن موارد تکراری و مخاطبین گروه بر اساس برچسب"</string>
+</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
new file mode 100644
index 0000000..48ae68c
--- /dev/null
+++ b/res/values-fi/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Lisätty suosikkeihin"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Poista linkitys"</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">"Kontaktien lisääminen"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Poista tunnisteesta"</string>
+    <string name="menu_new_contact_action_bar" msgid="7371001434034419566">"Lisää yhteystieto"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Luo uusi…"</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="menu_joinAggregate" msgid="3599512127797513606">"Linkitä"</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="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Ehdotetut yhteystiedot"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Kaikki yhteystiedot"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Yhteystiedot on linkitetty"</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">%d</xliff:g> yhteystietoa, <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> yhteystieto, <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Poistettavat yhteystiedot sisältävät tietoja useilta tileiltä. Vain luku -tilassa olevien tilien tiedot piilotetaan, eikä niitä poisteta."</string>
+    <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 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="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="2228592924476426108">"Yhteystietoluettelo on tyhjä."</string>
+    <string name="noGroups" msgid="4607906327968232225">"Ei tunnisteita"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Tarvitset tilin ryhmien luomiseen."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Tunnisteen lataus epäonnistui."</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Tunniste tallennettiin."</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="8121032018490980184">"Tunnisteen muutosten tallennus epäonnistui."</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="callBack" msgid="5498224409038809224">"Soita takaisin"</string>
+    <string name="callAgain" msgid="3197312117049874778">"Soita uudelleen"</string>
+    <string name="returnCall" msgid="8171961914203617813">"Soita takaisin"</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="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="5122118085780669813">"Tunniste"</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="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="8038224059926963133">"Tunniste"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"sulje"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Yhdistetäänkö valittu kontakti nykyiseen kontaktiin?"</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="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="3182801738595937144">"Tuo"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Luo uusi tunniste"</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="5058226498605989285">"Hylätäänkö muutokset ja lopetetaan muokkaaminen?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Hylkää"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Jatka muokkausta"</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="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="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="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="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="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="288549957278065542">"Luodaan kopio..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Eilen"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisaatio"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Lempinimi"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Muistiinpano"</string>
+    <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_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="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="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_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="6975676844194755501">"Yhteystietoluetteloon päivitetään valittu kieli.\n\nOdota…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Kopiot"</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="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ä historiatiedot yhdessä"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="630115334220569184">"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="7442308698936786415">"Järjestä luettelosi"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Poista kopiot ja ryhmittele yhteystiedot tunnisteen mukaan."</string>
+</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..bb9a26e
--- /dev/null
+++ b/res/values-fr-rCA/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Ajouté aux favoris"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Annuler la fusion"</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_contact_action_bar" msgid="7371001434034419566">"Ajouter un contact"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Créer…"</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="menu_joinAggregate" msgid="3599512127797513606">"Fusionner"</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="contactsJoinedMessage" msgid="3343535986195643136">"Contacts associé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">%d</xliff:g> contact · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> contacts · <xliff:g id="ACCOUNT_3">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Les contacts à supprimer contiennent des renseignements détaillés provenant de plusieurs comptes. Les renseignements détaillés issus des comptes en lecture seule seront masqués, mais pas supprimés."</string>
+    <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 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="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="2228592924476426108">"Votre liste de contacts est vide"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Aucune étiquette."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Vous devez posséder un compte pour créer des groupes."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Échec du chargement de l\'étiquette"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Étiquette enregistrée"</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="8121032018490980184">"Impossible d\'enregistrer l\'étiquette modifiée."</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="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="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="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="5122118085780669813">"É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="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="event_edit_field_hint_text" msgid="5794424930242630477">"Date"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Étiquette"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"fermer"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Associer ce contact au contact sélectionné?"</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="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="3182801738595937144">"Importer"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Créer une étiquette"</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="5058226498605989285">"Annuler les modifications et quitter le mode d\'édition?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Ignorer"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Continuer les modifications"</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="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="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="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="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="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="288549957278065542">"Création d\'une copie personnelle…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Hier"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisation"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Pseudonyme"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Note"</string>
+    <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_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="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="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_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="6975676844194755501">"La liste de contacts est en cours de mise à jour à la suite du changement de langue.\n\nVeuillez patienter…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Doublons"</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="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 ensemble"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="630115334220569184">"É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="7442308698936786415">"Organisez votre liste"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Éliminez les doublons et groupez les contacts par étiquette"</string>
+</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
new file mode 100644
index 0000000..de8df9c
--- /dev/null
+++ b/res/values-fr/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Ajouté aux favoris"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Dissocier"</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_contact_action_bar" msgid="7371001434034419566">"Ajouter un contact"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Créer…"</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="menu_joinAggregate" msgid="3599512127797513606">"Associer"</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="contactsJoinedMessage" msgid="3343535986195643136">"Les contacts ont bien été associé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">%d</xliff:g> contact · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> contacts · <xliff:g id="ACCOUNT_3">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Les contacts à supprimer contiennent des informations détaillées provenant de plusieurs comptes. Les informations détaillées issues des comptes en lecture seule seront masquées, mais pas supprimées."</string>
+    <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 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="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="2228592924476426108">"Votre liste de contacts est vide"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Aucun libellé."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Vous devez posséder un compte pour créer des groupes."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Impossible de charger le libellé"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Libellé enregistré"</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="8121032018490980184">"Impossible d\'enregistrer les changements apportés au libellé."</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="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="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="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="5122118085780669813">"Ajouter 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="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="8038224059926963133">"Ajouter libellé"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"fermer"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Associer ce contact au contact sélectionné ?"</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="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="3182801738595937144">"Importer"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Créer un libellé"</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="5058226498605989285">"Supprimer les modifications et quitter le mode d\'édition ?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Supprimer"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Poursuivre les modifications"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Modifier contact"</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="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="288549957278065542">"Création d\'une copie personnelle…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Hier"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisation"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Surnom"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Note"</string>
+    <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_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="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="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_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="6975676844194755501">"Mise à jour de la liste des contacts suite au changement de langue.\n\nVeuillez patienter…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Doublons"</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="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="630115334220569184">"É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="7442308698936786415">"Organiser votre liste"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Nettoyer les doublons et regrouper les contacts par libellé"</string>
+</resources>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
new file mode 100644
index 0000000..fca4cc1
--- /dev/null
+++ b/res/values-gl-rES/strings.xml
@@ -0,0 +1,345 @@
+<?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 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="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="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="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_contact_action_bar" msgid="7371001434034419566">"Engadir contacto"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Crear nova…"</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>
+    <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">%d</xliff:g> contactos · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contacto · <xliff:g id="ACCOUNT_1">%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="4181789196416396656">"Chamadas ao correo de 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="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 name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Non hai imaxes dispoñibles na tableta."</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="2228592924476426108">"A túa lista de contactos está baleira"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Ningunha etiqueta."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Para crear grupos precisas unha conta."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Produciuse un erro ao cargar a etiqueta"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Gardouse 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="8121032018490980184">"Non se puideron gardar os cambios da etiqueta."</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">"Non hai 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="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="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="5122118085780669813">"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">"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="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="8038224059926963133">"Etiqueta"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"pechar"</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="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="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="3182801738595937144">"Importar"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Crear etiqueta nova"</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="5058226498605989285">"Queres descartar os teus cambios e deixar de editar?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Descartar"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Seguir editando"</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="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="toast_displaying_all_contacts" msgid="2737388783898593875">"Mostrando todos os contactos"</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="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="7192223018128934940">"Engadir contacto"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editar contacto"</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="288549957278065542">"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="6975676844194755501">"A lista de contactos estase actualizando para reflectir o cambio do idioma.\n\nAgarda…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplicados"</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="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="630115334220569184">"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="7442308698936786415">"Organiza a túa lista"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Elimina os duplicados e agrupa os contactos por etiqueta"</string>
+</resources>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
new file mode 100644
index 0000000..3d3fcc5
--- /dev/null
+++ b/res/values-gu-rIN/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"સંપર્ક ઉમેરો"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"નવું બનાવો…"</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>
+    <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">%d</xliff:g> સંપર્ક · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> સંપર્ક · <xliff:g id="ACCOUNT_3">%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="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 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="2228592924476426108">"તમારી સંપર્કોની સૂચિ ખાલી છે"</string>
+    <string name="noGroups" msgid="4607906327968232225">"કોઈ લેબલ્સ નથી."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"જૂથો બનાવવા માટે તમને એકાઉન્ટની જરૂર છે."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"આ લેબલ સાથે કોઈ સંપર્કો નથી"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"આ એકાઉન્ટમાંં કોઈ સંંપર્કો નથી"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"તમારી સંપર્કોની સૂચિ ખાલી છે"</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="groupLoadErrorToast" msgid="7536267148196064554">"લેબલ લોડ કરવામાં નિષ્ફળ થયાં"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"લેબલ સાચવ્યું"</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="8121032018490980184">"લેબલ ફેરફારો સાચવી શકાયાં નથી."</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="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="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="5122118085780669813">"લેબલ"</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="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="8038224059926963133">"લેબલ"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"બંધ કરો"</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="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="3182801738595937144">"આયાત કરો"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"નવું લેબલ બનાવો"</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="5058226498605989285">"તમારા ફેરફારોને નિકાળીને સંપાદન છોડી દઈએ?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"નિકાળો"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"સંપાદન ચાલુ રાખો"</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="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="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="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="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="288549957278065542">"વ્યક્તિગત કૉપિ બનાવી રહ્યાં છે…"</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="6975676844194755501">"ભાષામાં ફેરફાર પ્રતિબિંબિત કરવા માટે સંપર્ક સૂચિને અપડેટ કરવામાં આવી રહી છે.\n\nકૃપા કરીને રાહ જુઓ…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"ડુપ્લિકેટ્સ"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"નેવિગેશન ડ્રોઅર ખોલો"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"નેવિગેશન ડ્રોઅર બંધ કરો"</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="630115334220569184">"ઇવેન્ટ્સ અને સંદેશા"</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="7442308698936786415">"તમારી સૂચિ ગોઠવો"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"ડુપ્લિકેટ્સ સાફ કરો અને લેબલ દ્વારા સંપર્કોને જૂથબદ્ધ કરો"</string>
+</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
new file mode 100644
index 0000000..9ee58ff
--- /dev/null
+++ b/res/values-hi/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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">"इस संपर्क को SMS भेजें"</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_contact_action_bar" msgid="7371001434034419566">"संपर्क जोड़ें"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"नया बनाएं…"</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>
+    <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">%d</xliff:g> संपर्क · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> संपर्क · <xliff:g id="ACCOUNT_3">%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="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 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="2228592924476426108">"आपकी संपर्क सूची खाली है"</string>
+    <string name="noGroups" msgid="4607906327968232225">"कोई लेबल नहीं."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"समूह बनाने के लिए आपको किसी खाते की आवश्‍यकता होती है."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"इस लेबल वाला कोई संपर्क नहीं"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"इस खाते में कोई संपर्क नहीं"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"आपकी संपर्क सूची खाली है"</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="groupLoadErrorToast" msgid="7536267148196064554">"लेबल लोड करने में विफल रहा"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"लेबल सहेजा गया"</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="8121032018490980184">"लेबल के बदलाव सहेजे नहीं जा सके."</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="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="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="5122118085780669813">"लेबल"</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="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="8038224059926963133">"लेबल"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"बंद करें"</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="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="3182801738595937144">"आयात करें"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"नया लेबल बनाएं"</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="5058226498605989285">"अपने बदलावों को ख़ारिज करें और संपादन से बाहर निकलें?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"अभी नहीं"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"संपादित करते रहें"</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="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="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="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="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="288549957278065542">"एक व्‍यक्तिगत प्रतिलिपि बना रहा है…"</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="6975676844194755501">"भाषा के बदलाव दिखाने के लिए संपर्क सूची अपडेट की जा रही है.\n\nकृपया प्रतीक्षा करें…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"प्रतिलिपि"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"मार्गदर्शक ड्रॉवर खोलें"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"मार्गदर्शक ड्रॉवर बंद करें"</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="630115334220569184">"ईवेंट और संदेश"</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="7442308698936786415">"अपनी सूची व्यवस्थित करें"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"डुप्लिकेट और समूह संपर्कों को लेबल द्वारा साफ़ करें"</string>
+</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
new file mode 100644
index 0000000..ca0d695
--- /dev/null
+++ b/res/values-hr/strings.xml
@@ -0,0 +1,356 @@
+<?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="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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Dodano favoritima"</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="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_splitAggregate" msgid="2627252205317945563">"Prekini vezu"</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_contact_action_bar" msgid="7371001434034419566">"Dodavanje kontakta"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Izrada nove 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="menu_joinAggregate" msgid="3599512127797513606">"Poveži"</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="contactsJoinedMessage" msgid="3343535986195643136">"Kontakti su povezani"</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">%d</xliff:g> kontakt · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%d</xliff:g> kontakta · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> kontakata · <xliff:g id="ACCOUNT_3">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kontakti koje želite izbrisati imaju 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="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 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="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="2228592924476426108">"Popis kontakata je prazan"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Nema oznaka."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Za stvaranje grupa potreban vam je račun"</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Oznaka se ne može učitati"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Oznaka je spremljena"</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="8121032018490980184">"Promjene oznake ne mogu se 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="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="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="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">"Stvaranje oznake"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Promjena naziva oznake"</string>
+    <string name="group_name_dialog_hint" msgid="5122118085780669813">"Oznaka"</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="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="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="8038224059926963133">"Oznaka"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"zatvaranje"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Želite li povezati trenutačni kontakt s odabranim kontaktom?"</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="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="3182801738595937144">"Uvezi"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Izrada nove oznake"</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="5058226498605989285">"Želite li odbaciti promjene i prekinuti uređivanje?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Odbaci"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Nastavi uređivati"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Uredi kontakt"</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="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="288549957278065542">"Stvaranje osobne kopije..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Jučer"</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="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">"Napomena"</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_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_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="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="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_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="6975676844194755501">"Popis kontakata ažurira se tako da odražava promjene jezika.\n\nPričekajte…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplikati"</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="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="630115334220569184">"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="7442308698936786415">"Organiziranje popisa"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Brisanje duplikata i grupnih kontakata prema oznaci"</string>
+</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
new file mode 100644
index 0000000..454e07f
--- /dev/null
+++ b/res/values-hu/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Hozzáadva a kedvencekhez"</string>
+    <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="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_contact_action_bar" msgid="7371001434034419566">"Névjegy hozzáadása"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Új 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="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="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="contactsJoinedMessage" msgid="3343535986195643136">"Névkegyek társítva"</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">%d</xliff:g> névjegy · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> névjegy · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"A törlésre kijelölt névjegyek több fiókból is tartalmaznak 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="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 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="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="2228592924476426108">"A névjegylista üres"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Nincsenek címkék."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Csoportok létrehozásához szükség van egy fiókra."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Nem sikerült betölteni a címkét"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Címke mentve"</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="8121032018490980184">"Nem sikerült menteni a címke változtatásait."</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="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="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="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="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="5122118085780669813">"Címke"</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="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="8038224059926963133">"Címke"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"bezárás"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Társítja a jelenlegi és a kijelölt névjegyet?"</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="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="3182801738595937144">"Importálás"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Új címke létrehozása"</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="5058226498605989285">"Elveti a módosításokat, és kilép a szerkesztésből?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Elvetés"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Szerkesztés folytatása"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Névjegy szerkesztése"</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="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="288549957278065542">"Személyes másolat készítése..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Tegnap"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Szervezet"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Becenév"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Jegyzet"</string>
+    <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_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="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="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_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="6975676844194755501">"A nyelv módosítása miatt folyamatban van a Címtár frissítése.\n\nKérjük, várjon…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Ismétlődések"</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="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="630115334220569184">"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="7442308698936786415">"Rendszerezze a listát"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Törölje az ismétlődéseket, és csoportosítsa a névjegyeket címke szerint"</string>
+</resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
new file mode 100644
index 0000000..2c80ad2
--- /dev/null
+++ b/res/values-hy-rAM/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"Ավելացնել կոնտակտ"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Ստեղծել նոր…"</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>
+    <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">%d</xliff:g> contacts · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> կոնտակտ · <xliff:g id="ACCOUNT_3">%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="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 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="2228592924476426108">"Կոնտակտների ցանկը դատարկ է"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Պիտակներ չկան"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Խմբեր ստեղծելու համար դուք պետք է հաշիվ ունենաք:"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Այս պիտակով կոնտակտներ չկան"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Այս հաշվում կոնտակտներ չկան"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Կոնտակտների ցանկը դատարկ է"</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="groupLoadErrorToast" msgid="7536267148196064554">"Չհաջողվեց բեռնել պիտակը"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Պիտակը պահվեց"</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="8121032018490980184">"Չհաջողվեց պահել պիտակի փոփոխությունները:"</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="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="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="5122118085780669813">"Պիտակ"</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="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="8038224059926963133">"Պիտակ"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"փակել"</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="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="3182801738595937144">"Ներմուծել"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Ստեղծել նոր պիտակ"</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="5058226498605989285">"Անտեսե՞լ փոփոխությունները և դադարեցնել խմբագրումը:"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Անտեսել"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Շարունակել խմբագրումը"</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="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="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="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="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="288549957278065542">"Ստեղծվում է անձնական պատճենը..."</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="6975676844194755501">"Կոնտակտների ցանկը թարմացվում է՝ լեզվի փոփոխությունն արտացոլելու համար:\n\nԽնդրում ենք սպասել…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Կրկնօրինակներ"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Բացել նավարկման դարակը"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Փակել նավարկման դարակը"</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="630115334220569184">"Իրադարձություններ և հաղորդագրություններ"</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="7442308698936786415">"Կազմակերպեք ձեր ցանկը"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Մաքրեք կրկնօրինակները և խմբավորեք կոնտակտներն ըստ պիտակների"</string>
+</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
new file mode 100644
index 0000000..598d168
--- /dev/null
+++ b/res/values-in/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Ditambahkan ke favorit"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Batalkan tautan"</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_contact_action_bar" msgid="7371001434034419566">"Tambahkan kontak"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Buat baru…"</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="menu_joinAggregate" msgid="3599512127797513606">"Tautkan"</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="contactsJoinedMessage" msgid="3343535986195643136">"Kontak ditautkan"</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">%d</xliff:g> kontak · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontak · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kontak yang akan dihapus memiliki detail dari beberapa akun. Detail dari akun hanya-baca akan disembunyikan, tidak dihapus."</string>
+    <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 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="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="2228592924476426108">"Daftar kontak Anda kosong"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Tidak ada label."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Untuk membuat grup, Anda memerlukan sebuah akun."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Gagal memuat label"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Label disimpan"</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="8121032018490980184">"Tidak dapat menyimpan perubahan label."</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="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="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="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="5122118085780669813">"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="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="8038224059926963133">"Beri Label"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"tutup"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Tautkan kontak ini dengan kontak yang dipilih?"</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="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="3182801738595937144">"Impor"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Buat label baru"</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="5058226498605989285">"Buang perubahan dan berhenti mengedit?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Buang"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Simpan pengeditan"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Edit kontak"</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="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="288549957278065542">"Membuat salinan pribadi..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Kemarin"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisasi"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Julukan"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Catatan"</string>
+    <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_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="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="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_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="6975676844194755501">"Daftar kontak sedang diperbarui untuk menerapkan perubahan bahasa.\n\nTunggu…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplikat"</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="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="630115334220569184">"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="7442308698936786415">"Atur daftar kontak Anda"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Membersihkan kontak duplikat &amp; grup berdasarkan label"</string>
+</resources>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
new file mode 100644
index 0000000..0bae040
--- /dev/null
+++ b/res/values-is-rIS/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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="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_contact_action_bar" msgid="7371001434034419566">"Bæta tengilið við"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Búa til nýjan…"</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>
+    <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">%d</xliff:g> tengiliður · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> tengiliðir · <xliff:g id="ACCOUNT_3">%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="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="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 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="2228592924476426108">"Listinn yfir tengiliði er tómur"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Engir flokkar."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Þú þarft að vera með reikning til að geta búið til hópa."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Ekki tókst að hlaða flokk"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Flokkur vistaður"</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="8121032018490980184">"Ekki tókst að vista breytingar á flokki."</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="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="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="5122118085780669813">"Flokkur"</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="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="8038224059926963133">"Flokkur"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"loka"</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="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="3182801738595937144">"Flytja inn"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Búa til nýjan flokk"</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="5058226498605989285">"Viltu fleygja breytingum og hætta að breyta?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Fleygja"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Breyta áfram"</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="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="toast_displaying_all_contacts" msgid="2737388783898593875">"Allir tengiliðir sýndir"</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="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="7192223018128934940">"Bæta tengilið við"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Breyta tengilið"</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="288549957278065542">"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="6975676844194755501">"Verið er að uppfæra tengiliðalistann í samræmi við nýja tungumálið.\n\nAugnablik…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Tvítekningar"</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="menu_title_groups" msgid="8356921831150278868">"Skýringar"</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="630115334220569184">"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="7442308698936786415">"Skipuleggðu listann þinn"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Hreinsaðu út tvítekningar og flokkaðu tengiliði"</string>
+</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
new file mode 100644
index 0000000..78ea37b
--- /dev/null
+++ b/res/values-it/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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 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_splitAggregate" msgid="2627252205317945563">"Scollega"</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_contact_action_bar" msgid="7371001434034419566">"Aggiungi contatto"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Crea nuova…"</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="menu_joinAggregate" msgid="3599512127797513606">"Collega"</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="contactsJoinedMessage" msgid="3343535986195643136">"Contatti collegati"</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">%d</xliff:g> contatti · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contatto · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"I contatti da eliminare contengono dati di più account. I dati degli account di sola lettura verranno nascosti, non eliminati."</string>
+    <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 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="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="2228592924476426108">"L\'elenco dei contatti è vuoto"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Nessuna etichetta."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Per creare gruppi è necessario un account."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Impossibile caricare l\'etichetta"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Etichetta salvata"</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="8121032018490980184">"Impossibile salvare le modifiche all\'etichetta."</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="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="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="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="5122118085780669813">"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="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="8038224059926963133">"Etichetta"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"chiudi"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Collegare il contatto corrente al contatto selezionato?"</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="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="3182801738595937144">"Importa"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Crea nuova etichetta"</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="5058226498605989285">"Annullare le modifiche e uscire dalla modalità di modifica?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Ignora"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Continua la modifica"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Modifica contatto"</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="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="288549957278065542">"Creazione di una copia personale..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Ieri"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organizzazione"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Nickname"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Nota"</string>
+    <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_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="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="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_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="6975676844194755501">"Aggiornamento dell\'elenco contatti in seguito alla modifica della lingua.\n\nAttendi…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplicati"</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="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="630115334220569184">"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="7442308698936786415">"Organizza il tuo elenco"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Elimina i duplicati e raggruppa i contatti in base a etichette"</string>
+</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
new file mode 100644
index 0000000..ab62ba9
--- /dev/null
+++ b/res/values-iw/strings.xml
@@ -0,0 +1,367 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"הוספת איש קשר"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"צור חדשה…"</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="two">אנשי קשר נמחקו</item>
+      <item quantity="many">אנשי קשר נמחקו</item>
+      <item quantity="other">אנשי קשר נמחקו</item>
+      <item quantity="one">איש קשר נמחק</item>
+    </plurals>
+    <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">%d</xliff:g> אנשי קשר · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%d</xliff:g> אנשי קשר · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> אנשי קשר · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> איש קשר · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"רשימת אנשי הקשר שלך ריקה"</string>
+    <string name="noGroups" msgid="4607906327968232225">"אין תוויות."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"כדי ליצור קבוצות, נחוץ חשבון."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"אין אנשי קשר עם התווית הזו"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"אין אנשי קשר בחשבון הזה"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"רשימת אנשי הקשר שלך ריקה"</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="groupLoadErrorToast" msgid="7536267148196064554">"טעינת התווית נכשלה"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"התווית נשמרה"</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="8121032018490980184">"לא ניתן היה לשמור את השינויים בתווית."</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="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="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="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="5122118085780669813">"תווית"</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="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="8038224059926963133">"תווית"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"סגירה"</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="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="3182801738595937144">"ייבא"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"יצירת תווית חדשה"</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="5058226498605989285">"האם להתעלם מהשינויים שביצעת ולהפסיק לערוך?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"מחק"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"המשך לערוך"</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="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="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="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="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="288549957278065542">"יוצר עותק אישי..."</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">"הודעות מיידיות"</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="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="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_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="6975676844194755501">"רשימת אנשי הקשר מתעדכנת כדי לשקף את שינוי השפה.\n\nהמתן…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"כפילויות"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"פתח את חלונית ההזזה לניווט"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"סגור את חלונית ההזזה לניווט"</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="630115334220569184">"אירועים והודעות"</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="7442308698936786415">"סידור הרשימה"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"מחק עותקים כפולים וקבץ את אנשי הקשר לפי תוויות"</string>
+</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
new file mode 100644
index 0000000..1857827
--- /dev/null
+++ b/res/values-ja/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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">"連絡先にSMS"</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_contact_action_bar" msgid="7371001434034419566">"連絡先を追加"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"新規作成…"</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>
+    <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">%d</xliff:g> 件の連絡先 · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> 件の連絡先 · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"連絡先リストが空です"</string>
+    <string name="noGroups" msgid="4607906327968232225">"ラベルはありません。"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"グループを作成するにはアカウントが必要です。"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"このラベルを使用している連絡先はいません"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"このアカウントに保存されている連絡先はありません"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"連絡先リストが空です"</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="groupLoadErrorToast" msgid="7536267148196064554">"ラベルを読み込めませんでした"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"ラベルを保存しました"</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="8121032018490980184">"ラベルの変更を保存できませんでした。"</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="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="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="5122118085780669813">"ラベル"</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="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="8038224059926963133">"ラベル"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"閉じる"</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">"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="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="3182801738595937144">"インポート"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"新しいラベルの作成"</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="5058226498605989285">"変更を破棄して編集を終了しますか?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"破棄"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"編集を続ける"</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="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="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="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="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="288549957278065542">"個人用コピーを作成しています..."</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">"ハングアウトを使いやすくするには、相手のハングアウト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="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_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="6975676844194755501">"言語の変更に合わせて連絡先リストを更新しています。\n\nしばらくお待ちください..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"重複"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"ナビゲーションドロワーを開く"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"ナビゲーションドロワーを閉じる"</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="630115334220569184">"予定とメッセージ"</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="7442308698936786415">"リストを整理しましょう"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"重複を修正できるほか、連絡先をラベル別にグループ化することができます"</string>
+</resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
new file mode 100644
index 0000000..66ed650
--- /dev/null
+++ b/res/values-ka-rGE/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"კონტაქტის დამატება"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"მიმდინარეობს ახლის შექმნა…"</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>
+    <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">%d</xliff:g> კონტაქტი · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> კონტაქტი · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"თქვენი კონტაქტების სია ცარიელია"</string>
+    <string name="noGroups" msgid="4607906327968232225">"ლეიბლები არ არის."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"ჯგუფების შესაქმნელად გესაჭიროებათ ანგარიში."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"კონტაქტი ამ ლეიბლით არ არსებობს"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ამ ანგარიშში კონტაქტები არ არის"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"თქვენი კონტაქტების სია ცარიელია"</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="groupLoadErrorToast" msgid="7536267148196064554">"ლეიბლი ვერ ჩაიტვირთა"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"ლეიბლი შენახულია"</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="8121032018490980184">"ლეიბლის ცვლილებების შენახვა ვერ მოხერხდა."</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="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="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="5122118085780669813">"ლეიბლი"</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="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="8038224059926963133">"ლეიბლი"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"დახურვა"</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="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="3182801738595937144">"იმპორტი"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"ახალი ლეიბლის შექმნა"</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="5058226498605989285">"გსურთ ცვლილებების გაუქმება და რედაქტირებიდან გასვლა?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"გაუქმება"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"რედაქტირების გაგრძელება"</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="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="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="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="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="288549957278065542">"პირადი ასლის შექმნა…"</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="6975676844194755501">"მიმდინარეობს კონტაქტების სიის განახლება ენის შეცვლის ასახვის მიზნით.\n\nგთხოვთ, დაელოდოთ…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"დუბლიკატები"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"ნავიგაციის უჯრის გახსნა"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"ნავიგაციის უჯრის დახურვა"</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="630115334220569184">"მოვლენები და შეტყობინებები"</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="7442308698936786415">"მოახდინეთ თქვენი სიის ორგანიზება"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"დუბლიკატებისა და ჯგუფის კონტაქტების გასუფთავება ლეიბლის მიხედვით"</string>
+</resources>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
new file mode 100644
index 0000000..500727e
--- /dev/null
+++ b/res/values-kk-rKZ/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"Контакт қосу"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Жаңасын жасау…"</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>
+    <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">%d</xliff:g> контакт· <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> контакт· <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"Контактілер тізімі бос"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Белгілер жоқ."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Топтар жасақтау үшін есептік жазба қажет."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Осы белгісі бар контактілер жоқ"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Бұл есептік жазбада контактілер жоқ"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Контактілер тізімі бос"</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="groupLoadErrorToast" msgid="7536267148196064554">"Белгі жүктелген жоқ"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Белгі сақталды"</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="8121032018490980184">"Белгі өзгертулері сақталмады."</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="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="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="5122118085780669813">"Белгі"</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="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="8038224059926963133">"Белгі"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"жабу"</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="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="3182801738595937144">"Импорттау"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Жаңа белгі жасау"</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="5058226498605989285">"Өзгертулерді алып тастап, өңдеуден шығу керек пе?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Алып тастау"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Өңдеуді жалғастыру"</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="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="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="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="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="288549957278065542">"Жеке көшірме жасау…"</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="6975676844194755501">"Контактілер тізімі тілдің өзгеруін көрсету үшін жаңартылуда.\n\nКүте тұрыңыз…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Көшірмелер"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Жылжу тақтасын ашу"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Жылжу тақтасын жабу"</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="630115334220569184">"Оқиғалар және хабарлар"</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="7442308698936786415">"Тізіміңізді реттеңіз"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Көшірмелерді өшіріп, контактілерді белгілері бойынша топтаңыз"</string>
+</resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
new file mode 100644
index 0000000..c4d77fa
--- /dev/null
+++ b/res/values-km-rKH/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"បញ្ចូល​​ទំនាក់ទំនង"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"បង្កើត​ថ្មី..."</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>
+    <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">%d</xliff:g> · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one">ទំនាក់ទំនង <xliff:g id="COUNT_0">%d</xliff:g> · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"បញ្ជីទំនាក់ទំនងរបស់អ្នកគឺទទេ"</string>
+    <string name="noGroups" msgid="4607906327968232225">"គ្មានស្លាក។"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"ដើម្បី​បង្កើត​ក្រុម​អ្នក​ចាំបាច់​ត្រូវ​មាន​គណនី​មួយ។"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"មិន​មាន​ទំនាក់ទំនង​ដែល​មាន​ស្លាក​នេះ"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"មិនមានទំនាក់ទំនង​នៅ​ក្នុងគណនីនេះ​ទេ"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"បញ្ជីទំនាក់ទំនងរបស់អ្នកគឺទទេ"</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="groupLoadErrorToast" msgid="7536267148196064554">"បាន​បរាជ័យ​ក្នុង​ការ​ផ្ទុក​ស្លាក"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"បាន​រក្សាទុក​ស្លាក"</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="8121032018490980184">"មិនអាចរក្សាទុកការផ្លាស់ប្តូរស្លាក​បាន​ទេ។"</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="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="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="5122118085780669813">"ស្លាក"</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="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="8038224059926963133">"ស្លាក"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"បិទ"</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="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="3182801738595937144">"នាំចូល"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"បង្កើតស្លាកថ្មី"</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="5058226498605989285">"បោះបង់ការប្ដូររបស់អ្នក ហើយបញ្ឈប់ការកែសម្រួលមែនទេ?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"បោះបង់"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"នៅ​បន្ត​កែសម្រួល"</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="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="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="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="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="288549957278065542">"កំពុង​បង្កើត​ច្បាប់​ចម្លង​ផ្ទាល់​ខ្លួន..."</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="6975676844194755501">"កំពុង​ធ្វើ​បច្ចុប្បន្នភាព​បញ្ជី​​ទំនាក់ទំនង​ដើម្បី​​បង្ហាញ​ឲ្យ​ឃើញ​ការ​​ផ្លាស់ប្ដូរ​​ភាសា។\n\nសូម​រង់ចាំ..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"ស្ទួន"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"បើក​ផ្ទាំង​រុករក"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"បិទ​ផ្ទាំង​រុករក"</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="630115334220569184">"ព្រឹត្តិការណ៍ និង​សារ"</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="7442308698936786415">"រៀបចំបញ្ជីរបស់អ្នក"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"សម្អាត​ទំនាក់ទំនង​ដែល​ស្ទួន​គ្នា &amp; ដាក់​ជា​ក្រុម​តាម​ស្លាក"</string>
+</resources>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
new file mode 100644
index 0000000..50ea5ac
--- /dev/null
+++ b/res/values-kn-rIN/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"ಹೊಸದನ್ನು ರಚಿಸಿ…"</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>
+    <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">%d</xliff:g> ಸಂಪರ್ಕಗಳು · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> ಸಂಪರ್ಕಗಳು · <xliff:g id="ACCOUNT_3">%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="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 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="2228592924476426108">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳ ಪಟ್ಟಿಯು ಖಾಲಿಯಾಗಿದೆ"</string>
+    <string name="noGroups" msgid="4607906327968232225">"ಯಾವುದೇ ಲೇಬಲ್‌ಗಳಿಲ್ಲ."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"ಗುಂಪುಗಳನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಖಾತೆಯ ಅಗತ್ಯವಿದೆ."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ಈ ಲೇಬಲ್‌ನೊಂದಿಗೆ ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ಈ ಖಾತೆಯಲ್ಲಿ ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳ ಪಟ್ಟಿಯು ಖಾಲಿಯಾಗಿದೆ"</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="groupLoadErrorToast" msgid="7536267148196064554">"ಲೇಬಲ್ ಲೋಡ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"ಲೇಬಲ್ ಉಳಿಸಲಾಗಿದೆ"</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="8121032018490980184">"ಲೇಬಲ್ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲ."</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="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="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="5122118085780669813">"ಲೇಬಲ್"</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="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="8038224059926963133">"ಲೇಬಲ್"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"ಮುಚ್ಚು"</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="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="3182801738595937144">"ಆಮದು ಮಾಡಿ"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"ಹೊಸ ಲೇಬಲ್ ರಚಿಸಿ"</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="5058226498605989285">"ನಿಮ್ಮ ಬದಲಾವಣೆಗಳನ್ನು ತ್ಯಜಿಸಿ ಸಂಪಾದನೆಯನ್ನು ನಿರ್ಗಮಿಸುವುದೇ?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"ತ್ಯಜಿಸು"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"ಸಂಪಾದಿಸುತ್ತಿರಿ"</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="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="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="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="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="288549957278065542">"ವೈಯಕ್ತಿಕ ಪ್ರತಿಯನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ…"</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="6975676844194755501">"ಭಾಷೆಯ ಬದಲಾವಣೆಯನ್ನು ಪ್ರತಿಬಿಂಬಿಸಲು ಸಂಪರ್ಕ ಪಟ್ಟಿಯನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ.\n\nದಯವಿಟ್ಟು ಕಾಯಿರಿ..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"ನಕಲಿಗಳು"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"ನ್ಯಾವಿಗೇಶನ್ ಡ್ರಾಯರ್ ತೆರೆಯಿರಿ"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"ನ್ಯಾವಿಗೇಶನ್ ಡ್ರಾಯರ್ ಮುಚ್ಚಿ"</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="630115334220569184">"ಈವೆಂಟ್‌ಗಳು ಮತ್ತು ಸಂದೇಶಗಳು"</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="7442308698936786415">"ನಿಮ್ಮ ಪಟ್ಟಿಯನ್ನು ವ್ಯವಸ್ಥಿತಗೊಳಿಸಿ"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"ನಕಲುಗಳನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಿ ಮತ್ತು ಸಂಪರ್ಕಗಳನ್ನು ಲೇಬಲ್‌ಗಳಿಂದ ಗುಂಪು ಮಾಡಿ"</string>
+</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
new file mode 100644
index 0000000..5c346de
--- /dev/null
+++ b/res/values-ko/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"연락처 추가"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"새로 만들기…"</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>
+    <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">%d</xliff:g>개 · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one">연락처 <xliff:g id="COUNT_0">%d</xliff:g>개 · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"연락처 목록이 비어 있음"</string>
+    <string name="noGroups" msgid="4607906327968232225">"라벨이 없습니다."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"그룹을 만들려면 계정이 필요합니다."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"이 라벨에 연락처 없음"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"이 계정에 연락처 없음"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"연락처 목록이 비어 있음"</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="groupLoadErrorToast" msgid="7536267148196064554">"라벨을 로드하지 못함"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"라벨을 저장했습니다."</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="8121032018490980184">"라벨 변경사항을 저장할 수 없습니다."</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="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="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="5122118085780669813">"라벨"</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="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="8038224059926963133">"라벨"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"닫기"</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="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="3182801738595937144">"가져오기"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"새 라벨 만들기"</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="5058226498605989285">"변경사항을 취소하고 수정을 중단하시겠습니까?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"취소"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"계속 수정"</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="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="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="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="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="288549957278065542">"개인 사본 작성 중..."</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="TIME_INTERVAL">%s</xliff:g>, <xliff:g id="DATE">%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="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="6975676844194755501">"변경된 언어를 반영하도록 연락처 목록을 업데이트하는 중입니다.\n\n잠시 기다려 주세요."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"중복된 활동"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"탐색 창 열기"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"탐색 창 닫기"</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="630115334220569184">"일정 및 메시지"</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="7442308698936786415">"목록 정리"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"중복된 항목을 정리하고 라벨로 연락처 그룹화"</string>
+</resources>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
new file mode 100644
index 0000000..61c6594
--- /dev/null
+++ b/res/values-ky-rKG/strings.xml
@@ -0,0 +1,345 @@
+<?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">"Түз SMS"</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="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="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">"Байланышка SMS жазуу"</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_contact_action_bar" msgid="7371001434034419566">"Байланыш кошуу"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Жаңысын түзүү..."</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>
+    <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">%d</xliff:g> байланыш · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> байланыш · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"Байланыштар тизмеңиз бош"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Эч кандай энбелги жок"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Топторду түзүш үчүн эсеп керек."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Бул энбелги коюлган бир дагы байланыш жок"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Бул каттоо эсебинде эч кандай байланыш жок"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Байланыштар тизмеңиз бош"</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="groupLoadErrorToast" msgid="7536267148196064554">"Энбелги жүктөлгөн жок"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Энбелги сакталды"</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="8121032018490980184">"Энбелгинин өзгөрүүлөрүн сактай алган жок."</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="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="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="5122118085780669813">"Энбелги"</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="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="8038224059926963133">"Энбелги"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"жабуу"</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="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="3182801738595937144">"Импорттоо"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Жаңы энбелги түзүү"</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="5058226498605989285">"Өзгөртүүлөр жарактан чыгарылып, түзөтүү жабылсынбы?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Жарактан чыгаруу"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Түзөтө берүү"</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="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="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="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="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="288549957278065542">"Жеке көчүрмөсүн түзүү…"</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="6975676844194755501">"Байланыш тизмеси тилдин өзгөрүшүнө дал келүү үчүн, жаңыртылууда. \n\nКүтө туруңуз..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Кайталанган аракеттер"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Чабыттоо суурмасын ачуу"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Чабыттоо суурмасын жабуу"</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="630115334220569184">"Иш-чаралар жана билдирүүлөр"</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="7442308698936786415">"Тизмеңизди ирээттеңиз"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Байланыштарды топтор боюнча белгилеп, окшошторун өчүрүп салыңыз."</string>
+</resources>
diff --git a/res/values-land/bools.xml b/res/values-land/bools.xml
new file mode 100644
index 0000000..beaa960
--- /dev/null
+++ b/res/values-land/bools.xml
@@ -0,0 +1,21 @@
+<?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>
+
+    <bool name="quickcontact_two_panel">false</bool>
+    <bool name="contacteditor_two_panel">true</bool>
+
+</resources>
diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml
new file mode 100644
index 0000000..5e2744a
--- /dev/null
+++ b/res/values-land/dimens.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.
+-->
+<resources>
+    <dimen name="dialpad_digits_height">66dip</dimen>
+    <dimen name="dialpad_digits_text_size">28sp</dimen>
+    <dimen name="dialpad_digits_margin_bottom">50dip</dimen>
+    <dimen name="editor_type_label_width">120dip</dimen>
+
+    <!-- Top margin of the text message when provider status is busy -->
+    <dimen name="update_contact_list_top_margin">120dp</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/integers.xml b/res/values-land/integers.xml
new file mode 100644
index 0000000..8bc7b04
--- /dev/null
+++ b/res/values-land/integers.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.
+-->
+<resources>
+    <!-- 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>
+</resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
new file mode 100644
index 0000000..12bb70b
--- /dev/null
+++ b/res/values-lo-rLA/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"ເພີ່ມເປັນລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"ສ້າງໃໝ່…"</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>
+    <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">%d</xliff:g> ລາຍຊື່ຜູ້ຕິດຕໍ່ · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ລາຍຊື່ຜູ້ຕິດຕໍ່ · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"ລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງທ່ານຫວ່າງເປົ່າ"</string>
+    <string name="noGroups" msgid="4607906327968232225">"ບໍ່ມີປ້າຍກຳກັບ."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"ເພື່ອສ້າງກຸ່ມ ທ່ານຈະຕ້ອງມີບັນຊີກ່ອນ."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ມີປ້າຍກຳກັບນີ້"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່ໃນບັນຊີນີ້"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"ລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງທ່ານຫວ່າງເປົ່າ"</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="groupLoadErrorToast" msgid="7536267148196064554">"ໂຫຼດປ້າຍກຳກັບບໍ່ສຳເລັດ"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"ບັນທຶກປ້າຍກຳກັບແລ້ວ"</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="8121032018490980184">"ບໍ່ສາມາດບັນທຶກການປ່ຽນແປງປ້າຍກຳກັບໄດ້."</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="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="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="5122118085780669813">"ປ້າຍກຳກັບ"</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="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="8038224059926963133">"ປ້າຍກຳກັບ"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"ປິດ"</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="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="3182801738595937144">"ນຳເຂົ້າ"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"ສ້າງປ້າຍກຳກັບໃໝ່"</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="5058226498605989285">"ຍົກເລີກການປ່ຽນແປງຂອງທ່ານ ແລະ ອອກຈາກການແກ້ໄຂບໍ?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"ຍົກເລີກ"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"ສືບຕໍ່ແກ້ໄຂ"</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="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="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="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="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="288549957278065542">"ກຳລັງສ້າງສຳເນົາສ່ວນໂຕ..."</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="6975676844194755501">"ລາຍຊື່ຜູ້ຕິດຕໍ່ກຳລັງຖືກອັບເດດຕາມການປ່ຽນແປງຂອງພາສາ.\n\nກະລຸນາລໍຖ້າ..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"ລາຍການຊໍ້າກັນ"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"ເປີດແຖບການນຳທາງ"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"ປິດແຖບການນຳທາງ"</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="630115334220569184">"ນັດໝາຍ ແລະ ຂໍ້ຄວາມ"</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="7442308698936786415">"ຈັດລະບຽບລາຍຊື່ຂອງທ່ານ"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"ລຶບລ້າງລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ຊ້ຳກັນ ແລະ ຈັດກຸ່ມຕາມປ້າຍກຳກັບ"</string>
+</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
new file mode 100644
index 0000000..1e51eeb
--- /dev/null
+++ b/res/values-lt/strings.xml
@@ -0,0 +1,367 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Pridėta prie mėgstamiausių"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Atsieti"</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_contact_action_bar" msgid="7371001434034419566">"Pridėti kontaktą"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Sukurti naują..."</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="menu_joinAggregate" msgid="3599512127797513606">"Susieti"</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 kontaktai"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktai susieti"</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">%d</xliff:g> kontaktas   <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%d</xliff:g> kontaktai   <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%d</xliff:g> kontakto   <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> kontaktų   <xliff:g id="ACCOUNT_3">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Norimiems ištrinti kontaktams priskirta kelių paskyrų informacija. Tik skaitomų paskyrų informacija bus paslėpta, bet neištrinta."</string>
+    <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 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="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="2228592924476426108">"Kontaktų sąrašas tuščias"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Nėra jokių etikečių."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Jums reikia paskyros, kad galėtumėte kurti grupes."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Nepavyko įkelti etiketės"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Etiketė išsaugota"</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="8121032018490980184">"Nepavyko išsaugoti etiketė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="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="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="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="5122118085780669813">"Etiketė"</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="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="8038224059926963133">"Etiketė"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"uždaryti"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Susieti dabartinį kontaktą su pasirinktu?"</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="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="3182801738595937144">"Importuoti"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Naujos etiketės kūrimas"</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="5058226498605989285">"Atmesti pakeitimus ir baigti redagavimą?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Atmesti"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Toliau redaguoti"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Redaguoti kontaktą"</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="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">"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="288549957278065542">"Kuriama asmeninė kopija..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Vakar"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organizacija"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Slapyvardis"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Užrašas"</string>
+    <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">"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_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="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">"Saugojimo vieta"</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="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_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="6975676844194755501">"Kontaktų sąrašas atnaujinamas, kad būtų pakeista kalba.\n\nPalaukite..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Tikslios kopijos"</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="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="630115334220569184">"Į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="7442308698936786415">"Tvarkykite sąrašą"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Išvalykite tikslias kopijas ir pagal etiketes grupuokite kontaktus"</string>
+</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
new file mode 100644
index 0000000..0bee0f6
--- /dev/null
+++ b/res/values-lv/strings.xml
@@ -0,0 +1,356 @@
+<?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">"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="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="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Pievienot kontaktpersonai"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Kontaktpersonas izvēle"</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="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="contactDetailAbout" msgid="5430408883907061400">"Par"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"Atjaunināj."</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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Pievienots izlasei"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Atsaistīt"</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_contact_action_bar" msgid="7371001434034419566">"Pievienot kontaktpersonu"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Izveidot jaunu…"</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="menu_joinAggregate" msgid="3599512127797513606">"Saistīt"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Saglabāt"</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="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktpersonas tika saistītas."</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">%d</xliff:g> kontaktpersonas (<xliff:g id="ACCOUNT_3">%s</xliff:g>)</item>
+      <item quantity="one"><xliff:g id="COUNT_2">%d</xliff:g> kontaktpersona (<xliff:g id="ACCOUNT_3">%s</xliff:g>)</item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> kontaktpersonas (<xliff:g id="ACCOUNT_3">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Dzēšamajās kontaktpersonās ir ietverta informācija no vairākiem kontiem. Informācija no tikai lasāmiem kontiem tiks paslēpta, nevis izdzēsta."</string>
+    <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 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="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="2228592924476426108">"Jūsu kontaktpersonu saraksts ir tukšs."</string>
+    <string name="noGroups" msgid="4607906327968232225">"Nav iezīmju."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Lai izveidotu grupas, ir nepieciešams konts."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Neizdevās ielādēt iezīmi"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Iezīme ir saglabāta."</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="8121032018490980184">"Nevarēja saglabāt iezīmes 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="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="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="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="5122118085780669813">"Iezīme"</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="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="8038224059926963133">"Iezīme"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"aizvērt"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Vai saistīt pašreizējo saturu ar atlasīto kontaktpersonu?"</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="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="3182801738595937144">"Importēt"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Jaunas iezīmes izveide"</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="5058226498605989285">"Vai atmest veiktās izmaiņas un beigt rediģēšanu?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Atmest"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Turpināt rediģēšanu"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Rediģēšana"</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="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="288549957278065542">"Notiek personīgā eksemplāra izveide..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Vakar"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organizācija"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Segvārds"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Piezīme"</string>
+    <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_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="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="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_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="6975676844194755501">"Kontaktpersonu saraksts tiek atjaunināts, lai atainotu valodas maiņu.\n\nLūdzu, uzgaidiet…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Dublikāti"</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="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="630115334220569184">"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="7442308698936786415">"Kārtojiet savu sarakstu"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Dzēsiet dublikātus un grupējiet kontaktpersonas pēc iezīmes."</string>
+</resources>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
new file mode 100644
index 0000000..8e34554
--- /dev/null
+++ b/res/values-mk-rMK/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"Додај контакт"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Создај нова…"</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>
+    <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">%d</xliff:g> контакт · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> контакти · <xliff:g id="ACCOUNT_3">%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="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 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="2228592924476426108">"Списокот со контакти е празен"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Нема етикети."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"За да создадете групи ви треба сметка."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Нема контакти со етикетава"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Нема контакти во сметкава"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Списокот со контакти е празен"</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="groupLoadErrorToast" msgid="7536267148196064554">"Етикетата не успеа да се вчита"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Етикетата е зачувана"</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="8121032018490980184">"Промените на етикетата не можеше да се зачуваат."</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="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="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="5122118085780669813">"Етикета"</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="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="8038224059926963133">"Етикета"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"затвори"</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="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="3182801738595937144">"Увези"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Создајте нова етикета"</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="5058226498605989285">"Дали да се отфрлат промените и да се прекине уредувањето?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Отфрли"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Продолжи со уредување"</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="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="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="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="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="288549957278065542">"Се создава лична копија..."</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">"неодамнешна 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="6975676844194755501">"Списокот со контакти се ажурира за да ја одрази промената на јазикот.\n\nПочекајте…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Дупликати"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Отворете фиока за навигација"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Затворете фиока за навигација"</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="630115334220569184">"Настани и пораки"</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="7442308698936786415">"Организирајте го списокот"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Исчистете ги дупликатите и групните контакти според етикетата"</string>
+</resources>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
new file mode 100644
index 0000000..76c72ba
--- /dev/null
+++ b/res/values-ml-rIN/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"കോൺടാക്റ്റ് ചേർക്കുക"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"പുതിയത് സൃഷ്‌ടിക്കുക…"</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>
+    <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">%d</xliff:g> കോൺടാക്‌റ്റുകൾ · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> കോൺടാക്‌റ്റ് · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"നിങ്ങളുടെ കോൺടാക്‌റ്റ് ലിസ്‌റ്റ് ശൂന്യമാണ്"</string>
+    <string name="noGroups" msgid="4607906327968232225">"ലേബലുകളൊന്നുമില്ല."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"ഗ്രൂപ്പുകൾ സൃഷ്‌ടിക്കാൻ നിങ്ങൾക്ക് ഒരു അക്കൗണ്ട് ആവശ്യമാണ്."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ഈ ലേബലുള്ള കോൺടാക്‌റ്റുകളൊന്നുമില്ല"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ഈ അക്കൗണ്ടിൽ കോൺടാക്‌റ്റുകളൊന്നുമില്ല"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"നിങ്ങളുടെ കോൺടാക്‌റ്റ് ലിസ്‌റ്റ് ശൂന്യമാണ്"</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="groupLoadErrorToast" msgid="7536267148196064554">"ലേബൽ ലോഡുചെയ്യുന്നത് പരാജയപ്പെട്ടു"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"ലേബൽ സംരക്ഷിച്ചു"</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="8121032018490980184">"ലേബൽ മാറ്റങ്ങൾ സംരക്ഷിക്കാനായില്ല."</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="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="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="5122118085780669813">"ലേബൽ"</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="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="8038224059926963133">"ലേബൽ"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"അടയ്‌ക്കുക"</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="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="3182801738595937144">"ഇമ്പോർട്ടുചെയ്യുക"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"പുതിയ ലേബല്‍ സൃഷ്ടിക്കൂ"</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="5058226498605989285">"നിങ്ങളുടെ മാറ്റങ്ങൾ തള്ളിക്കളയുകയും എഡിറ്റുചെയ്യൽ ഉപേക്ഷിക്കുകയും ചെയ്യണോ?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"തള്ളിക്കളയുക"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"എഡിറ്റുചെയ്യുന്നത് തുടരുക"</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="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="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="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="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="288549957278065542">"ഒരു വ്യക്തിഗത പകർപ്പ് സൃഷ്‌ടിക്കുന്നു…"</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="6975676844194755501">"ഭാഷാ മാറ്റം പ്രതിഫലിപ്പിക്കുന്നതിന് കോൺടാക്റ്റ് ലിസ്റ്റ് അപ്‌ഡേറ്റ് ചെയ്യുന്നു.\n\nകാത്തിരിക്കുക..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"ഡ്യൂപ്ലിക്കേറ്റുകൾ"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"നാവിഗേഷൻ ഡ്രോയർ തുറക്കുക"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"നാവിഗേഷൻ ഡ്രോയർ അടയ്‌ക്കുക"</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="630115334220569184">"ഇവന്റുകളും സന്ദേശങ്ങളും"</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="7442308698936786415">"നിങ്ങളുടെ ലിസ്‌റ്റ് ഓർഗനൈസുചെയ്യുക"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"ലേബൽ പ്രകാരം ഡ്യൂപ്ലിക്കേറ്റുകളും ഗ്രൂപ്പ് കോൺടാക്‌റ്റുകളും മായ്‌ക്കുക"</string>
+</resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
new file mode 100644
index 0000000..6396aa5
--- /dev/null
+++ b/res/values-mn-rMN/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"Харилцагч нэмэх"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Шинийг үүсгэх..."</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>
+    <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">%d</xliff:g> харилцагч · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> харилцагч · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"Таны харилцагчдын жагсаалт хоосон байна"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Шошго байхгүй."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Бүлгэм үүсгэхийн тулд танд бүртгэл хэрэгтэй."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Ийм шошготой харилцагч байхгүй"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Энэ бүртгэлд харилцагч байхгүй байна"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Таны харилцагчдын жагсаалт хоосон байна"</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="groupLoadErrorToast" msgid="7536267148196064554">"Шошгыг ачаалж чадсангүй"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Шошгыг хадгалсан"</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="8121032018490980184">"Шошгын өөрчлөлтийг хадгалж чадсангүй."</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="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="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="5122118085780669813">"Шошго"</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="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="8038224059926963133">"Шошго"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"хаах"</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="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="3182801738595937144">"Импортлох"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Шинэ шошго үүсгэх"</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="5058226498605989285">"Таны өөрчлөлтийн устгал, засварыг болих уу?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Устгах"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Үргэлжлүүлэн засах"</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="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="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="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="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="288549957278065542">"Хувийн хуулбар үүсгэж байна…"</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="6975676844194755501">"Хэлний өөрчлөлтийг тусгахын тулд харилцагчдын жагсаалтыг шинэчилж байна.\n\nТүр хүлээнэ үү..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Давхцал"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Навигацын шургуулгыг нээх"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Навигацын шургуулгыг хаах"</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="630115334220569184">"Үйл явдал болон Зурвас"</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="7442308698936786415">"Жагсаалтаа цэгцэлнэ үү"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Давхардсан харилцагчдыг цэвэрлэж &amp; шошгоор бүлэглэх"</string>
+</resources>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
new file mode 100644
index 0000000..4f03f81
--- /dev/null
+++ b/res/values-mr-rIN/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"संपर्क जोडा"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"नवीन तयार करा…"</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>
+    <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">%d</xliff:g> संपर्क · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> संपर्क · <xliff:g id="ACCOUNT_3">%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="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 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="2228592924476426108">"आपली संपर्क सूची रिक्त आहे"</string>
+    <string name="noGroups" msgid="4607906327968232225">"लेबलेे नाहीत."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"गट तयार करण्‍यासाठी आपल्‍याला खात्‍याची आवश्‍यकता अाहे."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"या लेबलसह कोणतेही संपर्क नाहीत"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"या खात्यामध्ये कोणतेही संपर्क नाहीत"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"आपली संपर्क सूची रिक्त आहे"</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="groupLoadErrorToast" msgid="7536267148196064554">"लेबल लोड करण्यात अयशस्वी झाले"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"लेबल जतन केले"</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="8121032018490980184">"लेबल बदल जतन करणे शक्य झाले नाही."</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="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="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="5122118085780669813">"लेबल"</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="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="8038224059926963133">"लेबल"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"बंद करा"</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="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="3182801738595937144">"आयात करा"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"नवीन लेबल तयार करा"</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="5058226498605989285">"आपले बदल टाकून देऊन संपादन सोडायचे?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"टाकून द्या"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"संपादन करणे सुरु ठेवा"</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="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="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="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="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="288549957278065542">"वैयक्तिक प्रत तयार करीत आहे..."</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="6975676844194755501">"भाषेेचा बदल दर्शविण्यासाठी संपर्क सूची अद्यतनित केली जात आहे.\n\nकृपया प्रतीक्षा करा…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"डुप्लिकेट"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"नेव्हिगेशन ड्रॉवर उघडा"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"नेव्हिगेशन ड्रॉवर बंद करा"</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="630115334220569184">"इव्हेंट आणि संदेश"</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="7442308698936786415">"आपली सूची व्यवस्थापित करा"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"लेबल नुसार डुप्लिकेट आणि गट संपर्क साफ करा"</string>
+</resources>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
new file mode 100644
index 0000000..50703d5
--- /dev/null
+++ b/res/values-ms-rMY/strings.xml
@@ -0,0 +1,345 @@
+<?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="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Pilih"</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="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="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_contact_action_bar" msgid="7371001434034419566">"Tambahkan kenalan"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Buat baharu…"</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>
+    <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">%d</xliff:g> kenalan · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kenalan · <xliff:g id="ACCOUNT_1">%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="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="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 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="2228592924476426108">"Senarai kenalan anda kosong"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Tiada label."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Anda memerlukan akaun untuk membuat kumpulan."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Gagal memuatkan label"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Label disimpan"</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="8121032018490980184">"Tidak dapat menyimpan perubahan label."</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="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="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="5122118085780669813">"Label"</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="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="8038224059926963133">"Label"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"tutup"</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="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="3182801738595937144">"Import"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Buat label baharu"</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="5058226498605989285">"Buang perubahan anda dan keluar daripada pengeditan?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Buang"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Teruskan mengedit"</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="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="toast_displaying_all_contacts" msgid="2737388783898593875">"Memaparkan semua kenalan"</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="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="7192223018128934940">"Tambah kenalan baru"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Edit kenalan"</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="288549957278065542">"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="6975676844194755501">"Senarai kenalan dikemas kini untuk menggambarkan perubahan bahasa.\n\nSila tunggu…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Pendua"</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="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="630115334220569184">"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="7442308698936786415">"Atur senarai anda"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Bersihkan pendua &amp; himpunkan kenalan mengikut label"</string>
+</resources>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
new file mode 100644
index 0000000..53e6cbf
--- /dev/null
+++ b/res/values-my-rMM/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"အဆက်အသွယ်ထည့်ပါ"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"အသစ်ဖန်တီးပါ…"</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>
+    <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">%d</xliff:g> ခု · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one">အဆက်အသွယ် <xliff:g id="COUNT_0">%d</xliff:g> ခု · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"သင့်အဆက်အသွယ်များစာရင်းတွင် မည်သူမျှမရှိပါ"</string>
+    <string name="noGroups" msgid="4607906327968232225">"အညွှန်းများမရှိပါ။"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"အုပ်စုများ ပြုလုပ်ရန် အကောင့်တစ်ခု လိုအပ်ပါသည်"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ဤအညွှန်းဖြင့်အဆက်အသွယ်များ မရှိပါ"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ဤအကောင့်တွင် အဆက်အသွယ်များ မရှိပါ"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"သင့်အဆက်အသွယ်များစာရင်းတွင် မည်သူမျှမရှိပါ"</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="groupLoadErrorToast" msgid="7536267148196064554">"အညွှန်းဖော်ပြ၍မရပါ"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"အညွှန်းကို သိမ်းပြီးပါပြီ"</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="8121032018490980184">"အညွှန်းအပြောင်းအလဲများကို သိမ်း၍မရပါ။"</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="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="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="5122118085780669813">"အညွှန်း"</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="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="8038224059926963133">"အညွှန်း"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"ပိတ်ရန်"</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="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="3182801738595937144">"တင်သွင်းရန်"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"အညွှန်းသစ်ဖန်တီးပါ"</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="5058226498605989285">"သင့်ပြောင်းလဲမှုများကို စွန့်ပစ်ပြီး တည်းဖြတ်မှုကို ရပ်မလား။"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"စွန့်ပစ်ရန်"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"ဆက်လက်တည်းဖြတ်ပါ"</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="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="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="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="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="288549957278065542">"မိမိအတွက် ကိုယ်ပိုင်ကော်ပီ ပြုလုပ်နေစဉ်…"</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="6975676844194755501">"ဘာသာစကားအပြောင်းအလဲကို ထင်ဟပ်ပေးရန် အဆက်အသွယ်စာရင်းကို မွမ်းမံနေပါသည်။\n\nခဏစောင့်ပေးပါ…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"မိတ္တူပွားများ"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"လမ်းညွှန်ချက်အကွက်ကို ဖွင့်ပါ"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"လမ်းညွှန်ချက်အကွက်ကို ပိတ်ပါ"</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="630115334220569184">"အစီအစဥ်များနှင့် မက်ဆေ့ဂျ်များ"</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="7442308698936786415">"သင့်စာရင်းကို စနစ်တကျစီစဉ်ပါ"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"အဖွဲ့အဆက်အသွယ်များ &amp; ထပ်နေသည်များကို အညွှန်းဖြင့် ရှင်းပါ"</string>
+</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
new file mode 100644
index 0000000..71f2cdf
--- /dev/null
+++ b/res/values-nb/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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">"Bytt 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_splitAggregate" msgid="2627252205317945563">"Del opp"</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_contact_action_bar" msgid="7371001434034419566">"Legg til som kontakt"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Opprett ny…"</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">"Knytt sammen"</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="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktene er sammenknyttet"</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">%d</xliff:g> kontakter · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kontaktene du vil slette, inneholder informasjon fra flere kontoer. Informasjon fra skrivebeskyttede kontoer blir skjult, men ikke slettet."</string>
+    <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 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="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="2228592924476426108">"Kontaktlisten din er tom"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Ingen etiketter."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Du må ha en konto for å opprette grupper."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Kunne ikke laste inn etiketten"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Etiketten er lagret"</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="8121032018490980184">"Kunne ikke lagre etikettendringene."</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="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="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="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="5122118085780669813">"Etikett"</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="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="8038224059926963133">"Etikett"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"lukk"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Vil du knytte sammen gjeldende kontakt med den valgte kontakten?"</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="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="3182801738595937144">"Importér"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Opprett en ny etikett"</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="5058226498605989285">"Vil du forkaste endringene og avslutte endringsmodusen?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Forkast"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Fortsett å endre"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Rediger"</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="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="288549957278065542">"Oppretter personlig kopi …"</string>
+    <string name="yesterday" msgid="6840858548955018569">"I går"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisasjon"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Kallenavn"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Notat"</string>
+    <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_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="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">"Bytt 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="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_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="6975676844194755501">"Kontaktlisten blir oppdatert med det nye språket.\n\nVent litt …"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplikater"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Åpne uttrekksmenyen"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Lukk uttrekksmenyen"</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="630115334220569184">"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="7442308698936786415">"Organiser listen din"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Rydd opp i duplikater og &amp; gruppér kontaktene dine etter etiketter"</string>
+</resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
new file mode 100644
index 0000000..d435073
--- /dev/null
+++ b/res/values-ne-rNP/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"सम्पर्क थप्नुहोस्"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"नयाँ लेबल सिर्जना गर्नुहोस्..."</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>
+    <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">%d</xliff:g> सम्पर्कहरू · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> सम्पर्क · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"तपाईंको सम्पर्क ठेगानाहरूको सूची खाली छ"</string>
+    <string name="noGroups" msgid="4607906327968232225">"कुनै पनि लेबल छैन।"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"समूह बनाउनका लागि एउटा खाताको आवश्यक्ता हुन्छ।"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"यो लेबल अन्तर्गत कुनै सम्पर्कहरू छैनन्"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"यस खातामा कुनै सम्पर्क ठेगानाहरू छैनन्"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"तपाईंको सम्पर्क ठेगानाहरूको सूची खाली छ"</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="groupLoadErrorToast" msgid="7536267148196064554">"लेबल लोड गर्न सकिएन"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"लेबललाई सुरक्षित गरियो"</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="8121032018490980184">"लेबलमा गरिएका परिवर्तनहरूलाई सुरक्षित गर्न सकिएन।"</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="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="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="5122118085780669813">"लेबल थप्नुहोस्"</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="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="8038224059926963133">"लेबल"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"बन्द गर्नुहोस्"</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="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="3182801738595937144">"आयात गर्नुहोस्"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"नयाँ लेबल सिर्जना गर्नुहोस्"</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="5058226498605989285">"तपाईंका परिवर्तनहरू खारेज गरी सम्पादनलाई छाड्ने हो?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"खारेज गर्नुहोस्"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"सम्पादन गरिरहनुहोस्"</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="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="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="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="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="288549957278065542">"एउटा व्यक्तिगत प्रतिलिपि बनाउँदै..."</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="6975676844194755501">"भाषाको परिवर्तनलाई प्रतिबिम्बित गर्न सम्पर्क सूची अद्यावधिक भइरहेको छ।\n\nकृपया कुर्नुहोस्..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"प्रतिलिपिहरू"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"नेभिगेसन ड्रअर खोल्नुहोस्"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"नेभिगेसन ड्रअर बन्द गर्नुहोस्"</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="630115334220569184">"घटनाक्रम र सन्देशहरू"</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="7442308698936786415">"आफ्नो सूची संगठित गर्नुहोस्"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"प्रतिलिपिहरू हटाउनुहोस् &amp; लेबलका आधारमा सम्पर्कहरूको समूह बनाउनुहोस्"</string>
+</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
new file mode 100644
index 0000000..ee1e7a2
--- /dev/null
+++ b/res/values-nl/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Aan favorieten toegevoegd"</string>
+    <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="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_contact_action_bar" msgid="7371001434034419566">"Contact toevoegen"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Nieuwe 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="menu_joinAggregate" msgid="3599512127797513606">"Koppelen"</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="contactsJoinedMessage" msgid="3343535986195643136">"Contacten gekoppeld"</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">%d</xliff:g> contacten · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contact · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"De contacten die je verwijdert, bevatten gegevens uit meerdere accounts. Gegevens uit alleen-lezen accounts worden verborgen, maar niet verwijderd."</string>
+    <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 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="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="2228592924476426108">"Je contactenlijst is leeg"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Geen labels."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Je hebt een account nodig om groepen te maken."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Kan label niet laden"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Label opgeslagen"</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="8121032018490980184">"Kan labelwijzigingen 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="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="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="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="5122118085780669813">"Labelen"</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="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="8038224059926963133">"Labelen"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"sluiten"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Wil je het huidige contact linken met het geselecteerde contact?"</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="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="3182801738595937144">"Importeren"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Nieuw label maken"</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="5058226498605989285">"Je wijzigingen weggooien en ophouden met bewerken?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Weggooien"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Blijven bewerken"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Contact bewerken"</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="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="288549957278065542">"Een persoonlijke kopie maken..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Gisteren"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisatie"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Bijnaam"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Notitie"</string>
+    <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_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="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="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_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="6975676844194755501">"Lijst met contacten wordt geüpdatet op basis van de gewijzigde taal.\n\nEen ogenblik geduld…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplicaten"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Zijmenu openen"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Zijmenu sluiten"</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="630115334220569184">"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="7442308698936786415">"Je lijst ordenen"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Dubbele contacten opruimen en contacten groeperen op label"</string>
+</resources>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
new file mode 100644
index 0000000..766187a
--- /dev/null
+++ b/res/values-pa-rIN/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"ਨਵਾਂ ਬਣਾਓ…"</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>
+    <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">%d</xliff:g> ਸੰਪਰਕ · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> ਸੰਪਰਕ · <xliff:g id="ACCOUNT_3">%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="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 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="2228592924476426108">"ਤੁਹਾਡੀ ਸੰਪਰਕਾਂ ਦੀ ਸੂਚੀ ਖਾਲੀ ਹੈ"</string>
+    <string name="noGroups" msgid="4607906327968232225">"ਕੋਈ ਲੇਬਲ ਨਹੀਂ।"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"ਸਮੂਹ ਬਣਾਉਣ ਲਈ ਤੁਹਾਨੂੰ ਇੱਕ ਖਾਤਾ ਬਣਾਉਣ ਦੀ ਲੋੜ ਹੈ।"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ਇਸ ਲੇਬਲ ਨਾਲ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ਇਸ ਖਾਤੇ ਵਿੱਚ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"ਤੁਹਾਡੀ ਸੰਪਰਕਾਂ ਦੀ ਸੂਚੀ ਖਾਲੀ ਹੈ"</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="groupLoadErrorToast" msgid="7536267148196064554">"ਲੇਬਲ ਲੋਡ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"ਲੇਬਲ ਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ"</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="8121032018490980184">"ਲੇਬਲ ਬਦਲਾਆਂ ਨੂੰ ਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।"</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="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="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="5122118085780669813">"ਲੇਬਲ ਕਰੋ"</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="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="8038224059926963133">"ਲੇਬਲ ਕਰੋ"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"ਬੰਦ ਕਰੋ"</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="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="3182801738595937144">"ਆਯਾਤ ਕਰੋ"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"ਨਵਾਂ ਲੇਬਲ ਬਣਾਓ"</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="5058226498605989285">"ਕੀ ਆਪਣੀਆਂ ਤਬਦੀਲੀਆਂ ਨੂੰ ਛੱਡਣਾ ਅਤੇ ਸੰਪਾਦਨ ਨੂੰ ਰੱਦ ਕਰਨਾ ਹੈ?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"ਛੱਡੋ"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"ਸੋਧ ਕਰਦੇ ਰਹੋ"</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="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="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="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="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="288549957278065542">"ਇੱਕ ਨਿੱਜੀ ਕਾਪੀ ਬਣਾ ਰਿਹਾ ਹੈ..."</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="6975676844194755501">"ਭਾਸ਼ਾ ਵਿੱਚ ਕੀਤੇ ਬਦਲਾਅ ਨੂੰ ਦਰਸ਼ਾਉਣ ਲਈ ਸੰਪਰਕ ਸੂਚੀ ਅੱਪਡੇਟ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ\n\nਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕ ਕਰੋ…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"ਡੁਪਲੀਕੇਟ"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"ਆਵਾਗੌਣ ਦਰਾਜ਼ ਖੋਲ੍ਹੋ"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"ਆਵਾਗੌਣ ਦਰਾਜ਼ ਬੰਦ ਕਰੋ"</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="630115334220569184">"ਵਰਤਾਰੇ ਅਤੇ ਸੁਨੇਹੇ"</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="7442308698936786415">"ਆਪਣੀ ਸੂਚੀ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"ਲੇਬਲ ਅਨੁਸਾਰ ਡੁਪਲੀਕੇਟ ਅਤੇ ਸਮੂਹ ਸੰਪਰਕ ਸਾਫ਼ ਕਰੋ"</string>
+</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
new file mode 100644
index 0000000..e652f6e
--- /dev/null
+++ b/res/values-pl/strings.xml
@@ -0,0 +1,367 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Dodano do ulubionych"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Rozłącz"</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_contact_action_bar" msgid="7371001434034419566">"Dodaj kontakt"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Utwórz nową…"</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="menu_joinAggregate" msgid="3599512127797513606">"Połącz"</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="contactsJoinedMessage" msgid="3343535986195643136">"Kontakty zostały połączone"</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">%d</xliff:g> kontakty · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%d</xliff:g> kontaktów · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> kontaktu · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kontakty wybrane do usunięcia zawierają informacje pochodzące z wielu kont. Informacje z kont tylko do odczytu nie zostaną skasowane, ale ukryte."</string>
+    <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 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="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="2228592924476426108">"Twoja lista kontaktów jest pusta"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Brak etykiet."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Do tworzenia grup niezbędne jest konto."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Nie udało się załadować etykiety"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Etykieta została zapisana"</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="8121032018490980184">"Nie udało się zapisać zmian w etykiecie."</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="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="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="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="5122118085780669813">"Etykieta"</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="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="8038224059926963133">"Dodaj etykietę"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"zamknij"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Połączyć bieżący kontakt z wybranym?"</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="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="3182801738595937144">"Importuj"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Utwórz nową etykietę"</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="5058226498605989285">"Odrzucić zmiany i zakończyć edycję?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Odrzuć"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Edytuj dalej"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Edytuj kontakt"</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="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="288549957278065542">"Tworzenie kopii osobistej…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Wczoraj"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organizacja"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Pseudonim"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Notatka"</string>
+    <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_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="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="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_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="6975676844194755501">"Lista kontaktów jest aktualizowana, aby odzwierciedlić zmianę języka.\n\nCzekaj…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplikaty"</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="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="630115334220569184">"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="7442308698936786415">"Porządkuj listę kontaktów"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Usuwaj duplikaty i grupuj kontakty według etykiet"</string>
+</resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000..c57de4c
--- /dev/null
+++ b/res/values-pt-rBR/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <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">"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_splitAggregate" msgid="2627252205317945563">"Desvincular"</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_contact_action_bar" msgid="7371001434034419566">"Adicionar contato"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Criar novo..."</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="menu_joinAggregate" msgid="3599512127797513606">"Vincular"</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="contactsJoinedMessage" msgid="3343535986195643136">"Contatos vinculados"</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">%d</xliff:g> contato: <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> contatos: <xliff:g id="ACCOUNT_3">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Os contatos que serão excluídos têm detalhes de várias contas. Os detalhes de contas somente leitura serão ocultados, não excluídos."</string>
+    <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 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="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="2228592924476426108">"Sua lista de contatos está vazia"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Nenhum marcador."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Você precisa de uma conta para criar grupos."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Falha ao carregar o marcador"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Marcador salvo"</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="8121032018490980184">"Não foi possível salvar as alterações do marcador."</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="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="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="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="5122118085780669813">"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="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="8038224059926963133">"Marcador"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"fechar"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Vincular o contato atual com o contato selecionado?"</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="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="3182801738595937144">"Importar"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Criar novo marcador"</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="5058226498605989285">"Descartar as alterações e sair da edição?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Descartar"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Continuar edição"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Editar contato"</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="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="288549957278065542">"Criando uma cópia pessoal..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Ontem"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organização"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Apelido"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Nota"</string>
+    <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_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="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="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_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="6975676844194755501">"A lista de contatos está sendo atualizada para refletir a alteração do idioma.\n\nAguarde…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Contatos duplicados"</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="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="630115334220569184">"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="7442308698936786415">"Organizar sua lista"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Limpe as cópias e agrupe os contatos por marcador"</string>
+</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..4219e08
--- /dev/null
+++ b/res/values-pt-rPT/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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_splitAggregate" msgid="2627252205317945563">"Desassociar"</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_contact_action_bar" msgid="7371001434034419566">"Adicionar contacto"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Criar nova…"</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="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="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contactos sugeridos"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Todos os contactos"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Contacts linked"</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">%d</xliff:g> contactos · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contacto · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Os contactos a eliminar têm detalhes de várias contas. Os detalhes das contas só de leitura ficam ocultos, mas não são eliminados."</string>
+    <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 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="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="2228592924476426108">"A sua lista de contactos está vazia"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Sem etiquetas."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Para criar grupos precisa de uma conta"</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Falha ao carregar a etiqueta"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Etiqueta guardada"</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="8121032018490980184">"Não foi possível guardar as alterações da etiqueta."</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="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="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="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="5122118085780669813">"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 <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="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_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="8038224059926963133">"Etiqueta"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"fechar"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Pretende ligar o contacto atual ao contacto selecionado?"</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="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="3182801738595937144">"Importar"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Criar nova etiqueta"</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="5058226498605989285">"Pretende rejeitar as alterações e sair do editor?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Rejeitar"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Continuar a editar"</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="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="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="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">"Adicionar novo contacto"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editar contacto"</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="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="288549957278065542">"A criar uma cópia pessoal"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Ontem"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Entidade"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Pseudónimo"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Nota"</string>
+    <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_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="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="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_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="6975676844194755501">"A lista de contactos está a ser atualizada para refletir a alteração de idioma.\n\nAguarde…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplicados"</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="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="630115334220569184">"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="7442308698936786415">"Organizar a sua lista"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Limpar duplicados e agrupar contactos por etiqueta"</string>
+</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
new file mode 100644
index 0000000..c57de4c
--- /dev/null
+++ b/res/values-pt/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <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">"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_splitAggregate" msgid="2627252205317945563">"Desvincular"</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_contact_action_bar" msgid="7371001434034419566">"Adicionar contato"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Criar novo..."</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="menu_joinAggregate" msgid="3599512127797513606">"Vincular"</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="contactsJoinedMessage" msgid="3343535986195643136">"Contatos vinculados"</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">%d</xliff:g> contato: <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> contatos: <xliff:g id="ACCOUNT_3">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Os contatos que serão excluídos têm detalhes de várias contas. Os detalhes de contas somente leitura serão ocultados, não excluídos."</string>
+    <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 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="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="2228592924476426108">"Sua lista de contatos está vazia"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Nenhum marcador."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Você precisa de uma conta para criar grupos."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Falha ao carregar o marcador"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Marcador salvo"</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="8121032018490980184">"Não foi possível salvar as alterações do marcador."</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="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="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="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="5122118085780669813">"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="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="8038224059926963133">"Marcador"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"fechar"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Vincular o contato atual com o contato selecionado?"</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="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="3182801738595937144">"Importar"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Criar novo marcador"</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="5058226498605989285">"Descartar as alterações e sair da edição?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Descartar"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Continuar edição"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Editar contato"</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="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="288549957278065542">"Criando uma cópia pessoal..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Ontem"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organização"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Apelido"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Nota"</string>
+    <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_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="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="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_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="6975676844194755501">"A lista de contatos está sendo atualizada para refletir a alteração do idioma.\n\nAguarde…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Contatos duplicados"</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="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="630115334220569184">"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="7442308698936786415">"Organizar sua lista"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Limpe as cópias e agrupe os contatos por marcador"</string>
+</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
new file mode 100644
index 0000000..0ed0842
--- /dev/null
+++ b/res/values-ro/strings.xml
@@ -0,0 +1,356 @@
+<?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">"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="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 pentru persoană"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Alegeți o persoană de contact"</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="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="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="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="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_change_photo" msgid="7769177631511496210">"Schimbați fotografia"</string>
+    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Plasați pe 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_splitAggregate" msgid="2627252205317945563">"Disociați"</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_contact_action_bar" msgid="7371001434034419566">"Adăugați o persoană"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Creați o etichetă nouă…"</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="menu_joinAggregate" msgid="3599512127797513606">"Asociați"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Salvați"</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">"Toată agenda"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Persoanele de contact au fost asociate"</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>
+    <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">%d</xliff:g> persoane de contact · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> de persoane de contact · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> persoană de contact · <xliff:g id="ACCOUNT_1">%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="4181789196416396656">"Numai mesagerie vocală"</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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Persoanele de contact care vor fi șterse au detalii din mai multe conturi. Detaliile din conturile numai în citire vor fi ascunse, nu șterse."</string>
+    <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ă"</string>
+    <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="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="2228592924476426108">"Lista cu persoane de contact este goală"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Nicio etichetă."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Pentru a crea grupuri aveți nevoie de un cont."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Nu s-a putut încărca eticheta"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Eticheta a fost salvată"</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="8121032018490980184">"Modificările etichetei nu s-au salvat."</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="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="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>” în 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="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">"Trimiteț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="5122118085780669813">"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="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="8038224059926963133">"Etichetă"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"închideți"</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="contact_directory_description" msgid="683398073603909119">"Director <xliff:g id="TYPE">%1$s</xliff:g>"</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="contacts_unavailable_add_account" msgid="4347232421410561500">"Adăugați un cont"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importați"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Creați o etichetă nouă"</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="toast_text_copied" msgid="5143776250008541719">"Text copiat"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5058226498605989285">"Renunțați la modificări și părăsiți editarea?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Renunțați"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Editați în continuare"</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="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="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="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 o persoană"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editați intrarea"</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="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="288549957278065542">"Se creează o copie personală..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Ieri"</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="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"</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_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_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="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="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_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="6975676844194755501">"Se actualizează lista de persoane din agendă pentru a reflecta modificarea limbii.\n\nAșteptați…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Dubluri"</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="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="630115334220569184">"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="7442308698936786415">"Organizați-vă lista"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Eliminați dublurile și grupați persoanele de contact după etichetă"</string>
+</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
new file mode 100644
index 0000000..e348274
--- /dev/null
+++ b/res/values-ru/strings.xml
@@ -0,0 +1,367 @@
+<?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">"Быстрое SMS"</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="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="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">"Отправить SMS/MMS"</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_contact_action_bar" msgid="7371001434034419566">"Добавить контакт"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Создать…"</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="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">%d</xliff:g> контакт · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%d</xliff:g> контакта · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%d</xliff:g> контактов · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> контакта · <xliff:g id="ACCOUNT_3">%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="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 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="2228592924476426108">"Контактов нет"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Нет ярлыков."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Для создания групп нужен аккаунт."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Нет контактов с таким ярлыком"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"В этом аккаунте нет контактов"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Контактов нет"</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="groupLoadErrorToast" msgid="7536267148196064554">"Не удалось загрузить ярлык"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Ярлык сохранен"</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="8121032018490980184">"Не удалось сохранить изменения"</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="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="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="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="5122118085780669813">"Ярлык"</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="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="8038224059926963133">"Ярлык"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"закрыть"</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="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="3182801738595937144">"Импортировать"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Создание ярлыка"</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="5058226498605989285">"Отменить изменения и завершить редактирование?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Отменить"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Продолжить редактирование"</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="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="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="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="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="288549957278065542">"Копирование..."</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">"Чат"</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="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="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_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="6975676844194755501">"Выполняется обновление списка контактов, чтобы изменение языка вступило в силу.\n\nПодождите..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Повторяющиеся контакты"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Открыть панель навигации"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Закрыть панель навигации"</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="630115334220569184">"Мероприятия и сообщения"</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="7442308698936786415">"Наведите порядок в контактах"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Объедините контакты в группы и удалите повторения"</string>
+</resources>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
new file mode 100644
index 0000000..153d970
--- /dev/null
+++ b/res/values-si-rLK/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"සම්බන්ධතාව එක් කරන්න"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"අලුත් එකක් තනන්න…"</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>
+    <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">%d</xliff:g> සම්බන්ධතා · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> සම්බන්ධතා · <xliff:g id="ACCOUNT_3">%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="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 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="2228592924476426108">"ඔබගේ සම්බන්ධතා ලැයිස්තුව හිස්ය"</string>
+    <string name="noGroups" msgid="4607906327968232225">"ලේබල නැත."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"කණ්ඩායම් නිර්මාණය කිරීමට ඔබට ගිණුමක් අවශ්‍ය වේ."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"මෙම ලේබලය සහිත සම්බන්ධතා නැත."</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"මෙම ගිණුමෙහි සම්බන්ධතා නොමැත"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"ඔබගේ සම්බන්ධතා ලැයිස්තුව හිස්ය"</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="groupLoadErrorToast" msgid="7536267148196064554">"ලේබලය පූරණය කිරීමට අසමත් විය"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"ලේබලය සුරැකිණි"</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="8121032018490980184">"ලේබල වෙනස් කිරීම් සුරැකීමට නොහැකි විය."</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="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="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="5122118085780669813">"ලේබලය"</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="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="8038224059926963133">"ලේබලය"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"වසන්න"</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="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="3182801738595937144">"ආයාත කරන්න"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"නව ලේබලයක් තනන්න"</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="5058226498605989285">"ඔබේ වෙනස් කිරීම් ඉවත දමා සංස්කරණය කිරීමෙන් ඉවත් වන්නද?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"ඉවතලන්න"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"සංස්කරණය කරගෙන යන්න"</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="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="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="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="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="288549957278065542">"පුද්ගලික පිටපතක් නිර්මාණය කරමින්…"</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="6975676844194755501">"භාෂාවේ වෙනස් කිරීම පෙන්වීමට සම්බන්ධතා ලැයිස්තුව යාවත්කාලීන කරමින් පවතී.\n\nකරුණාකර රැඳී සිටින්න…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"අනුපිටපත්"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"සංචාලන ලාච්චුව විවෘත කරන්න"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"සංචාලන ලාච්චුව වසන්න"</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="630115334220569184">"සිදුවීම් සහ පණිවිඩ"</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="7442308698936786415">"ඔබගේ ලැයිස්තුව සංවිධානය කරන්න"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"අනුපිටපත් පිරිසිදු කර, සම්බන්ධතා ලේබල අනුව සමූහ කරන්න"</string>
+</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
new file mode 100644
index 0000000..cfd7f9c
--- /dev/null
+++ b/res/values-sk/strings.xml
@@ -0,0 +1,367 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Pridané medzi obľúbené"</string>
+    <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="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_contact_action_bar" msgid="7371001434034419566">"Pridať kontakt"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Vytvoriť nový…"</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="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="menu_joinAggregate" msgid="3599512127797513606">"Prepojiť"</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="contactsJoinedMessage" msgid="3343535986195643136">"Kontakty boli prepojené"</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>
+    <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">%d</xliff:g> kontakty · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%d</xliff:g> kontaktu · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> kontaktov · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%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ť 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="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="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 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="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="2228592924476426108">"Váš zoznam kontaktov je prázdny"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Nemáte žiadne štítky."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Na vytvorenie skupín je potrebný účet."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"K dispozícii nie sú ž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">"Váš zoznam kontaktov je prázdny"</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="groupLoadErrorToast" msgid="7536267148196064554">"Načítanie štítka zlyhalo"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Štítok bol uložený"</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="8121032018490980184">"Zmeny štítka nebolo možné uložiť"</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="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="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="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="5122118085780669813">"Štítok"</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 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="take_photo" msgid="7496128293167402354">"Odfotiť"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Urobiť novú fotografiu"</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="8038224059926963133">"Štítok"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"zavrieť"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Prepojiť aktuálny kontakt s vybraným kontaktom?"</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="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="contacts_unavailable_add_account" msgid="4347232421410561500">"Pridať účet"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importovať"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Vytvorenie nového štítka"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Vytvoriť nový…"</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="5058226498605989285">"Zahodiť zmeny a ukončiť upravovanie?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Zahodiť"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Pokračovať v úprave"</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="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="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="6648376557574360096">"Nájdite si chvíľu na pridanie účtu, v ktorom sa na Googli budú zálohovať vaše kontakty."</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_existing_contact" msgid="4898475703683187798">"Upraviť kontakt"</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="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 karte"</string>
+    <string name="send_message" msgid="8938418965550543196">"Odoslať správu"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Prebieha vytváranie osobnej kópie..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Včera"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organizácia"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Prezývka"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Poznámka"</string>
+    <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_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="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">"Uložiť ako"</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="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_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="6975676844194755501">"V súvislosti so zmenou jazyka sa aktualizuje zoznam kontaktov.\n\nPočkajte, prosím…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Duplikáty"</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="menu_title_groups" msgid="8356921831150278868">"Štítky"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Účty"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Zobrazte si históriu naraz"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="630115334220569184">"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="7442308698936786415">"Uporiadajte si zoznam"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Vymažte duplikáty a zoskupte kontakty podľa štítkov"</string>
+</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
new file mode 100644
index 0000000..fcaf9bf
--- /dev/null
+++ b/res/values-sl/strings.xml
@@ -0,0 +1,367 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Dodano med priljubljene"</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">"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_splitAggregate" msgid="2627252205317945563">"Odstrani povezavo"</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_contact_action_bar" msgid="7371001434034419566">"Dodaj stik"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Ustvari novo ..."</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">"Poveži"</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="contactsJoinedMessage" msgid="3343535986195643136">"Stika povezana"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <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">%d</xliff:g> stik · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="two"><xliff:g id="COUNT_2">%d</xliff:g> stika · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%d</xliff:g> stiki · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> stikov · <xliff:g id="ACCOUNT_3">%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 v 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="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">"Izbriši"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Zavrzi spremembe"</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 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="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="2228592924476426108">"Seznam stikov je prazen"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Ni oznak."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Če želite ustvariti skupine, potrebujete račun."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Nalaganje oznake ni uspelo"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Oznaka je shranjena"</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="8121032018490980184">"Sprememb oznake ni bilo 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="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">"Vsi"</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="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="5122118085780669813">"Oznaka"</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="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="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="8038224059926963133">"Dodaj oznako"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"zapri"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Želite povezati stik z izbranim stikom?"</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="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="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">"Dodaj račun"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Uvozi"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Ustvarjanje nove oznake"</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="5058226498605989285">"Želite zavreči spremembe in prenehati urejati?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Zavrzi"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Nadaljevanje urejanja"</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="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="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="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">"Dodaj nov stik"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Urejanje stika"</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="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="288549957278065542">"Ustvarjanje osebne kopije ..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Včeraj"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organizacija"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Vzdevek"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Opomba"</string>
+    <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_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="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="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_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="6975676844194755501">"Seznam stikov se posodablja po spremembi jezika.\n\nPočakajte ..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Dvojniki"</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="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="630115334220569184">"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="7442308698936786415">"Organiziranje seznama"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Počistite dvojnike in povežite stike v skupine z oznakami"</string>
+</resources>
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
new file mode 100644
index 0000000..3095b66
--- /dev/null
+++ b/res/values-sq-rAL/strings.xml
@@ -0,0 +1,345 @@
+<?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="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Zgjidh"</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="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="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_contact_action_bar" msgid="7371001434034419566">"Shto kontakt"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Krijo të re..."</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>
+    <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">%d</xliff:g> kontakte · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%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="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="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 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="2228592924476426108">"Lista e kontakteve të tua është bosh"</string>
+    <string name="noGroups" msgid="4607906327968232225">"S\'ka etiketa."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Për të krijuar grupe të duhet një llogari."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Dështoi në ngarkimin e etiketës"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Etiketa u ruajt"</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="8121032018490980184">"Nuk mund të ruhen ndryshimet e etiketës."</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="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="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="5122118085780669813">"Etiketa"</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="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="8038224059926963133">"Etiketa"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"mbyll"</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="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="3182801738595937144">"Importo"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Krijo etiketë të re"</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="5058226498605989285">"Hiqi ndryshimet dhe mbylle redaktimin?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Hiq"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Vazhdo redaktimin"</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="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="toast_displaying_all_contacts" msgid="2737388783898593875">"Po shfaq të gjitha kontaktet"</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="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="7192223018128934940">"Shto një kontakt të ri"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Redakto"</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="288549957278065542">"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="6975676844194755501">"Lista e kontakteve po përditësohet për të pasqyruar ndryshimin e gjuhës.\n\nQëndro në pritje..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Dublikatat"</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="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ë të bashkuar"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="630115334220569184">"Ngjarje dhe mesazhe"</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="7442308698936786415">"Organizo listën tënde"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Pastro dublikatat dhe kontaktet e grupit sipas emërtimit"</string>
+</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
new file mode 100644
index 0000000..49adda9
--- /dev/null
+++ b/res/values-sr/strings.xml
@@ -0,0 +1,356 @@
+<?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="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="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">"Пошаљи SMS контакту"</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_contact_action_bar" msgid="7371001434034419566">"Додај контакт"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Направи нову…"</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="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">%d</xliff:g> контакт · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%d</xliff:g> контакта · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> контаката · <xliff:g id="ACCOUNT_3">%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="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 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="2228592924476426108">"Листа контаката је празна"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Нема ознака."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Морате да имате налог да бисте могли да правите групе."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Нема контаката са овом ознаком"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Нема контаката на овом налогу"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Листа контаката је празна"</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="groupLoadErrorToast" msgid="7536267148196064554">"Учитавање ознаке није успело"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Ознака је сачувана"</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="8121032018490980184">"Чување промена ознаке није успело."</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="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="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="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="5122118085780669813">"Ознака"</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="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="8038224059926963133">"Ознака"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"затворите"</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="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="3182801738595937144">"Увeзи"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Направите нову ознаку"</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="5058226498605989285">"Желите ли да одбаците промене и прекинете са изменама?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Одбаци"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Настави изменe"</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="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="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="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="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="288549957278065542">"Прављење личне копије..."</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">"Размена тренутних порука"</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">"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="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_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="6975676844194755501">"Листа контаката се ажурира да би се применила промена језика.\n\nСачекајте…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Дупликати"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Отвори фиоку за навигацију"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Затвори фиоку за навигацију"</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="630115334220569184">"Догађаји и поруке"</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="7442308698936786415">"Организујте листу"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Уклоните дупликате и групишите контакте према ознаци"</string>
+</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
new file mode 100644
index 0000000..265c47c
--- /dev/null
+++ b/res/values-sv/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Har lagts till i Favoriter"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Ta bort länk"</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_contact_action_bar" msgid="7371001434034419566">"Lägg till kontakt"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Skapa ny ..."</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="menu_joinAggregate" msgid="3599512127797513606">"Länka"</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="contactsJoinedMessage" msgid="3343535986195643136">"Kontakterna har länkats"</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">%d</xliff:g> kontakter · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kontakterna 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="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 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="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="2228592924476426108">"Kontaktlistan är tom"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Inga etiketter."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Om du vill skapa grupper måste du ha ett konto."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Det gick inte att läsa in etiketten"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Etikett sparad"</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">"En etikett 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="8121032018490980184">"Det gick inte att spara etikettändringarna."</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="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="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="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="5122118085780669813">"Etikett"</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="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 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="8038224059926963133">"Etikett"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"stäng"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Vill du länka den aktuella kontakten till den markerade kontakten?"</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="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="3182801738595937144">"Importera"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Skapa ny etikett"</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="5058226498605989285">"Vill du tar bort ändringarna och sluta redigera?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Ignorera"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Fortsätt redigera"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Redigera kontakt"</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="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="288549957278065542">"En personlig kopia skapas ..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"I går"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisation"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Kortnamn"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Anteckning"</string>
+    <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_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="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="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 bild"</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_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="6975676844194755501">"Kontaktlistan uppdateras med språkändringen.\n\nVänta ..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Dubbletter"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Öppna navigeringspanelen"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Stäng navigeringspanelen"</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="630115334220569184">"Event 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="7442308698936786415">"Organisera din lista"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Rensa bort dubbletter och gruppera kontakter efter etikett"</string>
+</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
new file mode 100644
index 0000000..4dd493d
--- /dev/null
+++ b/res/values-sw/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Ongeza kwenye anwani"</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="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 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_splitAggregate" msgid="2627252205317945563">"Tenganisha"</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_contact_action_bar" msgid="7371001434034419566">"Ongeza anwani"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Unda mpya…"</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="menu_joinAggregate" msgid="3599512127797513606">"Unganisha"</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 na <xliff:g id="NAME">%s</xliff:g>:"</string>
+    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Onyesha anwani zote"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Anwani zilizopendekezwa"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Anwani zote"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Anwani zimeunganishwa"</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">%d</xliff:g> · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one">Anwani <xliff:g id="COUNT_0">%d</xliff:g> · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Anwani unazotaka kufuta zina maelezo kutoka akaunti nyingi. Maelezo kutoka akaunti za kusoma pekee yatafichwa, bali hayatafutwa."</string>
+    <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 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="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="2228592924476426108">"Orodha yako ya anwani haina kitu"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Hakuna lebo."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Ili kuunda vikundi unahitaji akaunti"</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Imeshindwa kupakia lebo"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Lebo imehifadhiwa"</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="8121032018490980184">"Imeshindwa kuhifadhi mabadiliko ya lebo."</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="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="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="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="5122118085780669813">"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">"Za 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="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="8038224059926963133">"Lebo"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"funga"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Ungependa kuunganisha anwani ya sasa na anwani uliyochagua?"</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="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">"Chaguo za kuonyesha"</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="3182801738595937144">"Leta"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Unda lebo mpya"</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="5058226498605989285">"Je, ungependa kutupa mabadiliko yako na uache kubadilisha?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Tupa"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Endelea kubadilisha"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Badilisha anwani"</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="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="288549957278065542">"Inaunda nakala ya kibinafsi..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Jana"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Shirika"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Jina la utani"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Kidokezo"</string>
+    <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_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="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="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_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="6975676844194755501">"Orodha ya anwani inasasishwa ili kuonesha mabadiliko ya lugha.\n\nTafadhali subiri…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Zinazojirudia"</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="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="630115334220569184">"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="7442308698936786415">"Panga orodha yako"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Ondoa zilizorudiwa na upange anwani kulingana na lebo"</string>
+</resources>
diff --git a/res/values-sw600dp-land/dimens.xml b/res/values-sw600dp-land/dimens.xml
new file mode 100644
index 0000000..b0cfb5a
--- /dev/null
+++ b/res/values-sw600dp-land/dimens.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.
+-->
+<resources>
+    <dimen name="group_editor_side_padding">64dip</dimen>
+    <dimen name="quick_contact_photo_container_height">180dip</dimen>
+    <dimen name="detail_contact_photo_size">192dip</dimen>
+    <dimen name="detail_contact_photo_margin">16dip</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
new file mode 100644
index 0000000..1785443
--- /dev/null
+++ b/res/values-sw600dp-land/integers.xml
@@ -0,0 +1,29 @@
+<?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>
+    <!-- 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>
+</resources>
diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
new file mode 100644
index 0000000..6e4f808
--- /dev/null
+++ b/res/values-sw600dp/dimens.xml
@@ -0,0 +1,62 @@
+<?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.
+-->
+<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="group_detail_border_padding">16dip</dimen>
+    <dimen name="search_view_width">400dip</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="contact_browser_list_top_margin">18dp</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>
+
+    <!-- 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">32dip</dimen>
+    <dimen name="join_header_top_margin">16dip</dimen>
+    <dimen name="join_header_bottom_margin">16dip</dimen>
+
+    <!-- Account title left padding -->
+    <dimen name="account_container_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>
+</resources>
diff --git a/res/values-sw600dp/integers.xml b/res/values-sw600dp/integers.xml
new file mode 100644
index 0000000..4eb0061
--- /dev/null
+++ b/res/values-sw600dp/integers.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<resources>
+    <!-- Top margin ratio for the image for empty group view -->
+    <integer name="empty_group_view_image_margin_divisor">4</integer>
+</resources>
\ No newline at end of file
diff --git a/res/values-sw600dp/styles.xml b/res/values-sw600dp/styles.xml
new file mode 100644
index 0000000..11dc54e
--- /dev/null
+++ b/res/values-sw600dp/styles.xml
@@ -0,0 +1,28 @@
+<?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="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>
+
+</resources>
diff --git a/res/values-sw720dp-land/dimens.xml b/res/values-sw720dp-land/dimens.xml
new file mode 100644
index 0000000..b89c2c1
--- /dev/null
+++ b/res/values-sw720dp-land/dimens.xml
@@ -0,0 +1,22 @@
+<?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="detail_contact_photo_size">256dip</dimen>
+    <dimen name="people_activity_landscape_tabs_text_size">16dp</dimen>
+</resources>
diff --git a/res/values-sw720dp-land/styles.xml b/res/values-sw720dp-land/styles.xml
new file mode 100644
index 0000000..9fa3d08
--- /dev/null
+++ b/res/values-sw720dp-land/styles.xml
@@ -0,0 +1,18 @@
+<?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/dimens.xml b/res/values-sw720dp/dimens.xml
new file mode 100644
index 0000000..264baa4
--- /dev/null
+++ b/res/values-sw720dp/dimens.xml
@@ -0,0 +1,31 @@
+<?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.
+-->
+<resources>
+    <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>
+
+    <!-- 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>
+
+    <dimen name="expanding_entry_card_marginStartEnd">10dp</dimen>
+
+</resources>
diff --git a/res/values-sw720dp/integers.xml b/res/values-sw720dp/integers.xml
new file mode 100644
index 0000000..1cc510e
--- /dev/null
+++ b/res/values-sw720dp/integers.xml
@@ -0,0 +1,23 @@
+<?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>
+    <!-- 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>
+</resources>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
new file mode 100644
index 0000000..54a3f68
--- /dev/null
+++ b/res/values-ta-rIN/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"தொடர்பைச் சேர்"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"புதியதை உருவாக்கு…"</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>
+    <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">%d</xliff:g> தொடர்புகள் · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> தொடர்பு · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"உங்கள் தொடர்புகள் பட்டியல் காலியாக உள்ளது"</string>
+    <string name="noGroups" msgid="4607906327968232225">"லேபிள்கள் இல்லை."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"குழுக்களை உருவாக்க கணக்கு அவசியம்."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"இந்த லேபிளைக் கொண்ட தொடர்புகள் இல்லை"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"இந்தக் கணக்கில் தொடர்புகள் இல்லை"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"உங்கள் தொடர்புகள் பட்டியல் காலியாக உள்ளது"</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="groupLoadErrorToast" msgid="7536267148196064554">"லேபிளை ஏற்ற முடியவில்லை"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"லேபிள் சேமிக்கப்பட்டது"</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="8121032018490980184">"லேபிள் மாற்றங்களைச் சேமிக்க முடியவில்லை."</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="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="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="5122118085780669813">"லேபிள்"</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="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="8038224059926963133">"லேபிளைச் சேர்"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"மூடும்"</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="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="3182801738595937144">"இறக்கு"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"புதிய லேபிளை உருவாக்கு"</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="5058226498605989285">"மாற்றங்களை நிராகரித்து, திருத்துவதிலிருந்து வெளியேறவா?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"நிராகரி"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"தொடர்ந்து திருத்து"</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="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="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="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="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="288549957278065542">"தனிப்பட்ட நகலை உருவாக்குகிறது…"</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="6975676844194755501">"மொழி மாற்றத்தைக் காட்ட, தொடர்புப் பட்டியல் புதுப்பிக்கப்படுகிறது.\n\nகாத்திருக்கவும்…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"நகல்கள்"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"வழிசெலுத்தல் டிராயரைத் திறக்கும்"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"வழிசெலுத்தல் டிராயரை மூடும்"</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="630115334220569184">"நிகழ்வுகளும் செய்திகளும்"</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="7442308698936786415">"உங்கள் பட்டியலை ஒழுங்கமைக்கவும்"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"நகல்களை நீக்கலாம் &amp; லேபிளின்படி தொடர்புகளைக் குழுவாக்கலாம்"</string>
+</resources>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
new file mode 100644
index 0000000..21fcf0c
--- /dev/null
+++ b/res/values-te-rIN/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"పరిచయాన్ని జోడించు"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"కొత్తది సృష్టించు…"</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>
+    <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">%d</xliff:g> పరిచయాలు · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> పరిచయం · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"మీ పరిచయాల జాబితా ఖాళీగా ఉంది"</string>
+    <string name="noGroups" msgid="4607906327968232225">"లేబుల్‌లు లేవు."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"సమూహాలను సృష్టించడానికి మీకు ఖాతా అవసరం."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ఈ లేబుల్‌తో పరిచయాలు ఏవీ లేవు"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ఈ ఖాతాలో పరిచయాలు ఏవీ లేవు"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"మీ పరిచయాల జాబితా ఖాళీగా ఉంది"</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="groupLoadErrorToast" msgid="7536267148196064554">"లేబుల్‌ను లోడ్ చేయడంలో విఫలమైంది"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"లేబుల్ సేవ్ చేయబడింది"</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="8121032018490980184">"లేబుల్ మార్పులను సేవ్ చేయలేకపోయింది."</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="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="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="5122118085780669813">"లేబుల్"</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="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="8038224059926963133">"లేబుల్"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"మూసివేస్తుంది"</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="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="3182801738595937144">"దిగుమతి చేయి"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"కొత్త లేబుల్‌ను సృష్టించు"</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="5058226498605989285">"మీ మార్పులను విస్మరించి, సవరణ నుండి నిష్క్రమించాలా?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"విస్మరించు"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"సవరణను కొనసాగించు"</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="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="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="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="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="288549957278065542">"వ్యక్తిగత కాపీని సృష్టిస్తోంది..."</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="6975676844194755501">"భాష మార్పును ప్రతిఫలింపజేయడానికి పరిచయ జాబితా నవీకరించబడుతోంది.\n\nదయచేసి వేచి ఉండండి…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"నకిలీలు"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"నావిగేషన్ డ్రాయర్‌ను తెరుస్తుంది"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"నావిగేషన్ డ్రాయర్‌ను మూసివేస్తుంది"</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="630115334220569184">"ఈవెంట్‌లు మరియు సందేశాలు"</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="7442308698936786415">"మీ జాబితాను ఉత్తమంగా నిర్వహించండి"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"నకిలీలను తొలగించండి &amp; పరిచయాలను లేబుల్ వారీగా వర్గీకరించండి"</string>
+</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
new file mode 100644
index 0000000..c55f8ce
--- /dev/null
+++ b/res/values-th/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"เพิ่มผู้ติดต่อ"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"สร้างใหม่…"</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>
+    <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">%d</xliff:g> ราย · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one">รายชื่อติดต่อ <xliff:g id="COUNT_0">%d</xliff:g> ราย · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"รายชื่อติดต่อของคุณว่างเปล่า"</string>
+    <string name="noGroups" msgid="4607906327968232225">"ไม่มีป้ายกำกับ"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"คุณจำเป็นต้องมีบัญชีเพื่อสร้างกลุ่ม"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ไม่มีรายชื่อติดต่อที่มีป้ายกำกับนี้"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ไม่มีรายชื่อติดต่อในบัญชีนี้"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"รายชื่อติดต่อของคุณว่างเปล่า"</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="groupLoadErrorToast" msgid="7536267148196064554">"โหลดป้ายกำกับไม่สำเร็จ"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"บันทึกป้ายกำกับแล้ว"</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="8121032018490980184">"ไม่สามารถบันทึกการเปลี่ยนแปลงป้ายกำกับได้"</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="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="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="5122118085780669813">"ป้ายกำกับ"</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="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="8038224059926963133">"ป้ายกำกับ"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"ปิด"</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="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="3182801738595937144">"นำเข้า"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"สร้างป้ายกำกับใหม่"</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="5058226498605989285">"ยกเลิกการเปลี่ยนแปลงและออกจากการแก้ไขใช่ไหม"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"ยกเลิก"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"แก้ไขต่อ"</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="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="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="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="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="288549957278065542">"กำลังสร้างสำเนาส่วนบุคคล..."</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> แตะ 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="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="6975676844194755501">"กำลังอัปเดตรายชื่อติดต่อตามการเปลี่ยนภาษา\n\nโปรดรอสักครู่…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"รายการซ้ำ"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"เปิดลิ้นชักการนำทาง"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"ปิดลิ้นชักการนำทาง"</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="630115334220569184">"กิจกรรมและข้อความ"</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="7442308698936786415">"จัดระเบียบรายชื่อ"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"ลบรายชื่อซ้ำและจัดกลุ่มตามป้ายกำกับ"</string>
+</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
new file mode 100644
index 0000000..5217780
--- /dev/null
+++ b/res/values-tl/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Idinagdag sa mga paborito"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"I-unlink"</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_contact_action_bar" msgid="7371001434034419566">"Magdagdag ng contact"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Gumawa ng bagong…"</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="menu_joinAggregate" msgid="3599512127797513606">"I-link"</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="contactsJoinedMessage" msgid="3343535986195643136">"Na-link na ang mga contact"</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">%d</xliff:g> contact · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> na contact · <xliff:g id="ACCOUNT_3">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Ang mga 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="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 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="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="2228592924476426108">"Walang laman ang iyong listahan ng mga contact"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Walang mga label."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Upang lumikha ng mga pangkat kailangan mo ng isang account."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Nabigong i-load ang label"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Na-save 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="8121032018490980184">"Hindi ma-save ang mga pagbabago sa label."</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="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="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="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="5122118085780669813">"Lagyan 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="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="8038224059926963133">"Lagyan ng label"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"isara"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"I-link ang kasalukuyang contact sa piniling contact?"</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="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="3182801738595937144">"I-import"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Gumawa ng bagong label"</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="5058226498605989285">"Gusto mo bang i-discard ang iyong mga pagbabago at huminto sa pag-e-edit?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"I-discard"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Patuloy na mag-edit"</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="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="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="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_existing_contact" msgid="4898475703683187798">"I-edit"</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="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="288549957278065542">"Lumilikha ng personal na kopya…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Kahapon"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisasyon"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Palayaw"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Tala"</string>
+    <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_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="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="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_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="6975676844194755501">"Ina-update ang listahan ng contact upang ipakita ang pagbabago ng wika.\n\nPakihintay…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Mga Duplicate"</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="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="630115334220569184">"Mga Event at Mga 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="7442308698936786415">"Ayusin ang iyong listahan"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Linisin ang mga duplicate at igrupo ang mga contact ayon sa label"</string>
+</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
new file mode 100644
index 0000000..eb98147
--- /dev/null
+++ b/res/values-tr/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Favorilere eklendi"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Bağlantıyı kaldır"</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_contact_action_bar" msgid="7371001434034419566">"Kişi ekle"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Yeni 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="menu_joinAggregate" msgid="3599512127797513606">"Bağlantı oluştur"</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="contactsJoinedMessage" msgid="3343535986195643136">"Kişiler arasında bağlantı oluşturuldu"</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">%d</xliff:g> kişi · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kişi · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Silinecek kişiler birden fazla hesaptan ayrıntılar içeriyor. Salt okunur hesaplardaki ayrıntılar silinmeyecek, gizlenecektir."</string>
+    <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 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="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="2228592924476426108">"Kişi listeniz boş"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Etiket yok."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Grup oluşturmanız için hesap gerekir."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Etiket yüklenemedi"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Etiket kaydedildi"</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="8121032018490980184">"Etiket 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="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="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="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="5122118085780669813">"Etiket"</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="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="8038224059926963133">"Etiket"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"kapatın"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Mevcut kişi, seçili kişiye bağlansın mı?"</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="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="3182801738595937144">"İçe aktar"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Yeni etiket oluşturun"</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="5058226498605989285">"Değişiklikleriniz yok sayılsın ve düzenlemeden çıkı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="7737724111972855348">"Düzenlemeye devam et"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Kişiyi düzenle"</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="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="288549957278065542">"Kişisel kopya oluşturuluyor..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Dün"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Kuruluş"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Takma Ad"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Not"</string>
+    <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_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="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="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_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="6975676844194755501">"Kişi listesi, dil değişikliği yansıtılacak şekilde güncelleniyor.\n\nLütfen bekleyin…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Kopyalar"</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="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="630115334220569184">"Etkinlikler ve İletiler"</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="7442308698936786415">"Listenizi organize edin"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Yinelenen kişileri temizleyin ve kişileri etikete göre gruplandırın"</string>
+</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
new file mode 100644
index 0000000..e5a0b14
--- /dev/null
+++ b/res/values-uk/strings.xml
@@ -0,0 +1,367 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"Додати контакт"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Створити…"</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="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">%d</xliff:g> контакт (<xliff:g id="ACCOUNT_3">%s</xliff:g>)</item>
+      <item quantity="few"><xliff:g id="COUNT_2">%d</xliff:g> контакти (<xliff:g id="ACCOUNT_3">%s</xliff:g>)</item>
+      <item quantity="many"><xliff:g id="COUNT_2">%d</xliff:g> контактів (<xliff:g id="ACCOUNT_3">%s</xliff:g>)</item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> контакта (<xliff:g id="ACCOUNT_3">%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="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 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="2228592924476426108">"Ваш список контактів порожній"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Немає міток."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Для створення груп потрібен обліковий запис."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Немає контактів із цією міткою"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"У цьому обліковому записі немає контактів"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Ваш список контактів порожній"</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="groupLoadErrorToast" msgid="7536267148196064554">"Не вдалося завантажити мітку"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Мітку збережено"</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="8121032018490980184">"Не вдалося зберегти зміни до мітки."</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="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="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="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="5122118085780669813">"Мітка"</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="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="8038224059926963133">"Мітка"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"закрити"</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="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="3182801738595937144">"Імпортувати"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Створити мітку"</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="5058226498605989285">"Відхилити зміни та закінчити редагування?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Відхилити"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Продовжити редагування"</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="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="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="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="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="288549957278065542">"Створення особистої копії..."</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">"Чат"</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="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="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_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="6975676844194755501">"Список контактів оновлюється відповідно до зміни мови.\n\nЗачекайте…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Копії"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Відкрити панель навігації"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Закрити панель навігації"</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="630115334220569184">"Події й повідомлення"</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="7442308698936786415">"Упорядкуйте свій список контактів"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Видаліть копії та групуйте контакти за мітками"</string>
+</resources>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
new file mode 100644
index 0000000..adf405f
--- /dev/null
+++ b/res/values-ur-rPK/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"رابطہ شامل کریں"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"‏نیا بنائیں‎…‎"</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>
+    <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">%d</xliff:g> رابطے ۔ <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> رابطہ ۔ <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"آپ کے رابطوں کی فہرست خالی ہے"</string>
+    <string name="noGroups" msgid="4607906327968232225">"کوئی لیبل نہیں۔"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"گروپس بنانے کیلئے آپ کو ایک اکاؤنٹ درکار ہے۔"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"اس لیبل کے ساتھ کوئی رابطے نہیں"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"اس اکاؤنٹ میں کوئی رابطے نہیں"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"آپ کے رابطوں کی فہرست خالی ہے"</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="groupLoadErrorToast" msgid="7536267148196064554">"لیبل لوڈ ہونے میں ناکام"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"لیبل محفوظ ہو گیا"</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="8121032018490980184">"لیبل کی تبدیلیاں محفوظ نہیں ہو سکیں۔"</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="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="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="5122118085780669813">"لیبل"</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="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="8038224059926963133">"لیبل"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"بند کریں"</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="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="3182801738595937144">"درآمد کریں"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"نیا لیبل بنائیں"</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="5058226498605989285">"اپنی تبدیلیاں مسترد کریں اور ترمیم کرنا چھوڑ دیں؟"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"رد کریں"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"ترمیم کرنا جاری رکھیں"</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="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="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="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="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="288549957278065542">"ایک ذاتی کاپی بنا رہا ہے…"</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="6975676844194755501">"زبان کی تبدیلی کو منعکس کرنے کیلئے رابطہ فہرست اپ ڈیٹ ہو رہی ہے\n\nبراہ کرم انتظار کریں…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"ڈپلیکیٹس"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"نیویگیشن دراز کھولیں"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"نیویگیشن دراز بند کریں"</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="630115334220569184">"ایونٹس اور پیغامات"</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="7442308698936786415">"اپنی فہرست کو منظم کریں"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"ڈپلیکیٹس صاف کریں اور رابطوں کو بلحاظ لیبل گروپ کریں"</string>
+</resources>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
new file mode 100644
index 0000000..d140126
--- /dev/null
+++ b/res/values-uz-rUZ/strings.xml
@@ -0,0 +1,345 @@
+<?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">"Ma’lumotlarni 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="starredList" msgid="4817256136413959463">"Baho berilgan"</string>
+    <string name="frequentList" msgid="7154768136473953056">"Ko‘p gaplashilgan"</string>
+    <string name="strequentList" msgid="5640192862059373511">"Sevimlilar"</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="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">"Suratni o‘zgartirish"</string>
+    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Bosh ekranga chiqarish"</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="6696843438454341063">"Kontaktlarni olib tashlash"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Yorliqni qayta nomlash"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Yorliqni o‘chirish"</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">"Yorliqdan olib tashlash"</string>
+    <string name="menu_new_contact_action_bar" msgid="7371001434034419566">"Kontakt qo‘shish"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Yangi yorliq yaratish…"</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> bilan bog‘lamoqchi bo‘lgan kontaktni 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>
+    <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">%d</xliff:g> ta kontakt · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ta kontakt · <xliff:g id="ACCOUNT_1">%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 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="single_delete_confirmation" msgid="3106905986948679720">"Bu kontakt o‘chirib tashlansinmi?"</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">"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="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 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"</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="2228592924476426108">"Kontaktlar ro‘yxati bo‘sh"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Hech qanday yorliq yo‘q."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Guruh yaratish uchun hisobingiz bo‘lishi kerak."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Bunday yorliq bilan birorta kontakt yo‘q"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Bu hisobda hech qanday kontakt yo‘q"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Kontaktlar ro‘yxati bo‘sh"</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="groupLoadErrorToast" msgid="7536267148196064554">"Yorliqni yuklashda xatolik yuz berdi"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Yorliq saqlandi"</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">"Yorliqdan olib tashlandi"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Yorliqqa qo‘shildi"</string>
+    <string name="groupSavedErrorToast" msgid="8121032018490980184">"Yorliqdagi o‘zgarishlarni 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">"Hammasi"</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">"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 tanlash"</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="5122118085780669813">"Yorliq"</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">"<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>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <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 rasm tanlash"</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">"Hammasini belgilash"</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="8038224059926963133">"Yorliq"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"yopish"</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="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">"Kontaktlarning ko‘rinishi"</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">"Ma’lumotlarni 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">"yili bilan birga"</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="3182801738595937144">"Import qilish"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Yangi yorliq yaratish"</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‘chirilsinmi? (Kontaktlar o‘chirilmaydi.)"</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 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="5058226498605989285">"O‘zgarishlar bekor qilinib, chiqib ketilsinmi?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Bekor qilish"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Tahrirlashda davom etish"</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="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="toast_displaying_all_contacts" msgid="2737388783898593875">"Barcha kontaktlar ko‘rsatilmoqda"</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="6648376557574360096">"Kontaktlar nusxasini Google xizmatlariga 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="7192223018128934940">"Yangi kontakt qo‘shish"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Kontaktni tahrirlash"</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">"Yana"</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="288549957278065542">"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">"Ism"</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 maydonlarni ko‘rsatish"</string>
+    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Suratni 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">"Qayerga saqlansin"</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 takroriy kontakt</item>
+      <item quantity="one">1 ta takroriy 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">"Suratga olish"</string>
+    <string name="all_photos_button" msgid="1943122929420111351">"Barcha suratlar"</string>
+    <string name="photo_picker_title" msgid="5272832995550042801">"Surat 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="6975676844194755501">"O‘zgartirilgan til kuchga kirishi uchun kontaktlar ro‘yxati yangilanmoqda.\n\nIltimos, kuting…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Takroriy kontaktlar"</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="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="630115334220569184">"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="7442308698936786415">"Kontaktlarni tartibga soling"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Kontaktlarni yorliq bo‘yicha guruhlang va takroriy kontaktlarni o‘chirib tashlang"</string>
+</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
new file mode 100644
index 0000000..5ffec07
--- /dev/null
+++ b/res/values-vi/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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 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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Đã thêm vào mục ưa thích"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Hủy liên kết"</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_contact_action_bar" msgid="7371001434034419566">"Thêm liên hệ"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Tạo mới…"</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="menu_joinAggregate" msgid="3599512127797513606">"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="contactsJoinedMessage" msgid="3343535986195643136">"Đã liên kết liên hệ"</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">%d</xliff:g> liên hệ · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> liên hệ · <xliff:g id="ACCOUNT_1">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Các 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="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 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="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="2228592924476426108">"Danh sách liên hệ của bạn trống"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Không có nhãn."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Để tạo nhóm, bạn cần có tài khoản."</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Không tải được nhãn"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Đã lưu 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="8121032018490980184">"Không thể lưu thay đổi đối với nhãn."</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="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="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="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="5122118085780669813">"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="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="8038224059926963133">"Nhãn"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"đóng"</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="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="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 liên 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="3182801738595937144">"Nhập"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Tạo nhãn mới"</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="5058226498605989285">"Hủy các thay đổi của bạn và thoát chỉnh sửa?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Hủy"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Tiếp tục chỉnh sửa"</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="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="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="6648376557574360096">"Hãy dành một phút để 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_existing_contact" msgid="4898475703683187798">"Chỉnh sửa liên hệ"</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="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="288549957278065542">"Đang tạo bản sao cá nhân..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Hôm qua"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Tổ chức"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Biệt hiệu"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Ghi chú"</string>
+    <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_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="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="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_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="6975676844194755501">"Danh bạ đang được cập nhật để phản ánh thay đổi ngôn ngữ.\n\nVui lòng đợi…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Liên hệ trùng lặp"</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="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="630115334220569184">"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="7442308698936786415">"Sắp xếp danh sách của bạn"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Xóa liên hệ trùng lặp và nhóm các liên hệ theo nhãn"</string>
+</resources>
diff --git a/res/values-w470dp/dimens.xml b/res/values-w470dp/dimens.xml
new file mode 100644
index 0000000..2c04e5d
--- /dev/null
+++ b/res/values-w470dp/dimens.xml
@@ -0,0 +1,28 @@
+<?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-w500dp-land/bools.xml b/res/values-w500dp-land/bools.xml
new file mode 100644
index 0000000..65174ba
--- /dev/null
+++ b/res/values-w500dp-land/bools.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.
+-->
+<resources>
+
+    <bool name="quickcontact_two_panel">true</bool>
+
+</resources>
diff --git a/res/values-w590dp/dimens.xml b/res/values-w590dp/dimens.xml
new file mode 100644
index 0000000..2fff6ca
--- /dev/null
+++ b/res/values-w590dp/dimens.xml
@@ -0,0 +1,28 @@
+<?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/strings.xml b/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..ffafef7
--- /dev/null
+++ b/res/values-zh-rCN/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"添加联系人"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"新建…"</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>
+    <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">%d</xliff:g> 位联系人 · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> 位联系人 · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"联系人列表是空的"</string>
+    <string name="noGroups" msgid="4607906327968232225">"没有标签。"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"您需要拥有一个帐号才能创建群组。"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"此标签下没有联系人"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"此帐号中没有联系人"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"联系人列表是空的"</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="groupLoadErrorToast" msgid="7536267148196064554">"无法加载标签"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"标签已保存"</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="8121032018490980184">"无法保存对标签的修改。"</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="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="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="5122118085780669813">"标签"</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="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="8038224059926963133">"标签"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"关闭"</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="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="3182801738595937144">"导入"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"创建新标签"</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="5058226498605989285">"要舍弃您所做的更改并停止修改吗?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"舍弃"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"继续修改"</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="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="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="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="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="288549957278065542">"正在创建个人副本..."</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">"聊天工具"</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">"请将联系人的环聊帐号信息输入到电子邮件地址字段或电话号码字段,以便获得更佳的环聊使用体验。"</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="6975676844194755501">"正在更新联系人列表,以反映语言的变更。\n\n请稍候…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"重复的联系人"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"打开抽屉式导航栏"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"关闭抽屉式导航栏"</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="630115334220569184">"活动和信息"</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="7442308698936786415">"整理列表"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"清除重复的联系人并按标签将联系人分组"</string>
+</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..03c4931
--- /dev/null
+++ b/res/values-zh-rHK/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"新增聯絡人"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"建立新…"</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>
+    <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">%d</xliff:g> 位聯絡人 · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> 位聯絡人 · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"您的聯絡人名單是空白的"</string>
+    <string name="noGroups" msgid="4607906327968232225">"無標籤。"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"如要建立群組,您需要有一個帳戶。"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"沒有任何聯絡人有此標籤"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"此帳戶中沒有聯絡人"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"您的聯絡人名單是空白的"</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="groupLoadErrorToast" msgid="7536267148196064554">"無法載入標籤"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"已儲存標籤"</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="8121032018490980184">"無法儲存標籤變更。"</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="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="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="5122118085780669813">"標籤"</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="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="8038224059926963133">"標籤"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"關閉"</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="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="3182801738595937144">"匯入"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"建立新標籤"</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="5058226498605989285">"要捨棄變更並停止編輯嗎?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"捨棄"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"繼續編輯"</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="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="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="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="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="288549957278065542">"正在建立個人副本…"</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">"即時通訊"</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">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="6975676844194755501">"正在更新聯絡人名單以反映語言變更。\n\n請稍候…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"重複"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"開啟導覽匣"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"關閉導覽匣"</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="630115334220569184">"活動和訊息"</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="7442308698936786415">"整理名單"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"清理重複項目並依照標籤將聯絡人分組"</string>
+</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..58f3aac
--- /dev/null
+++ b/res/values-zh-rTW/strings.xml
@@ -0,0 +1,345 @@
+<?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="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="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="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_contact_action_bar" msgid="7371001434034419566">"新增聯絡人"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"新建..."</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>
+    <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">%d</xliff:g> 位聯絡人 · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> 位聯絡人 · <xliff:g id="ACCOUNT_1">%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="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 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="2228592924476426108">"您的聯絡人清單沒有任何項目"</string>
+    <string name="noGroups" msgid="4607906327968232225">"沒有任何標籤。"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"必須要有帳戶才能建立群組。"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"沒有任何聯絡人設有這個標籤"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"這個帳戶中沒有聯絡人"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"您的聯絡人清單沒有任何項目"</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="groupLoadErrorToast" msgid="7536267148196064554">"無法載入標籤"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"已儲存標籤"</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="8121032018490980184">"無法儲存標籤的變更內容。"</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="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="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="5122118085780669813">"標籤"</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="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="8038224059926963133">"標籤"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"關閉"</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="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="3182801738595937144">"匯入"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"建立新標籤"</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="5058226498605989285">"確定要捨棄變更並結束編輯嗎?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"捨棄"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"繼續編輯"</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="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="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="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="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="288549957278065542">"正在建立個人副本…"</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">"即時訊息"</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">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="6975676844194755501">"正在更新聯絡人清單以反映語言變更。\n\n請稍候…"</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"重複的聯絡人"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"開啟導覽匣"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"關閉導覽匣"</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="630115334220569184">"活動和訊息"</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="7442308698936786415">"管理您的清單"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"清除重複的聯絡人並按標籤將聯絡人分組"</string>
+</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
new file mode 100644
index 0000000..81745fd
--- /dev/null
+++ b/res/values-zu/strings.xml
@@ -0,0 +1,345 @@
+<?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">"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="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="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="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>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Kungezwe ezintandokazini"</string>
+    <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_splitAggregate" msgid="2627252205317945563">"Susa ukuxhumanisa"</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_contact_action_bar" msgid="7371001434034419566">"Engeza oxhumana naye"</string>
+    <string name="menu_new_group_action_bar" msgid="8726987769872493051">"Dala amasha…"</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="menu_joinAggregate" msgid="3599512127797513606">"Isixhumanisi"</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="contactsJoinedMessage" msgid="3343535986195643136">"Oxhumana nabo baxhunyiwe"</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">%d</xliff:g> oxhumana nabo · <xliff:g id="ACCOUNT_3">%s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> oxhumana nabo · <xliff:g id="ACCOUNT_3">%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="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>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Oxhumana nabo abazosuswa banemininingwane esuka kuma-akhawunti amaningi. Imininingwane esuka kuma-akhawunti wokufunda kuphela izofihlwa, ngeke isuswe."</string>
+    <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 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="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="2228592924476426108">"Uhlu lwakho loxhumana nabo alunalutho"</string>
+    <string name="noGroups" msgid="4607906327968232225">"Awekho amalebula."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Ukuze wakhe iqembu udinga i-akhawunti"</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="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="groupLoadErrorToast" msgid="7536267148196064554">"Yehlulekile ukulayisha ilebula"</string>
+    <string name="groupSavedToast" msgid="6491495462357722285">"Ilebula ilondoloziwe"</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="8121032018490980184">"Ayikwazanga ukulondoloza ushintsho lwelebula."</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="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="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="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="5122118085780669813">"Ilebula"</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="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="8038224059926963133">"Ilebula"</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="action_menu_back_from_edit_select" msgid="6435476408621731420">"vala"</string>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Xhuma oxhumana naye wamanje noxhumana naye okhethiwe?"</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="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="3182801738595937144">"Ngenisa"</string>
+    <string name="create_group_dialog_title" msgid="5363404287877384473">"Dala ilebula entsha"</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="5058226498605989285">"Lahla izinguquko zakho bese uyeke ukuhlela?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Lahla"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="7737724111972855348">"Qhubeka uhlela"</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="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="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="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_existing_contact" msgid="4898475703683187798">"Hlela oxhumana naye"</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="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="288549957278065542">"Idala ikhophi yomuntu siqu"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Izolo"</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="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>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Inhlangano"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Igama lokudlala"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Inothi"</string>
+    <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_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="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="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_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="6975676844194755501">"Uhlu loxhumana nabo liyabuyekezwa ukuze libonise ushintsho lolimi.\n\nSicela ulinde..."</string>
+    <string name="menu_duplicates" msgid="4129802988372197257">"Impinda"</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="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="630115334220569184">"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="7442308698936786415">"Hlela uhlu lwakho"</string>
+    <string name="hamburger_feature_highlight_body" msgid="6268711111318172098">"Hlanza izimpinda noxhumana nabo beqembu ngelebulli"</string>
+</resources>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
new file mode 100644
index 0000000..86c46fc
--- /dev/null
+++ b/res/values/attrs.xml
@@ -0,0 +1,52 @@
+<?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.
+-->
+<resources>
+    <!-- Maps a contact kind or mime-type to a RemoteViews XML formatter -->
+    <declare-styleable name="Mapping">
+        <!-- Mime-type handled by this mapping -->
+        <attr name="mimeType" format="string"/>
+        <!-- RemoteViews XML that should be used to format this data -->
+        <attr name="remoteViews" 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 -->
+        <attr name="detailColumn" format="string"/>
+    </declare-styleable>
+
+    <declare-styleable name="EdgeTriggerView">
+        <attr name="edgeWidth" format="dimension"/>
+        <attr name="listenEdges">
+            <flag name="left" value="0x01"/>
+            <flag name="right" value="0x02"/>
+        </attr>
+    </declare-styleable>
+
+    <declare-styleable name="InterpolatingLayout_Layout">
+        <attr name="layout_narrowParentWidth" format="dimension"/>
+        <attr name="layout_narrowWidth" format="dimension"/>
+        <attr name="layout_narrowMarginLeft" format="dimension"/>
+        <attr name="layout_narrowMarginRight" format="dimension"/>
+        <attr name="layout_narrowPaddingLeft" format="dimension"/>
+        <attr name="layout_narrowPaddingRight" format="dimension"/>
+        <attr name="layout_wideParentWidth" format="dimension"/>
+        <attr name="layout_wideWidth" format="dimension"/>
+        <attr name="layout_wideMarginLeft" format="dimension"/>
+        <attr name="layout_wideMarginRight" format="dimension"/>
+        <attr name="layout_widePaddingLeft" format="dimension"/>
+        <attr name="layout_widePaddingRight" format="dimension"/>
+    </declare-styleable>
+
+</resources>
diff --git a/res/values/bools.xml b/res/values/bools.xml
new file mode 100644
index 0000000..eef3808
--- /dev/null
+++ b/res/values/bools.xml
@@ -0,0 +1,22 @@
+<?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>
+
+    <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
new file mode 100644
index 0000000..f5bf4cc
--- /dev/null
+++ b/res/values/colors.xml
@@ -0,0 +1,86 @@
+<?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>
+
+    <color name="quickcontact_name_detail_background">#66000000</color>
+    <color name="quickcontact_entry_sub_header_text_color">#737373</color>
+    <color name="quickcontact_entry_header_text_color">#202020</color>
+
+    <color name="action_bar_background">#0288d1</color>
+
+    <color name="nav_item_selected_background">#0f000000</color>
+
+    <color name="background_social_updates">#ffeeeeee</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">#f6f6f6</color>
+    <!-- Color of the status bar above the contextual selection bar. -->
+    <color name="contextual_selection_bar_status_bar_color">#bababa</color>
+
+    <color name="primary_color_dark">#0277bd</color>
+    <color name="primary_color">#0288d1</color>
+
+    <!-- Color of the selected tab underline -->
+    <color name="contacts_accent_color">#FFFFFF</color>
+
+    <color name="floating_action_button_icon_color">@color/contacts_accent_color</color>
+
+    <!-- Horizontal separator line should be 12% dark in the light theme. -->
+    <color name="divider_line_color_light">#e0e0e0</color>
+
+    <!-- Color of the text on an ExpandingEntryCard button -->
+    <color name="expanding_entry_card_button_text_color">@android:color/black</color>
+
+    <!-- Background color for an ExpandingEntryCard -->
+    <color name="expanding_entry_card_background_color">#ffffff</color>
+
+    <!-- Color of the margin for cards -->
+    <color name="card_margin_color">#f4f4f4</color>
+
+    <color name="call_arrow_green">#2aad6f</color>
+    <color name="call_arrow_red">#ff2e58</color>
+
+    <!-- Background color of pinned header items. -->
+    <color name="list_item_pinned_header_color">@color/background_primary</color>
+
+    <!-- Color of the mime-type icons inside the editor. 50% black. -->
+    <color name="editor_icon_color">#7f7f7f</color>
+
+    <!-- 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 background of all empty states. -->
+    <color name="empty_state_background">#efefef</color>
+
+    <!-- Color of hamburger icon in promo -->
+    <color name="hamburger_feature_highlight_inner_color">#00ffffff</color>
+</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
new file mode 100644
index 0000000..a73e449
--- /dev/null
+++ b/res/values/dimens.xml
@@ -0,0 +1,324 @@
+<?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>
+    <dimen name="account_selector_popup_width">400dip</dimen>
+
+    <!-- Account info left margin in Compact editor. -->
+    <dimen name="compact_editor_account_left_margin">4dp</dimen>
+
+    <!-- Initial height of transparent space above QuickContacts -->
+    <dimen name="quickcontact_starting_empty_height">150dp</dimen>
+    <!-- Initial size of QuickContact's title size -->
+    <dimen name="quickcontact_maximum_title_size">32dp</dimen>
+    <!-- Initial size of QuickContact's phonetic name size -->
+    <dimen name="quickcontact_maximum_phonetic_name_size">28dp</dimen>
+    <!-- When QC is uncollapsed, the title has this much margin on its left and right. -->
+    <dimen name="quickcontact_title_initial_margin">16dp</dimen>
+    <!-- When QC is uncollapsed, the title has this much margin on its bottom -->
+    <dimen name="quickcontact_title_initial_bottom_margin">8dp</dimen>
+    <!-- The ratio of width:height for the contact's photo in landscape -->
+    <item name="quickcontact_landscape_photo_ratio" type="dimen" format="float">0.7</item>
+    <!-- How far QuickContacts can be dragged and released from the top of the window before we dismiss it. -->
+    <dimen name="quickcontact_dismiss_distance_on_release">40dp</dimen>
+    <!-- How far QuickContacts can be dragged from the top of the window before we dismiss it. -->
+    <dimen name="quickcontact_dismiss_distance_on_scroll">100dp</dimen>
+    <!-- When first flinging QuickContacts towards the top of the window if the fling is
+        predicted to scroll past the window top by less than this amount, then QuickContacts
+        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 -->
+    <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  -->
+    <dimen name="editor_round_button_padding_left">16dip</dimen>
+    <dimen name="editor_round_button_padding_right">16dip</dimen>
+    <dimen name="editor_round_button_padding_top">16dip</dimen>
+    <dimen name="editor_round_button_padding_bottom">16dip</dimen>
+
+    <!-- Minimum height of a row in the Editor. This is the target height for editor "rows",
+        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>
+
+    <!-- Top margin applied to mime-type icons inside the editor. This is needed to give the
+        appearance that the icons are top aligned with the text, since visible text doesn't
+        start at the very top of TextViews. -->
+    <dimen name="editor_kind_icon_top_margin">14dp</dimen>
+
+    <!-- RHS padding added to spinners in the editor. This separates the spinner text from the
+        spinner graphic since b/18194928 causes the spinner to always be on the RHS.
+        In LTR mode this shouldn't have an observable affect. We set paddingRight instead of
+        drawablePadding since the spinner graphic is not a normal drawable.  -->
+    <dimen name="editor_spinner_right_padding_workaround">24dip</dimen>
+
+    <!-- RHS padding added to spinners for L devices -->
+    <dimen name="editor_spinner_right_padding">40dip</dimen>
+
+    <!-- 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>
+
+    <!-- Padding below every editor view, such as LabeledEditorView. This value is chosen
+        to give 19dp of apparent padding between EditText's in the Raw Contact Editor. -->
+    <dimen name="editor_padding_between_editor_views">2dp</dimen>
+
+    <!-- Padding below every readonly editor view. This value is chosen to give 19dp of apparent
+        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>
+
+    <!-- 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 height of a row in the contact detail -->
+    <dimen name="detail_min_line_item_height">48dip</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>
+
+    <!-- Account title left padding -->
+    <dimen name="account_container_left_padding">16dip</dimen>
+
+    <!-- Left and right padding for the group editor view -->
+    <dimen name="group_editor_side_padding">16dip</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>
+
+    <!-- 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="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>
+
+    <!-- Elevation of an ExpandingEntryCard, for the sake of shadow casting -->
+    <dimen name="expanding_entry_card_elevation">2dp</dimen>
+    <!-- Elevation of the QuickContact's Toolbar, for the sake of shadow casting -->
+    <dimen name="quick_contact_toolbar_elevation">4.5dp</dimen>
+
+    <!-- Size of the title text for a ExpandingEntryCardView -->
+    <dimen name="expanding_entry_card_title_text_size">16sp</dimen>
+    <!-- Padding for the title text for a ExpandingEntryCardView -->
+    <dimen name="expanding_entry_card_title_padding">16dp</dimen>
+    <!-- Extra top padding if the title is set to null -->
+    <dimen name="expanding_entry_card_null_title_top_extra_padding">2dp</dimen>
+
+    <!-- Height of the separator between entries in an ExpandingEntryCardView and contact editor. -->
+    <dimen name="divider_line_height">1dp</dimen>
+
+    <!-- Dimensions for an entry in ExpandingEntryCardView -->
+    <dimen name="expanding_entry_card_item_padding_start">20dp</dimen>
+    <dimen name="expanding_entry_card_item_padding_end">8dp</dimen>
+    <dimen name="expanding_entry_card_item_padding_top">13dp</dimen>
+    <dimen name="expanding_entry_card_item_padding_bottom">16dp</dimen>
+    <dimen name="expanding_entry_card_item_image_spacing">27dp</dimen>
+
+    <!-- Dimensions for a button in ExpandingEntryCardView -->
+    <dimen name="expanding_entry_card_button_padding_vertical">18dp</dimen>
+
+    <dimen name="expanding_entry_card_item_text_icon_margin_top">7dp</dimen>
+    <dimen name="expanding_entry_card_item_text_icon_margin_right">7dp</dimen>
+    <dimen name="expanding_entry_card_item_sub_header_icon_margin_right">4dp</dimen>
+    <dimen name="expanding_entry_card_item_sub_header_icon_margin_bottom">14dp</dimen>
+
+    <dimen name="expanding_entry_card_item_icon_margin_top">12dp</dimen>
+    <dimen name="expanding_entry_card_item_icon_margin_bottom">12dp</dimen>
+    <dimen name="expanding_entry_card_item_icon_margin_left">12dp</dimen>
+    <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 -->
+    <dimen name="expanding_entry_card_item_header_only_margin_bottom">2dp</dimen>
+    <dimen name="expanding_entry_card_item_no_icon_margin_top">6dp</dimen>
+
+    <dimen name="quickcontact_suggestion_card_icon_height">40dp</dimen>
+    <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>
+    <dimen name="quickcontact_collapse_image_padding">20dp</dimen>
+    <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>
+
+    <!-- Top margin of the text message when provider status is busy -->
+    <dimen name="update_contact_list_top_margin">188dp</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>
+
+    <dimen name="contact_browser_list_item_height">56dp</dimen>
+
+    <!-- Ideal item width in photo picker -->
+    <dimen name="photo_picker_item_ideal_width">135dp</dimen>
+
+    <!-- Margin between name field and whatever fields are above it. -->
+    <dimen name="compact_editor_name_top_margin">8dp</dimen>
+
+    <!-- Top margin for "Saving to" account header text field. -->
+    <dimen name="compact_editor_account_header_top_margin">3dp</dimen>
+
+    <!-- Navigation drawer header height, the same as the status bar in landscape and portrait modes -->
+    <dimen name="nav_header_height">24dp</dimen>
+
+    <!-- Navigation drawer margins, per the Android Design guidelines. -->
+    <dimen name="nav_activity_horizontal_margin">16dp</dimen>
+    <dimen name="nav_activity_vertical_margin">16dp</dimen>
+
+    <!-- Top padding for the image for empty group view -->
+    <dimen name="empty_group_view_image_padding_top">8dp</dimen>
+
+    <!-- Height for the image for empty group and main 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>
+
+    <!-- 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="group_name_edit_text_min_height">48dp</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>
+</resources>
diff --git a/res/values/donottranslate_config.xml b/res/values/donottranslate_config.xml
new file mode 100644
index 0000000..bfe7880
--- /dev/null
+++ b/res/values/donottranslate_config.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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>
+
+    <!-- If true, phonetic name is included in the contact editor by default -->
+    <bool name="config_editor_include_phonetic_name">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>
+</resources>
diff --git a/res/values/ids.xml b/res/values/ids.xml
new file mode 100644
index 0000000..f5649d9
--- /dev/null
+++ b/res/values/ids.xml
@@ -0,0 +1,55 @@
+<?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.
+-->
+<resources>
+    <!-- The EditText for entries in the ContactEditFragment -->
+    <item type="id" name="data"/>
+    <item type="id" name="header_phones"/>
+    <item type="id" name="dialog_sync_add"/>
+
+    <!-- For ContactDeletionInteraction -->
+    <item type="id" name="dialog_delete_contact_loader_id" />
+
+    <!-- For ContactMultiDeletionInteraction -->
+    <item type="id" name="dialog_delete_multiple_contact_loader_id" />
+
+    <!-- For PhoneNumberInteraction -->
+    <item type="id" name="dialog_phone_number_call_disambiguation"/>
+
+    <!-- For PhoneNumberMessageSendInteraction -->
+    <item type="id" name="dialog_phone_number_message_disambiguation"/>
+
+    <!-- Dialog Manager Ids -->
+    <item type="id" name="dialog_manager_id_1"/>
+    <item type="id" name="dialog_manager_id_2"/>
+
+    <!-- Loader ID for contact filters -->
+    <item type="id" name="contact_list_filter_loader" />
+
+    <!-- Dialog ID for the date picker in event (birthday) editors -->
+    <item type="id" name="dialog_event_date_picker" />
+
+    <!-- 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 group ID for the contact groups -->
+    <item type="id" name="nav_groups_items" />
+
+    <!-- Menu group ID for the contact filters -->
+    <item type="id" name="nav_filters_items" />
+</resources>
diff --git a/res/values/integers.xml b/res/values/integers.xml
new file mode 100644
index 0000000..60034e5
--- /dev/null
+++ b/res/values/integers.xml
@@ -0,0 +1,39 @@
+<?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>
+
+    <!-- Number of lines the QuickContact title can have -->
+    <integer name="quickcontact_title_lines">1</integer>
+
+    <!-- Max suggestions limit showing in quick contact suggestion card -->
+    <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>
+</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
new file mode 100644
index 0000000..909b684
--- /dev/null
+++ b/res/values/strings.xml
@@ -0,0 +1,966 @@
+<?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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+    <!-- Application name used in Settings/Apps. Default label for activities
+         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 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>
+
+    <!-- Name of activity that allows users to create shortcuts on the home screen to dial a contact.
+         This shows up in a list of things like bookmark, folder, music playlist, etc -->
+    <string name="shortcutDialContact">Direct dial</string>
+
+    <!-- Name of activity that allows users to create shortcuts on the home screen to message (SMS) a contact.
+         This shows up in a list of things like bookmark, folder, music playlist, etc -->
+    <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>
+
+    <!-- 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>
+
+    <!-- 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 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>
+
+    <!-- Menu item used to remove a star from a contact, making the contact no longer show up at the top of favorites -->
+    <string name="menu_removeStar">Remove from favorites</string>
+
+    <!-- Description of what happens when you click on the unstar MenuItem. [CHAR LIMIT=NONE] -->
+    <string name="description_action_menu_remove_star">Removed from favorites</string>
+    <!-- Description of what happens when you click on the star MenuItem. [CHAR LIMIT=NONE] -->
+    <string name="description_action_menu_add_star">Added to favorites</string>
+
+    <!-- Menu item used to edit a specific contact -->
+    <string name="menu_editContact">Edit</string>
+
+    <!-- Menu item used to delete a specific contact -->
+    <string name="menu_deleteContact">Delete</string>
+
+    <!-- Menu item used to change the photo for a specific contact [CHAR LIMIT=30]-->
+    <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>
+
+    <!-- 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 label [CHAR LIMIT=30] -->
+    <string name="menu_editGroup">Remove contacts</string>
+
+    <!-- Menu item to rename the currently selected label [CHAR LIMIT=30] -->
+    <string name="menu_renameGroup">Rename label</string>
+
+    <!-- Menu item that deletes the currently selected label [CHAR LIMIT=30] -->
+    <string name="menu_deleteGroup">Delete label</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 contact [CHAR LIMIT=30] -->
+    <string name="menu_new_contact_action_bar">Add contact</string>
+
+    <!-- Menu item (in the action bar) that creates a new label [CHAR LIMIT=30] -->
+    <string name="menu_new_group_action_bar">Create new&#8230;</string>
+
+    <!-- Confirmation dialog for unlinking contacts into multiple instances [CHAR LIMIT=NONE] -->
+    <string name="splitConfirmation">Unlink this contact into multiple contacts?</string>
+
+    <!-- Positive button text from the confirmation dialog for unlinking contacts [CHAR LIMIT = 30] -->
+    <string name="splitConfirmation_positive_button">Unlink</string>
+
+    <!-- Confirmation dialog for unlinking contacts into multiple instances when there are also unsaved changes for the current contact. [CHAR LIMIT=NONE] -->
+    <string name="splitConfirmationWithPendingChanges">Would you like to save the changes you already made and unlink this contact into multiple contacts?</string>
+
+    <!-- Positive button text from the confirmation dialog for unlinking contacts with pending changes [CHAR LIMIT = 60] -->
+    <string name="splitConfirmationWithPendingChanges_positive_button">Save and Unlink</string>
+
+    <!-- Confirmation dialog message for joining contacts when there are unsaved changes. [CHAR LIMIT=NONE] -->
+    <string name="joinConfirmation">Would you like to save the changes you already made and link with the contact selected?</string>
+
+    <!-- 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>
+
+    <!-- Menu item that links an aggregate with another aggregate -->
+    <string name="menu_joinAggregate">Link</string>
+
+    <!-- Menu item (in the action bar) to indicate that changes should be saved [CHAR LIMIT=20] -->
+    <string name="menu_save">Save</string>
+
+    <!-- Heading of the Link Contact screen -->
+    <string name="titleJoinContactDataWith">Link contacts</string>
+
+    <!-- Info blurb on the Link Contact screen [CHAR LIMIT=NONE]-->
+    <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] -->
+    <string name="contactsJoinedMessage">Contacts linked</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>
+
+    <!-- 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">%d</xliff:g> contact · <xliff:g id="account">%s</xliff:g></item>
+        <item quantity="other"><xliff:g id="count">%d</xliff:g> contacts · <xliff:g id="account">%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 that opens the Options activity 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>
+
+    <!-- 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>
+
+    <!-- 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>
+
+    <!-- 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>
+
+    <!-- Confirmation dialog. Shown after user selects to delete one writable contact [CHAR LIMIT=NONE]  -->
+    <string name="single_delete_confirmation">Delete this contact?</string>
+
+    <!-- Confirmation dialog. Shown after user selects to delete multimple writable contacts. [CHAR LIMIT=NONE]  -->
+    <string name="batch_delete_confirmation">Delete selected contacts?</string>
+
+    <!-- Confirmation dialog. Shown after user selects to delete readonly contacts. [CHAR LIMIT=NONE] -->
+    <string name="batch_delete_read_only_contact_confirmation">Contacts from your read-only accounts cannot be deleted, but they can be hidden.</string>
+
+    <!-- Confirmation dialog. Shown after user selects to delete contacts from multiple accounts. [CHAR LIMIT=NONE]  -->
+    <string name="batch_delete_multiple_accounts_confirmation">The contacts to be deleted have details from multiple accounts. Details from read-only accounts will be hidden, not deleted.</string>
+
+    <!-- Warning dialog contents after users selects to delete a contact with multiple Writable sources. -->
+    <string name="multipleContactDeleteConfirmation">Deleting this contact will delete details from multiple accounts.</string>
+
+    <!-- Confirmation dialog contents after users selects to delete a Writable contact. -->
+    <string name="deleteConfirmation">Delete this contact?</string>
+
+    <!-- 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>
+
+    <!-- Message without name displayed in a toast after you create a contact shortcut in the launcher [CHAR LIMIT=NONE]-->
+    <string name="createContactShortcutSuccessful_NoName">Contact added to Home screen.</string>
+
+    <!-- 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/>
+
+    <!-- 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>
+
+    <!-- Description used in the attach photo Intent from third party apps [CHAR LIMIT=50] -->
+    <string name="attach_photo_dialog_title">Contact photo</string>
+
+    <!-- Title of the dialog used to set a custom label for a contact detail, like a phone number or email address.
+         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">Your contacts list is empty</string>
+
+    <!-- The text displayed when the labels list is empty while displaying all labels [CHAR LIMIT=30] -->
+    <string name="noGroups">No labels.</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 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 there's no contacts in this account [CHAR LIMIT=70] -->
+    <string name="emptyAccount">No contacts in this account</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>
+
+    <!-- Toast displayed when a contact is saved [CHAR LIMIT=NONE] -->
+    <string name="contactSavedToast">Contact saved</string>
+
+    <!-- Toast displayed when linked contacts get unlinked [CHAR LIMIT=NONE] -->
+    <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>
+
+    <!-- Toast displayed when unlinking a contact failed. [CHAR LIMIT=NONE] -->
+    <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>
+
+    <!-- Generic error default clause displayed when saving a contact failed. [CHAR LIMIT=NONE] -->
+    <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>
+
+    <!-- Toast displayed when something goes wrong while loading a label. [CHAR LIMIT=70] -->
+    <string name="groupLoadErrorToast">Failed to load label</string>
+
+    <!-- Toast displayed when a label is saved [CHAR LIMIT=30] -->
+    <string name="groupSavedToast">Label saved</string>
+
+    <!-- Toast displayed when a label name is deleted. [CHAR LIMIT=50] -->
+    <string name="groupDeletedToast">Label deleted</string>
+
+    <!-- Toast displayed when a new label name is created. [CHAR LIMIT=50] -->
+    <string name="groupCreatedToast">Label created</string>
+
+    <!-- Toast displayed when a new label name cannot be created. [CHAR LIMIT=50] -->
+    <string name="groupCreateFailedToast">Can\'t create label</string>
+
+    <!-- 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>
+
+    <!-- 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>
+
+    <!-- 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>
+
+    <!-- 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>
+
+    <!-- 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>
+
+    <!-- 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>
+
+    <!-- When a contact has no data, we prompt the user to add a phone number for the contact. [CHAR LIMIT=40] -->
+    <string name="quickcontact_add_phone_number">Add phone number</string>
+    <!-- When a contact has no data, we prompt the user to add an email for the contact. [CHAR LIMIT=40] -->
+    <string name="quickcontact_add_email">Add email</string>
+
+    <!-- Shown as a toast when the user attempts an action (add contact, edit
+         contact, etc) and no application was found that could perform that
+         action. [CHAR LIMIT=NONE] -->
+    <string name="missing_app">No app was found to handle this action.</string>
+
+    <!-- The menu item to share the currently viewed contact [CHAR LIMIT=30] -->
+    <string name="menu_share">Share</string>
+
+    <!-- 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>
+
+    <!-- The menu item to add the the currently selected contacts to a label [CHAR LIMIT=10] -->
+    <string name="menu_add_contacts">Add</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</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>
+
+    <!-- An option in the 'Contact photo' dialog, if there is no photo yet [CHAR LIMIT=50] -->
+    <string name="take_photo">Take photo</string>
+
+    <!-- An option in the 'Contact photo' dialog, if there is already a photo [CHAR LIMIT=50] -->
+    <string name="take_new_photo">Take new photo</string>
+
+    <!-- An option in the 'Contact photo' dialog, if there is no photo yet [CHAR LIMIT=50] -->
+    <string name="pick_photo">Choose photo</string>
+
+    <!-- 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 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>
+
+    <!-- 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>
+
+    <!-- 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>
+
+    <!-- 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_join_dialog_message">Link
+        the current contact with the selected 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_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 label "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>
+
+    <!-- Title of the settings activity [CHAR LIMIT=64] -->
+    <string name="activity_title_settings">Settings</string>
+
+    <!-- Menu item for the settings activity [CHAR LIMIT=64] -->
+    <string name="menu_settings" msgid="377929915873428211">Settings</string>
+
+    <!-- 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>
+
+    <!-- Title shown for the phone number when the number tries to call on a device that it not a phone [CHAR LIMIT=30] -->
+    <string name="non_phone_caption">Phone number</string>
+
+    <!-- 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</string>
+
+    <!-- Title of the dialog that allows creation of a contact label [CHAR LIMIT=50] -->
+    <string name="create_group_dialog_title">Create new label</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>
+
+    <!-- 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>
+
+    <!-- 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
+      with another.
+    </string>
+
+    <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
+    <string name="copy_text">Copy to clipboard</string>
+
+    <!-- Option displayed in context menu to set long pressed item as default contact method [CHAR LIMIT=64] -->
+    <string name="set_default">Set default</string>
+
+    <!-- Option displayed in context menu to clear long pressed item as default contact method [CHAR LIMIT=64] -->
+    <string name="clear_default">Clear default</string>
+
+    <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
+    <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 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
+      made and close the editor. [CHAR LIMIT=20] -->
+    <string name="cancel_confirmation_dialog_cancel_editing_button">Discard</string>
+
+    <!-- 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">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>
+
+    <!-- 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">Search contacts</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>
+
+    <!-- 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">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>
+
+    <!-- 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
+         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>
+
+    <!-- Title of the ContactEditorActivity 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 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>
+
+    <!-- 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] -->
+    <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>
+    <!-- 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>
+
+    <!-- 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&#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>
+    <!-- Text for an event starting on the current day with a start and end time.
+         For ex, "Today at 5:00pm-6:00pm" [CHAR LIMIT=NONE] -->
+    <string name="today_at_time_fmt">"Today at <xliff:g id="time_interval">%s</xliff:g>"</string>
+    <!-- Text for an event starting on the next day with a start and end time.
+         For ex, "Tomorrow at 5:00pm-6:00pm" [CHAR LIMIT=NONE] -->
+    <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>
+    <!-- Title for untitled calendar interactions [CHAR LIMIT=40] -->
+    <string name="untitled_event">(Untitled event)</string>
+
+    <!-- Name of the button in the date/time picker to accept the date/time change [CHAR LIMIT=15] -->
+    <string name="date_time_set">Set</string>
+
+    <!-- Header for the IM entry [CHAR LIMIT=40] -->
+    <string name="header_im_entry">IM</string>
+    <!-- Header for the Organization entry [CHAR LIMIT=40] -->
+    <string name="header_organization_entry">Organization</string>
+    <!-- Header for the Nickname entry [CHAR LIMIT=40] -->
+    <string name="header_nickname_entry">Nickname</string>
+    <!-- Header for the Note entry [CHAR LIMIT=40] -->
+    <string name="header_note_entry">Note</string>
+    <!-- Header for the Website entry [CHAR LIMIT=40] -->
+    <string name="header_website_entry">Website</string>
+    <!-- Header for the Event entry [CHAR LIMIT=40] -->
+    <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>
+
+    <!-- Header for the Relation entry [CHAR LIMIT=NONE] -->
+    <string name="content_description_recent_call_type_incoming">incoming</string>
+    <!-- Header for the Relation entry [CHAR LIMIT=NONE] -->
+    <string name="content_description_recent_call_type_outgoing">outgoing</string>
+    <!-- Header for the Relation entry [CHAR LIMIT=NONE] -->
+    <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>
+
+    <!-- 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 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 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>
+
+    <!-- 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>
+
+    <!-- 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>
+
+    <!-- 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>
+
+    <!-- Button used in quick contact suggestion card to link selected contacts. [CHAR LIMIT=30]-->
+    <string name="quickcontact_suggestion_link_button">LINK CONTACTS</string>
+
+    <!-- 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>
+
+    <!-- "Duplicates" title showing in suggestion card in Quick contact. [CHAR LIMIT=30]-->
+    <string name="suggestion_card_duplicates_title">Possible duplicates</string>
+
+    <!-- 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>
+
+    <!-- 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>
+
+    <!-- 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>
+
+    <!-- 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>
+
+    <!-- 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>
+
+    <!-- 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&#8230;</string>
+
+    <!-- The menu item to open the link/merge duplicates activity. [CHAR LIMIT=20]-->
+    <string name="menu_duplicates">Duplicates</string>
+
+    <!-- Open drawer content descriptions [CHAR LIMIT=40] -->
+    <string name="navigation_drawer_open">Open navigation drawer</string>
+
+    <!-- Close drawer content descriptions [CHAR LIMIT=40] -->
+    <string name="navigation_drawer_close">Close navigation drawer</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">Organize your list</string>
+    <!-- The body text for hamburger promo [CHAR LIMIT=200]-->
+    <string name="hamburger_feature_highlight_body">Clean up duplicates &amp; group contacts by label</string>
+</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
new file mode 100644
index 0000000..9c6ace4
--- /dev/null
+++ b/res/values/styles.xml
@@ -0,0 +1,437 @@
+<?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="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>
+
+    <style name="Theme.QuickContact" parent="@style/PeopleTheme">
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:colorBackgroundCacheHint">@null</item>
+        <item name="android:windowFrame">@null</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowAnimationStyle">@null</item>
+        <item name="android:windowIsFloating">false</item>
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:windowNoTitle">true</item>
+        <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>
+    </style>
+
+    <style name="PeopleTheme" parent="@android:style/Theme.Material.Light">
+        <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: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="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">@dimen/contact_browser_list_item_height</item>
+        <item name="activated_background">@drawable/list_item_activated_background</item>
+        <item name="section_header_background">@drawable/list_title_holo</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_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_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>
+    </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">
+        <!-- Styles that require AppCompat compatibility, remember to update both sets -->
+        <item name="android:actionBarStyle">@style/ContactsActionBarStyleAppCompat</item>
+        <item name="actionBarStyle">@style/ContactsActionBarStyleAppCompat</item>
+        <!-- Style for the tab bar (for the divider between tabs) -->
+        <item name="android:actionBarTabBarStyle">@style/ContactsActionBarTabBarStyle</item>
+        <item name="actionBarTabBarStyle">@style/ContactsActionBarTabBarStyle</item>
+        <!-- Style for the tab bar text (for text on tabs) -->
+        <item name="android:actionBarTabTextStyle">@style/ContactsActionBarTabTextStyle</item>
+        <item name="actionBarTabTextStyle">@style/ContactsActionBarTabTextStyle</item>
+        <item name="android:actionButtonStyle">@style/ContactsActionButtonStyle</item>
+        <item name="actionButtonStyle">@style/ContactsActionButtonStyle</item>
+        <!--  Drawable for the back button -->
+        <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
+        <item name="homeAsUpIndicator">@drawable/ic_back_arrow</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/ic_close_lt</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="activated_background">@drawable/list_item_activated_background</item>
+        <item name="section_header_background">@drawable/list_title_holo</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_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>
+        <item name="drawerArrowStyle">@style/DrawerArrowStyle</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>
+
+    <style name="ContactsUnavailableButtonStyle" parent="@style/Widget.AppCompat.Button.Colored">
+    </style>
+
+    <!-- Use the non-light style so that the up button & icons aren't black. If we use the
+         Light style, then it is impossible to tint the homeAsUp icon anything other than black -->
+    <style name="ContactsActionBarStyle" parent="@android:style/Widget.Material.ActionBar">
+        <item name="android:background">@color/actionbar_background_color</item>
+        <item name="android:titleTextStyle">@style/ContactsActionBarTitleText</item>
+        <item name="android:backgroundStacked">@color/actionbar_background_color</item>
+        <!-- Empty icon -->
+        <item name="android:icon">@android:color/transparent</item>
+    </style>
+
+    <style name="ContactsActionBarStyleAppCompat"
+           parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
+        <!-- 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/ContactsActionBarStyle">
+        <item name="android:contentInsetStart">72dp</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="@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>
+
+    <!-- Text in the action bar at the top of the screen -->
+    <style name="ContactsActionBarTitleText"
+           parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title">
+        <item name="android:textSize">20dp</item>
+        <item name="android:textColor">@color/actionbar_text_color</item>
+    </style>
+
+    <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>
+
+    <style name="ContactsActionBarTitleTextBlack" parent="@style/ContactsActionBarTitleTextAppCompat">
+        <item name="android:textColor">@color/actionbar_text_color_black</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>
+
+    <!-- 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>
+
+    <!-- Action bar overflow menu icon. -->
+    <style name="ContactsActionBarOverflowQP"
+           parent="Widget.AppCompat.Light.ActionButton.Overflow">
+        <item name="android:src">@drawable/ic_more_vert</item>
+        <item name="android:tint">@color/action_bar_button_text_color</item>
+    </style>
+
+    <!-- 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="ListViewDropdownStyle" parent="@android:style/Widget.ListView.DropDown">
+        <item name="android:listSelector">?android:attr/listChoiceBackgroundIndicator</item>
+    </style>
+
+    <style name="ContactPickerTheme" parent="PeopleActivityTheme" >
+    </style>
+
+    <style name="ContactsPreferencesTheme" parent="@style/PeopleTheme">
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
+    </style>
+
+    <style name="ContactListFilterTheme" parent="@style/PeopleTheme">
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
+    </style>
+
+    <style name="NonPhoneActivityTheme" parent="@android:Theme.Translucent.NoTitleBar">
+    </style>
+
+    <style name="NonPhoneDialogTheme" parent="@android:Theme.Material.Light.Dialog">
+    </style>
+
+    <style name="ConfirmAddDetailDialogTheme" parent="@android:style/Theme.Material.Light.Dialog.MinWidth">
+        <item name="android:windowCloseOnTouchOutside">true</item>
+    </style>
+
+    <style name="ContactEditorAccountsChangedActivityTheme" parent="@android:style/Theme.Material.Light.Dialog.NoActionBar.MinWidth">
+        <item name="android:windowCloseOnTouchOutside">true</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>
+        <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="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="GroupMembershipSizeTextAppearance" parent="@android:style/TextAppearance.Small"/>
+
+    <style name="ExpandingEntryCardStyle">
+        <item name="android:elevation">@dimen/expanding_entry_card_elevation</item>
+        <item name="android:background">@color/expanding_entry_card_background_color</item>
+        <item name="android:layout_marginBottom">@dimen/expanding_entry_card_marginBottom</item>
+        <item name="android:layout_marginEnd">@dimen/expanding_entry_card_marginStartEnd</item>
+        <item name="android:layout_marginStart">@dimen/expanding_entry_card_marginStartEnd</item>
+        <item name="android:orientation">vertical</item>
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+    </style>
+
+    <style name="SpinnerButtonStyle" parent="@android:style/Widget.Material.Spinner.Underlined">
+        <!-- When applying the spinner style to a Button we need to disable the shadow animation
+            on the button since the spinner background is transparent. Otherwise the spinner-button
+            will look ridiculous. -->
+        <item name="android:stateListAnimator">@null</item>
+        <!-- We want our spinner's to use the same gravity as an EditText, so that they look
+            visually consistent with other controls in our forms -->
+        <item name="android:gravity">start|center_vertical</item>
+    </style>
+
+    <style name="EditKindSeparatorTextViewStyle" parent="ContactListSeparatorTextViewStyle">
+        <item name="android:textAppearance">@style/EditKindTextAppearanceStyle</item>
+    </style>
+
+    <style name="EditKindTextAppearanceStyle" parent="@android:style/TextAppearance.Small">
+        <item name="android:textSize">14sp</item>
+        <item name="android:textStyle">bold</item>
+        <item name="android:textAllCaps">true</item>
+        <item name="android:textColor">#363636</item>
+        <item name="android:fontFamily">sans-serif</item>
+    </style>
+
+    <!-- Inherit from Theme.Material.Light.Dialog instead of Theme.Material.Light.Dialog.Alert
+        since the Alert dialog is private. They are identical anyway. -->
+    <style name="ContactsAlertDialogTheme" parent="@android:style/Theme.Material.Light.Dialog">
+        <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>
+        <item name="android:tint">@color/editor_icon_color</item>
+        <item name="android:layout_marginStart">16dp</item>
+        <!-- We want 32dp of padding between these icon's and EditText's. Since EditText's have
+            4dp of starting padding built in, we set this as 28dp. -->
+        <item name="android:layout_marginEnd">28dp</item>
+        <item name="android:layout_marginTop">@dimen/editor_kind_icon_top_margin</item>
+    </style>
+
+    <style name="EditSelectorIconStyle">
+        <item name="android:layout_width">24dp</item>
+        <item name="android:layout_height">24dp</item>
+        <item name="android:layout_marginStart">16dp</item>
+        <!-- We want 32dp of padding between these icon's and EditText's. Since EditText's have
+            4dp of starting padding built in, we set this as 28dp. -->
+        <item name="android:layout_marginEnd">28dp</item>
+        <item name="android:layout_marginTop">@dimen/editor_kind_icon_top_margin</item>
+    </style>
+
+    <style name="AccountTypeIconStyle">
+        <item name="android:layout_width">12dp</item>
+        <item name="android:layout_height">12dp</item>
+        <item name="android:layout_marginStart">4dp</item>
+        <item name="android:layout_marginEnd">4dp</item>
+    </style>
+
+    <style name="AccountTypeNameStyle">
+        <item name="android:textSize">10sp</item>
+        <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">#0288d1</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">#0288d1</item>
+        <item name="android:fontFamily">sans-serif-medium</item>
+        <item name="android:textAllCaps">true</item>
+    </style>
+</resources>
diff --git a/res/xml/file_paths.xml b/res/xml/file_paths.xml
new file mode 100644
index 0000000..294c0cb
--- /dev/null
+++ b/res/xml/file_paths.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<paths xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- Offer access to files under Context.getCacheDir() -->
+    <cache-path name="my_cache" />
+</paths>
diff --git a/res/xml/searchable.xml b/res/xml/searchable.xml
new file mode 100644
index 0000000..3d6876e
--- /dev/null
+++ b/res/xml/searchable.xml
@@ -0,0 +1,29 @@
+<?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.
+-->
+
+<searchable xmlns:android="http://schemas.android.com/apk/res/android"
+    android:label="@string/contactsList"
+    android:hint="@string/searchHint"
+    android:searchMode="queryRewriteFromText"
+
+    android:includeInGlobalSearch="true"
+    android:queryAfterZeroResults="true"
+    android:searchSuggestAuthority="com.android.contacts"
+    android:searchSuggestIntentAction="android.provider.Contacts.SEARCH_SUGGESTION_CLICKED"
+    android:searchSuggestIntentData="content://com.android.contacts/contacts/lookup"
+    android:searchSettingsDescription="@string/search_settings_description"
+>
+</searchable>
diff --git a/script/test.sh b/script/test.sh
new file mode 100755
index 0000000..306340a
--- /dev/null
+++ b/script/test.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# 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.
+#
+
+adb shell am instrument ${@} -w com.android.contacts.tests/android.test.InstrumentationTestRunner
diff --git a/src/com/android/contacts/AppCompatContactsActivity.java b/src/com/android/contacts/AppCompatContactsActivity.java
new file mode 100644
index 0000000..7654b27
--- /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.common.activity.AppCompatTransactionSafeActivity;
+import com.android.contacts.common.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/ContactSaveService.java b/src/com/android/contacts/ContactSaveService.java
new file mode 100755
index 0000000..bfb684a
--- /dev/null
+++ b/src/com/android/contacts/ContactSaveService.java
@@ -0,0 +1,1623 @@
+/*
+ * 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 static android.Manifest.permission.WRITE_CONTACTS;
+import android.app.Activity;
+import android.app.IntentService;
+import android.content.ContentProviderOperation;
+import android.content.ContentProviderOperation.Builder;
+import android.content.ContentProviderResult;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.Intent;
+import android.content.OperationApplicationException;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Parcelable;
+import android.os.RemoteException;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.AggregationExceptions;
+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.Groups;
+import android.provider.ContactsContract.Profile;
+import android.provider.ContactsContract.RawContacts;
+import android.provider.ContactsContract.RawContactsEntity;
+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.compat.PinnedPositionsCompat;
+import com.android.contacts.util.ContactPhotoUtils;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+/**
+ * A service responsible for saving changes to the content provider.
+ */
+public class ContactSaveService extends IntentService {
+    private static final String TAG = "ContactSaveService";
+
+    /** Set to true in order to view logs on content provider operations */
+    private static final boolean DEBUG = false;
+
+    public static final String ACTION_NEW_RAW_CONTACT = "newRawContact";
+
+    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_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";
+    public static final String EXTRA_SAVE_MODE = "saveMode";
+    public static final String EXTRA_SAVE_IS_PROFILE = "saveIsProfile";
+    public static final String EXTRA_SAVE_SUCCEEDED = "saveSucceeded";
+    public static final String EXTRA_UPDATED_PHOTOS = "updatedPhotos";
+
+    public static final String ACTION_CREATE_GROUP = "createGroup";
+    public static final String ACTION_RENAME_GROUP = "renameGroup";
+    public static final String ACTION_DELETE_GROUP = "deleteGroup";
+    public static final String ACTION_UPDATE_GROUP = "updateGroup";
+    public static final String EXTRA_GROUP_ID = "groupId";
+    public static final String EXTRA_GROUP_LABEL = "groupLabel";
+    public static final String EXTRA_RAW_CONTACTS_TO_ADD = "rawContactsToAdd";
+    public static final String EXTRA_RAW_CONTACTS_TO_REMOVE = "rawContactsToRemove";
+
+    public static final String ACTION_SET_STARRED = "setStarred";
+    public static final String ACTION_DELETE_CONTACT = "delete";
+    public static final String ACTION_DELETE_MULTIPLE_CONTACTS = "deleteMultipleContacts";
+    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 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 ACTION_JOIN_CONTACTS = "joinContacts";
+    public static final String ACTION_JOIN_SEVERAL_CONTACTS = "joinSeveralContacts";
+    public static final String EXTRA_CONTACT_ID1 = "contactId1";
+    public static final String EXTRA_CONTACT_ID2 = "contactId2";
+
+    public static final String ACTION_SET_SEND_TO_VOICEMAIL = "sendToVoicemail";
+    public static final String EXTRA_SEND_TO_VOICEMAIL_FLAG = "sendToVoicemailFlag";
+
+    public static final String ACTION_SET_RINGTONE = "setRingtone";
+    public static final String EXTRA_CUSTOM_RINGTONE = "customRingtone";
+
+    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;
+
+    private static final HashSet<String> ALLOWED_DATA_COLUMNS = Sets.newHashSet(
+        Data.MIMETYPE,
+        Data.IS_PRIMARY,
+        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
+    );
+
+    private static final int PERSIST_TRIES = 3;
+
+    private static final int MAX_CONTACTS_PROVIDER_BATCH_SIZE = 499;
+
+    public interface Listener {
+        public void onServiceCompleted(Intent callbackIntent);
+    }
+
+    private static final CopyOnWriteArrayList<Listener> sListeners =
+            new CopyOnWriteArrayList<Listener>();
+
+    private Handler mMainHandler;
+
+    public ContactSaveService() {
+        super(TAG);
+        setIntentRedelivery(true);
+        mMainHandler = new Handler(Looper.getMainLooper());
+    }
+
+    public static void registerListener(Listener listener) {
+        if (!(listener instanceof Activity)) {
+            throw new ClassCastException("Only activities can be registered to"
+                    + " receive callback from " + ContactSaveService.class.getName());
+        }
+        sListeners.add(0, listener);
+    }
+
+    public static void unregisterListener(Listener listener) {
+        sListeners.remove(listener);
+    }
+
+    /**
+     * Returns true if the ContactSaveService was started successfully and false if an exception
+     * was thrown and a Toast error message was displayed.
+     */
+    public static boolean startService(Context context, Intent intent, int saveMode) {
+        try {
+            context.startService(intent);
+        } catch (Exception exception) {
+            final int resId;
+            switch (saveMode) {
+                case ContactEditorBaseActivity.ContactEditor.SaveMode.SPLIT:
+                    resId = R.string.contactUnlinkErrorToast;
+                    break;
+                case ContactEditorBaseActivity.ContactEditor.SaveMode.RELOAD:
+                    resId = R.string.contactJoinErrorToast;
+                    break;
+                case ContactEditorBaseActivity.ContactEditor.SaveMode.CLOSE:
+                    resId = R.string.contactSavedErrorToast;
+                    break;
+                default:
+                    resId = R.string.contactGenericErrorToast;
+            }
+            Toast.makeText(context, resId, Toast.LENGTH_SHORT).show();
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Utility method that starts service and handles exception.
+     */
+    public static void startService(Context context, Intent intent) {
+        try {
+            context.startService(intent);
+        } catch (Exception exception) {
+            Toast.makeText(context, R.string.contactGenericErrorToast, Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    @Override
+    public Object getSystemService(String name) {
+        Object service = super.getSystemService(name);
+        if (service != null) {
+            return service;
+        }
+
+        return getApplicationContext().getSystemService(name);
+    }
+
+    @Override
+    protected void onHandleIntent(Intent intent) {
+        if (intent == null) {
+            Log.d(TAG, "onHandleIntent: could not handle null intent");
+            return;
+        }
+        if (!PermissionsUtil.hasPermission(this, WRITE_CONTACTS)) {
+            Log.w(TAG, "No WRITE_CONTACTS permission, unable to write to CP2");
+            // TODO: add more specific error string such as "Turn on Contacts
+            // permission to update your contacts"
+            showToast(R.string.contactSavedErrorToast);
+            return;
+        }
+
+        // Call an appropriate method. If we're sure it affects how incoming phone calls are
+        // handled, then notify the fact to in-call screen.
+        String action = intent.getAction();
+        if (ACTION_NEW_RAW_CONTACT.equals(action)) {
+            createRawContact(intent);
+        } else if (ACTION_SAVE_CONTACT.equals(action)) {
+            saveContact(intent);
+        } else if (ACTION_CREATE_GROUP.equals(action)) {
+            createGroup(intent);
+        } else if (ACTION_RENAME_GROUP.equals(action)) {
+            renameGroup(intent);
+        } else if (ACTION_DELETE_GROUP.equals(action)) {
+            deleteGroup(intent);
+        } else if (ACTION_UPDATE_GROUP.equals(action)) {
+            updateGroup(intent);
+        } else if (ACTION_SET_STARRED.equals(action)) {
+            setStarred(intent);
+        } else if (ACTION_SET_SUPER_PRIMARY.equals(action)) {
+            setSuperPrimary(intent);
+        } else if (ACTION_CLEAR_PRIMARY.equals(action)) {
+            clearPrimary(intent);
+        } else if (ACTION_DELETE_MULTIPLE_CONTACTS.equals(action)) {
+            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)) {
+            joinSeveralContacts(intent);
+        } else if (ACTION_SET_SEND_TO_VOICEMAIL.equals(action)) {
+            setSendToVoicemail(intent);
+        } else if (ACTION_SET_RINGTONE.equals(action)) {
+            setRingtone(intent);
+        }
+    }
+
+    /**
+     * Creates an intent that can be sent to this service to create a new raw contact
+     * using data presented as a set of ContentValues.
+     */
+    public static Intent createNewRawContactIntent(Context context,
+            ArrayList<ContentValues> values, AccountWithDataSet account,
+            Class<? extends Activity> callbackActivity, String callbackAction) {
+        Intent serviceIntent = new Intent(
+                context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_NEW_RAW_CONTACT);
+        if (account != null) {
+            serviceIntent.putExtra(ContactSaveService.EXTRA_ACCOUNT_NAME, account.name);
+            serviceIntent.putExtra(ContactSaveService.EXTRA_ACCOUNT_TYPE, account.type);
+            serviceIntent.putExtra(ContactSaveService.EXTRA_DATA_SET, account.dataSet);
+        }
+        serviceIntent.putParcelableArrayListExtra(
+                ContactSaveService.EXTRA_CONTENT_VALUES, values);
+
+        // Callback intent will be invoked by the service once the new contact is
+        // created.  The service will put the URI of the new contact as "data" on
+        // the callback intent.
+        Intent callbackIntent = new Intent(context, callbackActivity);
+        callbackIntent.setAction(callbackAction);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_CALLBACK_INTENT, callbackIntent);
+        return serviceIntent;
+    }
+
+    private void createRawContact(Intent intent) {
+        String accountName = intent.getStringExtra(EXTRA_ACCOUNT_NAME);
+        String accountType = intent.getStringExtra(EXTRA_ACCOUNT_TYPE);
+        String dataSet = intent.getStringExtra(EXTRA_DATA_SET);
+        List<ContentValues> valueList = intent.getParcelableArrayListExtra(EXTRA_CONTENT_VALUES);
+        Intent callbackIntent = intent.getParcelableExtra(EXTRA_CALLBACK_INTENT);
+
+        ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();
+        operations.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
+                .withValue(RawContacts.ACCOUNT_NAME, accountName)
+                .withValue(RawContacts.ACCOUNT_TYPE, accountType)
+                .withValue(RawContacts.DATA_SET, dataSet)
+                .build());
+
+        int size = valueList.size();
+        for (int i = 0; i < size; i++) {
+            ContentValues values = valueList.get(i);
+            values.keySet().retainAll(ALLOWED_DATA_COLUMNS);
+            operations.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
+                    .withValueBackReference(Data.RAW_CONTACT_ID, 0)
+                    .withValues(values)
+                    .build());
+        }
+
+        ContentResolver resolver = getContentResolver();
+        ContentProviderResult[] results;
+        try {
+            results = resolver.applyBatch(ContactsContract.AUTHORITY, operations);
+        } catch (Exception e) {
+            throw new RuntimeException("Failed to store new contact", e);
+        }
+
+        Uri rawContactUri = results[0].uri;
+        callbackIntent.setData(RawContacts.getContactLookupUri(resolver, rawContactUri));
+
+        deliverCallback(callbackIntent);
+    }
+
+    /**
+     * Creates an intent that can be sent to this service to create a new raw contact
+     * using data presented as a set of ContentValues.
+     * This variant is more convenient to use when there is only one photo that can
+     * possibly be updated, as in the Contact Details screen.
+     * @param rawContactId identifies a writable raw-contact whose photo is to be updated.
+     * @param updatedPhotoPath denotes a temporary file containing the contact's new photo.
+     */
+    public static Intent createSaveContactIntent(Context context, RawContactDeltaList state,
+            String saveModeExtraKey, int saveMode, boolean isProfile,
+            Class<? extends Activity> callbackActivity, String callbackAction, long rawContactId,
+            Uri updatedPhotoPath) {
+        Bundle bundle = new Bundle();
+        bundle.putParcelable(String.valueOf(rawContactId), updatedPhotoPath);
+        return createSaveContactIntent(context, state, saveModeExtraKey, saveMode, isProfile,
+                callbackActivity, callbackAction, bundle,
+                /* joinContactIdExtraKey */ null, /* joinContactId */ null);
+    }
+
+    /**
+     * Creates an intent that can be sent to this service to create a new raw contact
+     * using data presented as a set of ContentValues.
+     * This variant is used when multiple contacts' photos may be updated, as in the
+     * Contact Editor.
+     *
+     * @param updatedPhotos maps each raw-contact's ID to the file-path of the new photo.
+     * @param joinContactIdExtraKey the key used to pass the joinContactId in the callback intent.
+     * @param joinContactId the raw contact ID to join to the contact after doing the save.
+     */
+    public static Intent createSaveContactIntent(Context context, RawContactDeltaList state,
+            String saveModeExtraKey, int saveMode, boolean isProfile,
+            Class<? extends Activity> callbackActivity, String callbackAction,
+            Bundle updatedPhotos, String joinContactIdExtraKey, Long joinContactId) {
+        Intent serviceIntent = new Intent(
+                context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_SAVE_CONTACT);
+        serviceIntent.putExtra(EXTRA_CONTACT_STATE, (Parcelable) state);
+        serviceIntent.putExtra(EXTRA_SAVE_IS_PROFILE, isProfile);
+        serviceIntent.putExtra(EXTRA_SAVE_MODE, saveMode);
+
+        if (updatedPhotos != null) {
+            serviceIntent.putExtra(EXTRA_UPDATED_PHOTOS, (Parcelable) updatedPhotos);
+        }
+
+        if (callbackActivity != null) {
+            // Callback intent will be invoked by the service once the contact is
+            // saved.  The service will put the URI of the new contact as "data" on
+            // the callback intent.
+            Intent callbackIntent = new Intent(context, callbackActivity);
+            callbackIntent.putExtra(saveModeExtraKey, saveMode);
+            if (joinContactIdExtraKey != null && joinContactId != null) {
+                callbackIntent.putExtra(joinContactIdExtraKey, joinContactId);
+            }
+            callbackIntent.setAction(callbackAction);
+            serviceIntent.putExtra(ContactSaveService.EXTRA_CALLBACK_INTENT, callbackIntent);
+        }
+        return serviceIntent;
+    }
+
+    private void saveContact(Intent intent) {
+        RawContactDeltaList state = intent.getParcelableExtra(EXTRA_CONTACT_STATE);
+        boolean isProfile = intent.getBooleanExtra(EXTRA_SAVE_IS_PROFILE, false);
+        Bundle updatedPhotos = intent.getParcelableExtra(EXTRA_UPDATED_PHOTOS);
+
+        if (state == null) {
+            Log.e(TAG, "Invalid arguments for saveContact request");
+            return;
+        }
+
+        int saveMode = intent.getIntExtra(EXTRA_SAVE_MODE, -1);
+        // Trim any empty fields, and RawContacts, before persisting
+        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(this);
+        RawContactModifier.trimEmpty(state, accountTypes);
+
+        Uri lookupUri = null;
+
+        final ContentResolver resolver = getContentResolver();
+
+        boolean succeeded = false;
+
+        // Keep track of the id of a newly raw-contact (if any... there can be at most one).
+        long insertedRawContactId = -1;
+
+        // Attempt to persist changes
+        int tries = 0;
+        while (tries++ < PERSIST_TRIES) {
+            try {
+                // Build operations and try applying
+                final ArrayList<CPOWrapper> diffWrapper = state.buildDiffWrapper();
+
+                final ArrayList<ContentProviderOperation> diff = Lists.newArrayList();
+
+                for (CPOWrapper cpoWrapper : diffWrapper) {
+                    diff.add(cpoWrapper.getOperation());
+                }
+
+                if (DEBUG) {
+                    Log.v(TAG, "Content Provider Operations:");
+                    for (ContentProviderOperation operation : diff) {
+                        Log.v(TAG, operation.toString());
+                    }
+                }
+
+                int numberProcessed = 0;
+                boolean batchFailed = false;
+                final ContentProviderResult[] results = new ContentProviderResult[diff.size()];
+                while (numberProcessed < diff.size()) {
+                    final int subsetCount = applyDiffSubset(diff, numberProcessed, results, resolver);
+                    if (subsetCount == -1) {
+                        Log.w(TAG, "Resolver.applyBatch failed in saveContacts");
+                        batchFailed = true;
+                        break;
+                    } else {
+                        numberProcessed += subsetCount;
+                    }
+                }
+
+                if (batchFailed) {
+                    // Retry save
+                    continue;
+                }
+
+                final long rawContactId = getRawContactId(state, diffWrapper, results);
+                if (rawContactId == -1) {
+                    throw new IllegalStateException("Could not determine RawContact ID after save");
+                }
+                // We don't have to check to see if the value is still -1.  If we reach here,
+                // the previous loop iteration didn't succeed, so any ID that we obtained is bogus.
+                insertedRawContactId = getInsertedRawContactId(diffWrapper, results);
+                if (isProfile) {
+                    // Since the profile supports local raw contacts, which may have been completely
+                    // removed if all information was removed, we need to do a special query to
+                    // get the lookup URI for the profile contact (if it still exists).
+                    Cursor c = resolver.query(Profile.CONTENT_URI,
+                            new String[] {Contacts._ID, Contacts.LOOKUP_KEY},
+                            null, null, null);
+                    if (c == null) {
+                        continue;
+                    }
+                    try {
+                        if (c.moveToFirst()) {
+                            final long contactId = c.getLong(0);
+                            final String lookupKey = c.getString(1);
+                            lookupUri = Contacts.getLookupUri(contactId, lookupKey);
+                        }
+                    } finally {
+                        c.close();
+                    }
+                } else {
+                    final Uri rawContactUri = ContentUris.withAppendedId(RawContacts.CONTENT_URI,
+                                    rawContactId);
+                    lookupUri = RawContacts.getContactLookupUri(resolver, rawContactUri);
+                }
+                if (lookupUri != null) {
+                    Log.v(TAG, "Saved contact. New URI: " + lookupUri);
+                }
+
+                // We can change this back to false later, if we fail to save the contact photo.
+                succeeded = true;
+                break;
+
+            } catch (RemoteException e) {
+                // Something went wrong, bail without success
+                Log.e(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);
+                showToast(R.string.contactSavedErrorToast);
+                break;
+
+            } catch (OperationApplicationException e) {
+                // Version consistency failed, re-parent change and try again
+                Log.w(TAG, "Version consistency failed, re-parenting: " + e.toString());
+                final StringBuilder sb = new StringBuilder(RawContacts._ID + " IN(");
+                boolean first = true;
+                final int count = state.size();
+                for (int i = 0; i < count; i++) {
+                    Long rawContactId = state.getRawContactId(i);
+                    if (rawContactId != null && rawContactId != -1) {
+                        if (!first) {
+                            sb.append(',');
+                        }
+                        sb.append(rawContactId);
+                        first = false;
+                    }
+                }
+                sb.append(")");
+
+                if (first) {
+                    throw new IllegalStateException(
+                            "Version consistency failed for a new contact", e);
+                }
+
+                final RawContactDeltaList newState = RawContactDeltaList.fromQuery(
+                        isProfile
+                                ? RawContactsEntity.PROFILE_CONTENT_URI
+                                : RawContactsEntity.CONTENT_URI,
+                        resolver, sb.toString(), null, null);
+                state = RawContactDeltaList.mergeAfter(newState, state);
+
+                // Update the new state to use profile URIs if appropriate.
+                if (isProfile) {
+                    for (RawContactDelta delta : state) {
+                        delta.setProfileQueryUri();
+                    }
+                }
+            }
+        }
+
+        // Now save any updated photos.  We do this at the end to ensure that
+        // the ContactProvider already knows about newly-created contacts.
+        if (updatedPhotos != null) {
+            for (String key : updatedPhotos.keySet()) {
+                Uri photoUri = updatedPhotos.getParcelable(key);
+                long rawContactId = Long.parseLong(key);
+
+                // If the raw-contact ID is negative, we are saving a new raw-contact;
+                // replace the bogus ID with the new one that we actually saved the contact at.
+                if (rawContactId < 0) {
+                    rawContactId = insertedRawContactId;
+                }
+
+                // If the save failed, insertedRawContactId will be -1
+                if (rawContactId < 0 || !saveUpdatedPhoto(rawContactId, photoUri, saveMode)) {
+                    succeeded = false;
+                }
+            }
+        }
+
+        Intent callbackIntent = intent.getParcelableExtra(EXTRA_CALLBACK_INTENT);
+        if (callbackIntent != null) {
+            if (succeeded) {
+                // Mark the intent to indicate that the save was successful (even if the lookup URI
+                // is now null).  For local contacts or the local profile, it's possible that the
+                // save triggered removal of the contact, so no lookup URI would exist..
+                callbackIntent.putExtra(EXTRA_SAVE_SUCCEEDED, true);
+            }
+            callbackIntent.setData(lookupUri);
+            deliverCallback(callbackIntent);
+        }
+    }
+
+    /**
+     * Splits "diff" into subsets based on "MAX_CONTACTS_PROVIDER_BATCH_SIZE", applies each of the
+     * subsets, adds the returned array to "results".
+     *
+     * @return the size of the array, if not null; -1 when the array is null.
+     */
+    private int applyDiffSubset(ArrayList<ContentProviderOperation> diff, int offset,
+            ContentProviderResult[] results, ContentResolver resolver)
+            throws RemoteException, OperationApplicationException {
+        final int subsetCount = Math.min(diff.size() - offset, MAX_CONTACTS_PROVIDER_BATCH_SIZE);
+        final ArrayList<ContentProviderOperation> subset = new ArrayList<>();
+        subset.addAll(diff.subList(offset, offset + subsetCount));
+        final ContentProviderResult[] subsetResult = resolver.applyBatch(ContactsContract
+                .AUTHORITY, subset);
+        if (subsetResult == null || (offset + subsetResult.length) > results.length) {
+            return -1;
+        }
+        for (ContentProviderResult c : subsetResult) {
+            results[offset++] = c;
+        }
+        return subsetResult.length;
+    }
+
+    /**
+     * Save updated photo for the specified raw-contact.
+     * @return true for success, false for failure
+     */
+    private boolean saveUpdatedPhoto(long rawContactId, Uri photoUri, int saveMode) {
+        final Uri outputUri = Uri.withAppendedPath(
+                ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId),
+                RawContacts.DisplayPhoto.CONTENT_DIRECTORY);
+
+        return ContactPhotoUtils.savePhotoFromUriToUri(this, photoUri, outputUri, (saveMode == 0));
+    }
+
+    /**
+     * Find the ID of an existing or newly-inserted raw-contact.  If none exists, return -1.
+     */
+    private long getRawContactId(RawContactDeltaList state,
+            final ArrayList<CPOWrapper> diffWrapper,
+            final ContentProviderResult[] results) {
+        long existingRawContactId = state.findRawContactId();
+        if (existingRawContactId != -1) {
+            return existingRawContactId;
+        }
+
+        return getInsertedRawContactId(diffWrapper, results);
+    }
+
+    /**
+     * Find the ID of a newly-inserted raw-contact.  If none exists, return -1.
+     */
+    private long getInsertedRawContactId(
+            final ArrayList<CPOWrapper> diffWrapper, final ContentProviderResult[] results) {
+        if (results == null) {
+            return -1;
+        }
+        final int diffSize = diffWrapper.size();
+        final int numResults = results.length;
+        for (int i = 0; i < diffSize && i < numResults; i++) {
+            final CPOWrapper cpoWrapper = diffWrapper.get(i);
+            final boolean isInsert = CompatUtils.isInsertCompat(cpoWrapper);
+            if (isInsert && cpoWrapper.getOperation().getUri().getEncodedPath().contains(
+                    RawContacts.CONTENT_URI.getEncodedPath())) {
+                return ContentUris.parseId(results[i].uri);
+            }
+        }
+        return -1;
+    }
+
+    /**
+     * Creates an intent that can be sent to this service to create a new group as
+     * well as add new members at the same time.
+     *
+     * @param context of the application
+     * @param account in which the group should be created
+     * @param label is the name of the group (cannot be null)
+     * @param rawContactsToAdd is an array of raw contact IDs for contacts that
+     *            should be added to the group
+     * @param callbackActivity is the activity to send the callback intent to
+     * @param callbackAction is the intent action for the callback intent
+     */
+    public static Intent createNewGroupIntent(Context context, AccountWithDataSet account,
+            String label, long[] rawContactsToAdd, Class<? extends Activity> callbackActivity,
+            String callbackAction) {
+        Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_CREATE_GROUP);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_ACCOUNT_TYPE, account.type);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_ACCOUNT_NAME, account.name);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_DATA_SET, account.dataSet);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_GROUP_LABEL, label);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_RAW_CONTACTS_TO_ADD, rawContactsToAdd);
+
+        // Callback intent will be invoked by the service once the new group is
+        // created.
+        Intent callbackIntent = new Intent(context, callbackActivity);
+        callbackIntent.setAction(callbackAction);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_CALLBACK_INTENT, callbackIntent);
+
+        return serviceIntent;
+    }
+
+    private void createGroup(Intent intent) {
+        String accountType = intent.getStringExtra(EXTRA_ACCOUNT_TYPE);
+        String accountName = intent.getStringExtra(EXTRA_ACCOUNT_NAME);
+        String dataSet = intent.getStringExtra(EXTRA_DATA_SET);
+        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);
+
+        // If there's no URI, then the insertion failed. Abort early because group members can't be
+        // added if the group doesn't exist
+        if (groupUri == null) {
+            Log.e(TAG, "Couldn't create group with label " + label);
+            return;
+        }
+
+        // Add new group members
+        addMembersToGroup(resolver, rawContactsToAdd, ContentUris.parseId(groupUri));
+
+        // 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}.
+        values.clear();
+        values.put(Data.MIMETYPE, GroupMembership.CONTENT_ITEM_TYPE);
+        values.put(GroupMembership.GROUP_ROW_ID, ContentUris.parseId(groupUri));
+
+        Intent callbackIntent = intent.getParcelableExtra(EXTRA_CALLBACK_INTENT);
+        callbackIntent.setData(groupUri);
+        // TODO: This can be taken out when the above TODO is addressed
+        callbackIntent.putExtra(ContactsContract.Intents.Insert.DATA, Lists.newArrayList(values));
+        deliverCallback(callbackIntent);
+    }
+
+    /**
+     * Creates an intent that can be sent to this service to rename a group.
+     */
+    public static Intent createGroupRenameIntent(Context context, long groupId, String newLabel,
+            Class<? extends Activity> callbackActivity, String callbackAction) {
+        Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_RENAME_GROUP);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_GROUP_ID, groupId);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_GROUP_LABEL, newLabel);
+
+        // Callback intent will be invoked by the service once the group is renamed.
+        Intent callbackIntent = new Intent(context, callbackActivity);
+        callbackIntent.setAction(callbackAction);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_CALLBACK_INTENT, callbackIntent);
+
+        return serviceIntent;
+    }
+
+    private void renameGroup(Intent intent) {
+        long groupId = intent.getLongExtra(EXTRA_GROUP_ID, -1);
+        String label = intent.getStringExtra(EXTRA_GROUP_LABEL);
+
+        if (groupId == -1) {
+            Log.e(TAG, "Invalid arguments for renameGroup request");
+            return;
+        }
+
+        ContentValues values = new ContentValues();
+        values.put(Groups.TITLE, label);
+        final Uri groupUri = ContentUris.withAppendedId(Groups.CONTENT_URI, groupId);
+        getContentResolver().update(groupUri, values, null, null);
+
+        Intent callbackIntent = intent.getParcelableExtra(EXTRA_CALLBACK_INTENT);
+        callbackIntent.setData(groupUri);
+        deliverCallback(callbackIntent);
+    }
+
+    /**
+     * Creates an intent that can be sent to this service to delete a group.
+     */
+    public static Intent createGroupDeletionIntent(Context context, long groupId,
+            Class<? extends Activity> callbackActivity, String callbackAction) {
+        Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_DELETE_GROUP);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_GROUP_ID, groupId);
+
+        // Callback intent will be invoked by the service once the group is updated
+        if (callbackActivity != null && !TextUtils.isEmpty(callbackAction)) {
+            final Intent callbackIntent = new Intent(context, callbackActivity);
+            callbackIntent.setAction(callbackAction);
+            serviceIntent.putExtra(ContactSaveService.EXTRA_CALLBACK_INTENT, callbackIntent);
+        }
+
+        return serviceIntent;
+    }
+
+    private void deleteGroup(Intent intent) {
+        long groupId = intent.getLongExtra(EXTRA_GROUP_ID, -1);
+        if (groupId == -1) {
+            Log.e(TAG, "Invalid arguments for deleteGroup request");
+            return;
+        }
+
+        getContentResolver().delete(
+                ContentUris.withAppendedId(Groups.CONTENT_URI, groupId), null, null);
+
+        final Intent callbackIntent = intent.getParcelableExtra(EXTRA_CALLBACK_INTENT);
+        if (callbackIntent != null) {
+            final Uri groupUri = ContentUris.withAppendedId(Groups.CONTENT_URI, groupId);
+            callbackIntent.setData(groupUri);
+            deliverCallback(callbackIntent);
+        }
+    }
+
+    /**
+     * Creates an intent that can be sent to this service to rename a group as
+     * well as add and remove members from the group.
+     *
+     * @param context of the application
+     * @param groupId of the group that should be modified
+     * @param newLabel is the updated name of the group (can be null if the name
+     *            should not be updated)
+     * @param rawContactsToAdd is an array of raw contact IDs for contacts that
+     *            should be added to the group
+     * @param rawContactsToRemove is an array of raw contact IDs for contacts
+     *            that should be removed from the group
+     * @param callbackActivity is the activity to send the callback intent to
+     * @param callbackAction is the intent action for the callback intent
+     */
+    public static Intent createGroupUpdateIntent(Context context, long groupId, String newLabel,
+            long[] rawContactsToAdd, long[] rawContactsToRemove,
+            Class<? extends Activity> callbackActivity, String callbackAction) {
+        Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_UPDATE_GROUP);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_GROUP_ID, groupId);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_GROUP_LABEL, newLabel);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_RAW_CONTACTS_TO_ADD, rawContactsToAdd);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_RAW_CONTACTS_TO_REMOVE,
+                rawContactsToRemove);
+
+        // Callback intent will be invoked by the service once the group is updated
+        Intent callbackIntent = new Intent(context, callbackActivity);
+        callbackIntent.setAction(callbackAction);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_CALLBACK_INTENT, callbackIntent);
+
+        return serviceIntent;
+    }
+
+    private void updateGroup(Intent intent) {
+        long groupId = intent.getLongExtra(EXTRA_GROUP_ID, -1);
+        String label = intent.getStringExtra(EXTRA_GROUP_LABEL);
+        long[] rawContactsToAdd = intent.getLongArrayExtra(EXTRA_RAW_CONTACTS_TO_ADD);
+        long[] rawContactsToRemove = intent.getLongArrayExtra(EXTRA_RAW_CONTACTS_TO_REMOVE);
+
+        if (groupId == -1) {
+            Log.e(TAG, "Invalid arguments for updateGroup request");
+            return;
+        }
+
+        final ContentResolver resolver = getContentResolver();
+        final Uri groupUri = ContentUris.withAppendedId(Groups.CONTENT_URI, groupId);
+
+        // Update group name if necessary
+        if (label != null) {
+            ContentValues values = new ContentValues();
+            values.put(Groups.TITLE, label);
+            resolver.update(groupUri, values, null, null);
+        }
+
+        // Add and remove members if necessary
+        addMembersToGroup(resolver, rawContactsToAdd, groupId);
+        removeMembersFromGroup(resolver, rawContactsToRemove, groupId);
+
+        Intent callbackIntent = intent.getParcelableExtra(EXTRA_CALLBACK_INTENT);
+        callbackIntent.setData(groupUri);
+        deliverCallback(callbackIntent);
+    }
+
+    private static void addMembersToGroup(ContentResolver resolver, long[] rawContactsToAdd,
+            long groupId) {
+        if (rawContactsToAdd == null) {
+            return;
+        }
+        for (long rawContactId : rawContactsToAdd) {
+            try {
+                final ArrayList<ContentProviderOperation> rawContactOperations =
+                        new ArrayList<ContentProviderOperation>();
+
+                // Build an assert operation to ensure the contact is not already in the group
+                final ContentProviderOperation.Builder assertBuilder = ContentProviderOperation
+                        .newAssertQuery(Data.CONTENT_URI);
+                assertBuilder.withSelection(Data.RAW_CONTACT_ID + "=? AND " +
+                        Data.MIMETYPE + "=? AND " + GroupMembership.GROUP_ROW_ID + "=?",
+                        new String[] { String.valueOf(rawContactId),
+                        GroupMembership.CONTENT_ITEM_TYPE, String.valueOf(groupId)});
+                assertBuilder.withExpectedCount(0);
+                rawContactOperations.add(assertBuilder.build());
+
+                // Build an insert operation to add the contact to the group
+                final ContentProviderOperation.Builder insertBuilder = ContentProviderOperation
+                        .newInsert(Data.CONTENT_URI);
+                insertBuilder.withValue(Data.RAW_CONTACT_ID, rawContactId);
+                insertBuilder.withValue(Data.MIMETYPE, GroupMembership.CONTENT_ITEM_TYPE);
+                insertBuilder.withValue(GroupMembership.GROUP_ROW_ID, groupId);
+                rawContactOperations.add(insertBuilder.build());
+
+                if (DEBUG) {
+                    for (ContentProviderOperation operation : rawContactOperations) {
+                        Log.v(TAG, operation.toString());
+                    }
+                }
+
+                // Apply batch
+                if (!rawContactOperations.isEmpty()) {
+                    resolver.applyBatch(ContactsContract.AUTHORITY, rawContactOperations);
+                }
+            } catch (RemoteException e) {
+                // Something went wrong, bail without success
+                Log.e(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);
+            }
+        }
+    }
+
+    private static void removeMembersFromGroup(ContentResolver resolver, long[] rawContactsToRemove,
+            long groupId) {
+        if (rawContactsToRemove == null) {
+            return;
+        }
+        for (long rawContactId : rawContactsToRemove) {
+            // Apply the delete operation on the data row for the given raw contact's
+            // membership in the given group. If no contact matches the provided selection, then
+            // nothing will be done. Just continue to the next contact.
+            resolver.delete(Data.CONTENT_URI, Data.RAW_CONTACT_ID + "=? AND " +
+                    Data.MIMETYPE + "=? AND " + GroupMembership.GROUP_ROW_ID + "=?",
+                    new String[] { String.valueOf(rawContactId),
+                    GroupMembership.CONTENT_ITEM_TYPE, String.valueOf(groupId)});
+        }
+    }
+
+    /**
+     * Creates an intent that can be sent to this service to star or un-star a contact.
+     */
+    public static Intent createSetStarredIntent(Context context, Uri contactUri, boolean value) {
+        Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_SET_STARRED);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_CONTACT_URI, contactUri);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_STARRED_FLAG, value);
+
+        return serviceIntent;
+    }
+
+    private void setStarred(Intent intent) {
+        Uri contactUri = intent.getParcelableExtra(EXTRA_CONTACT_URI);
+        boolean value = intent.getBooleanExtra(EXTRA_STARRED_FLAG, false);
+        if (contactUri == null) {
+            Log.e(TAG, "Invalid arguments for setStarred request");
+            return;
+        }
+
+        final ContentValues values = new ContentValues(1);
+        values.put(Contacts.STARRED, value);
+        getContentResolver().update(contactUri, values, null, null);
+
+        // Undemote the contact if necessary
+        final Cursor c = getContentResolver().query(contactUri, new String[] {Contacts._ID},
+                null, null, null);
+        if (c == null) {
+            return;
+        }
+        try {
+            if (c.moveToFirst()) {
+                final long id = c.getLong(0);
+
+                // Don't bother undemoting if this contact is the user's profile.
+                if (id < Profile.MIN_ID) {
+                    PinnedPositionsCompat.undemote(getContentResolver(), id);
+                }
+            }
+        } finally {
+            c.close();
+        }
+    }
+
+    /**
+     * Creates an intent that can be sent to this service to set the redirect to voicemail.
+     */
+    public static Intent createSetSendToVoicemail(Context context, Uri contactUri,
+            boolean value) {
+        Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_SET_SEND_TO_VOICEMAIL);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_CONTACT_URI, contactUri);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_SEND_TO_VOICEMAIL_FLAG, value);
+
+        return serviceIntent;
+    }
+
+    private void setSendToVoicemail(Intent intent) {
+        Uri contactUri = intent.getParcelableExtra(EXTRA_CONTACT_URI);
+        boolean value = intent.getBooleanExtra(EXTRA_SEND_TO_VOICEMAIL_FLAG, false);
+        if (contactUri == null) {
+            Log.e(TAG, "Invalid arguments for setRedirectToVoicemail");
+            return;
+        }
+
+        final ContentValues values = new ContentValues(1);
+        values.put(Contacts.SEND_TO_VOICEMAIL, value);
+        getContentResolver().update(contactUri, values, null, null);
+    }
+
+    /**
+     * Creates an intent that can be sent to this service to save the contact's ringtone.
+     */
+    public static Intent createSetRingtone(Context context, Uri contactUri,
+            String value) {
+        Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_SET_RINGTONE);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_CONTACT_URI, contactUri);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_CUSTOM_RINGTONE, value);
+
+        return serviceIntent;
+    }
+
+    private void setRingtone(Intent intent) {
+        Uri contactUri = intent.getParcelableExtra(EXTRA_CONTACT_URI);
+        String value = intent.getStringExtra(EXTRA_CUSTOM_RINGTONE);
+        if (contactUri == null) {
+            Log.e(TAG, "Invalid arguments for setRingtone");
+            return;
+        }
+        ContentValues values = new ContentValues(1);
+        values.put(Contacts.CUSTOM_RINGTONE, value);
+        getContentResolver().update(contactUri, values, null, null);
+    }
+
+    /**
+     * Creates an intent that sets the selected data item as super primary (default)
+     */
+    public static Intent createSetSuperPrimaryIntent(Context context, long dataId) {
+        Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_SET_SUPER_PRIMARY);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_DATA_ID, dataId);
+        return serviceIntent;
+    }
+
+    private void setSuperPrimary(Intent intent) {
+        long dataId = intent.getLongExtra(EXTRA_DATA_ID, -1);
+        if (dataId == -1) {
+            Log.e(TAG, "Invalid arguments for setSuperPrimary request");
+            return;
+        }
+
+        ContactUpdateUtils.setSuperPrimary(this, dataId);
+    }
+
+    /**
+     * Creates an intent that clears the primary flag of all data items that belong to the same
+     * raw_contact as the given data item. Will only clear, if the data item was primary before
+     * this call
+     */
+    public static Intent createClearPrimaryIntent(Context context, long dataId) {
+        Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_CLEAR_PRIMARY);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_DATA_ID, dataId);
+        return serviceIntent;
+    }
+
+    private void clearPrimary(Intent intent) {
+        long dataId = intent.getLongExtra(EXTRA_DATA_ID, -1);
+        if (dataId == -1) {
+            Log.e(TAG, "Invalid arguments for clearPrimary request");
+            return;
+        }
+
+        // Update the primary values in the data record.
+        ContentValues values = new ContentValues(1);
+        values.put(Data.IS_SUPER_PRIMARY, 0);
+        values.put(Data.IS_PRIMARY, 0);
+
+        getContentResolver().update(ContentUris.withAppendedId(Data.CONTENT_URI, dataId),
+                values, null, null);
+    }
+
+    /**
+     * Creates an intent that can be sent to this service to delete a contact.
+     */
+    public static Intent createDeleteContactIntent(Context context, Uri contactUri) {
+        Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_DELETE_CONTACT);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_CONTACT_URI, contactUri);
+        return serviceIntent;
+    }
+
+    /**
+     * Creates an intent that can be sent to this service to delete multiple contacts.
+     */
+    public static Intent createDeleteMultipleContactsIntent(Context context,
+            long[] contactIds) {
+        Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_DELETE_MULTIPLE_CONTACTS);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_CONTACT_IDS, contactIds);
+        return serviceIntent;
+    }
+
+    private void deleteContact(Intent intent) {
+        Uri contactUri = intent.getParcelableExtra(EXTRA_CONTACT_URI);
+        if (contactUri == null) {
+            Log.e(TAG, "Invalid arguments for deleteContact request");
+            return;
+        }
+
+        getContentResolver().delete(contactUri, null, null);
+    }
+
+    private void deleteMultipleContacts(Intent intent) {
+        final long[] contactIds = intent.getLongArrayExtra(EXTRA_CONTACT_IDS);
+        if (contactIds == null) {
+            Log.e(TAG, "Invalid arguments for deleteMultipleContacts request");
+            return;
+        }
+        for (long contactId : contactIds) {
+            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);
+        mMainHandler.post(new Runnable() {
+            @Override
+            public void run() {
+                Toast.makeText(ContactSaveService.this, deleteToastMessage, Toast.LENGTH_LONG)
+                        .show();
+            }
+        });
+    }
+
+    /**
+     * 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 TYPE_AUTOMATIC for AggregationExceptions 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;
+    }
+
+    private void splitContact(Intent intent) {
+        final long rawContactIds[][] = (long[][]) intent
+                .getSerializableExtra(EXTRA_RAW_CONTACT_IDS);
+        final ResultReceiver receiver = intent.getParcelableExtra(EXTRA_RESULT_RECEIVER);
+        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])) {
+                        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;
+        }
+        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) {
+        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]);
+                // 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.
+     */
+    public static Intent createJoinContactsIntent(Context context, long contactId1,
+            long contactId2, Class<? extends Activity> callbackActivity, String callbackAction) {
+        Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_JOIN_CONTACTS);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_CONTACT_ID1, contactId1);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_CONTACT_ID2, contactId2);
+
+        // Callback intent will be invoked by the service once the contacts are joined.
+        Intent callbackIntent = new Intent(context, callbackActivity);
+        callbackIntent.setAction(callbackAction);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_CALLBACK_INTENT, callbackIntent);
+
+        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,
+            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 = {
+                RawContacts._ID,
+                RawContacts.CONTACT_ID,
+                RawContacts.DISPLAY_NAME_SOURCE,
+        };
+
+        int _ID = 0;
+        int CONTACT_ID = 1;
+        int DISPLAY_NAME_SOURCE = 2;
+    }
+
+    private interface ContactEntityQuery {
+        String[] PROJECTION = {
+                Contacts.Entity.DATA_ID,
+                Contacts.Entity.CONTACT_ID,
+                Contacts.Entity.IS_SUPER_PRIMARY,
+        };
+        String SELECTION = Data.MIMETYPE + " = '" + StructuredName.CONTENT_ITEM_TYPE + "'" +
+                " AND " + StructuredName.DISPLAY_NAME + "=" + Contacts.DISPLAY_NAME +
+                " AND " + StructuredName.DISPLAY_NAME + " IS NOT NULL " +
+                " AND " + StructuredName.DISPLAY_NAME + " != '' ";
+
+        int DATA_ID = 0;
+        int CONTACT_ID = 1;
+        int IS_SUPER_PRIMARY = 2;
+    }
+
+    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.
+        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;
+        }
+
+        // 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;
+        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) {
+                    buildJoinContactDiff(operations, rawContactIds[i], rawContactIds[j]);
+                }
+                // Before we get to 500 we need to flush the operations list
+                if (operations.size() > 0 && operations.size() % batchSize == 0) {
+                    if (!applyOperations(resolver, operations)) {
+                        if (receiver != null) {
+                            receiver.send(CP2_ERROR, new Bundle());
+                        }
+                        return;
+                    }
+                    operations.clear();
+                }
+            }
+        }
+        if (operations.size() > 0 && !applyOperations(resolver, operations)) {
+            if (receiver != null) {
+                receiver.send(CP2_ERROR, new Bundle());
+            }
+            return;
+        }
+
+        if (receiver != null) {
+            final Bundle result = new Bundle();
+            result.putSerializable(EXTRA_RAW_CONTACT_IDS, separatedRawContactIds);
+            result.putString(EXTRA_DISPLAY_NAME, queryNameOfLinkedContacts(contactIds));
+            receiver.send(CONTACTS_LINKED, result);
+        } else {
+            showToast(R.string.contactsJoinedMessage);
+        }
+    }
+
+    // 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.DISPLAY_NAME}, whereBuilder.toString(), whereArgs, null);
+        try {
+            if (cursor.moveToFirst()) {
+                return cursor.getString(0);
+            }
+            return null;
+        } finally {
+            cursor.close();
+        }
+    }
+
+
+    /** Returns true if the batch was successfully applied and false otherwise. */
+    private boolean applyOperations(ContentResolver resolver,
+            ArrayList<ContentProviderOperation> operations) {
+        try {
+            resolver.applyBatch(ContactsContract.AUTHORITY, operations);
+            return true;
+        } catch (RemoteException | OperationApplicationException e) {
+            Log.e(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);
+
+        // Load raw contact IDs for all raw contacts involved - currently edited and selected
+        // in the join UIs.
+        long rawContactIds[] = getRawContactIdsForAggregation(contactId1, contactId2);
+        if (rawContactIds == null) {
+            Log.e(TAG, "Invalid arguments for joinContacts request");
+            return;
+        }
+
+        ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();
+
+        // For each pair of raw contacts, insert an aggregation exception
+        for (int i = 0; i < rawContactIds.length; i++) {
+            for (int j = 0; j < rawContactIds.length; j++) {
+                if (i != j) {
+                    buildJoinContactDiff(operations, rawContactIds[i], rawContactIds[j]);
+                }
+            }
+        }
+
+        final ContentResolver resolver = getContentResolver();
+
+        // Use the name for contactId1 as the name for the newly aggregated contact.
+        final Uri contactId1Uri = ContentUris.withAppendedId(
+                Contacts.CONTENT_URI, contactId1);
+        final Uri entityUri = Uri.withAppendedPath(
+                contactId1Uri, Contacts.Entity.CONTENT_DIRECTORY);
+        Cursor c = resolver.query(entityUri,
+                ContactEntityQuery.PROJECTION, ContactEntityQuery.SELECTION, null, null);
+        if (c == null) {
+            Log.e(TAG, "Unable to open Contacts DB cursor");
+            showToast(R.string.contactSavedErrorToast);
+            return;
+        }
+        long dataIdToAddSuperPrimary = -1;
+        try {
+            if (c.moveToFirst()) {
+                dataIdToAddSuperPrimary = c.getLong(ContactEntityQuery.DATA_ID);
+            }
+        } finally {
+            c.close();
+        }
+
+        // Mark the name from contactId1 IS_SUPER_PRIMARY to make sure that the contact
+        // display name does not change as a result of the join.
+        if (dataIdToAddSuperPrimary != -1) {
+            Builder builder = ContentProviderOperation.newUpdate(
+                    ContentUris.withAppendedId(Data.CONTENT_URI, dataIdToAddSuperPrimary));
+            builder.withValue(Data.IS_SUPER_PRIMARY, 1);
+            builder.withValue(Data.IS_PRIMARY, 1);
+            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);
+        }
+
+        Intent callbackIntent = intent.getParcelableExtra(EXTRA_CALLBACK_INTENT);
+        if (success) {
+            Uri uri = RawContacts.getContactLookupUri(resolver,
+                    ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactIds[0]));
+            callbackIntent.setData(uri);
+        }
+        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();
+
+        final StringBuilder queryBuilder = new StringBuilder();
+        final String stringContactIds[] = new String[contactIds.length];
+        for (int i = 0; i < contactIds.length; i++) {
+            queryBuilder.append(RawContacts.CONTACT_ID + "=?");
+            stringContactIds[i] = String.valueOf(contactIds[i]);
+            if (contactIds[i] == -1) {
+                return null;
+            }
+            if (i == contactIds.length -1) {
+                break;
+            }
+            queryBuilder.append(" OR ");
+        }
+
+        final Cursor c = resolver.query(RawContacts.CONTENT_URI,
+                JoinContactQuery.PROJECTION,
+                queryBuilder.toString(),
+                stringContactIds, null);
+        if (c == null) {
+            Log.e(TAG, "Unable to open Contacts DB cursor");
+            showToast(R.string.contactSavedErrorToast);
+            return null;
+        }
+        long rawContactIds[];
+        try {
+            if (c.getCount() < 2) {
+                Log.e(TAG, "Not enough raw contacts to aggregate together.");
+                return null;
+            }
+            rawContactIds = new long[c.getCount()];
+            for (int i = 0; i < rawContactIds.length; i++) {
+                c.moveToPosition(i);
+                long rawContactId = c.getLong(JoinContactQuery._ID);
+                rawContactIds[i] = rawContactId;
+            }
+        } finally {
+            c.close();
+        }
+        return rawContactIds;
+    }
+
+    private long[] getRawContactIdsForAggregation(long contactId1, long contactId2) {
+        return getRawContactIdsForAggregation(new long[] {contactId1, contactId2});
+    }
+
+    /**
+     * Construct a {@link AggregationExceptions#TYPE_KEEP_TOGETHER} ContentProviderOperation.
+     */
+    private void buildJoinContactDiff(ArrayList<ContentProviderOperation> operations,
+            long rawContactId1, long rawContactId2) {
+        Builder builder =
+                ContentProviderOperation.newUpdate(AggregationExceptions.CONTENT_URI);
+        builder.withValue(AggregationExceptions.TYPE, AggregationExceptions.TYPE_KEEP_TOGETHER);
+        builder.withValue(AggregationExceptions.RAW_CONTACT_ID1, rawContactId1);
+        builder.withValue(AggregationExceptions.RAW_CONTACT_ID2, rawContactId2);
+        operations.add(builder.build());
+    }
+
+    /**
+     * Construct a {@link AggregationExceptions#TYPE_AUTOMATIC} ContentProviderOperation.
+     */
+    private void buildSplitContactDiff(ArrayList<ContentProviderOperation> operations,
+            long rawContactId1, long rawContactId2) {
+        final Builder builder =
+                ContentProviderOperation.newUpdate(AggregationExceptions.CONTENT_URI);
+        builder.withValue(AggregationExceptions.TYPE, AggregationExceptions.TYPE_AUTOMATIC);
+        builder.withValue(AggregationExceptions.RAW_CONTACT_ID1, rawContactId1);
+        builder.withValue(AggregationExceptions.RAW_CONTACT_ID2, rawContactId2);
+        operations.add(builder.build());
+    }
+
+    /**
+     * Shows a toast on the UI thread.
+     */
+    private void showToast(final int message) {
+        mMainHandler.post(new Runnable() {
+
+            @Override
+            public void run() {
+                Toast.makeText(ContactSaveService.this, message, Toast.LENGTH_LONG).show();
+            }
+        });
+    }
+
+    private void deliverCallback(final Intent callbackIntent) {
+        mMainHandler.post(new Runnable() {
+
+            @Override
+            public void run() {
+                deliverCallbackOnUiThread(callbackIntent);
+            }
+        });
+    }
+
+    void deliverCallbackOnUiThread(final Intent callbackIntent) {
+        // TODO: this assumes that if there are multiple instances of the same
+        // activity registered, the last one registered is the one waiting for
+        // the callback. Validity of this assumption needs to be verified.
+        for (Listener listener : sListeners) {
+            if (callbackIntent.getComponent().equals(
+                    ((Activity) listener).getIntent().getComponent())) {
+                listener.onServiceCompleted(callbackIntent);
+                return;
+            }
+        }
+    }
+}
diff --git a/src/com/android/contacts/ContactsActivity.java b/src/com/android/contacts/ContactsActivity.java
new file mode 100644
index 0000000..82d1f98
--- /dev/null
+++ b/src/com/android/contacts/ContactsActivity.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;
+
+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.common.activity.TransactionSafeActivity;
+import com.android.contacts.common.testing.InjectedServices;
+
+/**
+ * A common superclass for Contacts activities that handles application-wide services.
+ */
+public abstract class ContactsActivity extends TransactionSafeActivity
+    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/ContactsApplication.java b/src/com/android/contacts/ContactsApplication.java
new file mode 100644
index 0000000..0ba1f02
--- /dev/null
+++ b/src/com/android/contacts/ContactsApplication.java
@@ -0,0 +1,144 @@
+/*
+ * 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.Application;
+import android.app.FragmentManager;
+import android.app.LoaderManager;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.AsyncTask;
+import android.os.StrictMode;
+import android.preference.PreferenceManager;
+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.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
+
+    private static InjectedServices sInjectedServices;
+    /**
+     * Log tag for enabling/disabling StrictMode violation log.
+     * To enable: adb shell setprop log.tag.ContactsStrictMode DEBUG
+     */
+    public static final String STRICT_MODE_TAG = "ContactsStrictMode";
+
+    /**
+     * Overrides the system services with mocks for testing.
+     */
+    @VisibleForTesting
+    public static void injectServices(InjectedServices services) {
+        sInjectedServices = services;
+    }
+
+    public static InjectedServices getInjectedServices() {
+        return sInjectedServices;
+    }
+
+    @Override
+    public ContentResolver getContentResolver() {
+        if (sInjectedServices != null) {
+            ContentResolver resolver = sInjectedServices.getContentResolver();
+            if (resolver != null) {
+                return resolver;
+            }
+        }
+        return super.getContentResolver();
+    }
+
+    @Override
+    public SharedPreferences getSharedPreferences(String name, int mode) {
+        if (sInjectedServices != null) {
+            SharedPreferences prefs = sInjectedServices.getSharedPreferences();
+            if (prefs != null) {
+                return prefs;
+            }
+        }
+
+        return super.getSharedPreferences(name, mode);
+    }
+
+    @Override
+    public Object getSystemService(String name) {
+        if (sInjectedServices != null) {
+            Object service = sInjectedServices.getSystemService(name);
+            if (service != null) {
+                return service;
+            }
+        }
+
+        return super.getSystemService(name);
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+
+        if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) {
+            Log.d(Constants.PERFORMANCE_TAG, "ContactsApplication.onCreate start");
+        }
+
+        if (ENABLE_FRAGMENT_LOG) FragmentManager.enableDebugLogging(true);
+        if (ENABLE_LOADER_LOG) LoaderManager.enableDebugLogging(true);
+
+        if (Log.isLoggable(STRICT_MODE_TAG, Log.DEBUG)) {
+            StrictMode.setThreadPolicy(
+                    new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().build());
+        }
+
+        // Perform the initialization that doesn't have to finish immediately.
+        // We use an async task here just to avoid creating a new thread.
+        (new DelayedInitializer()).execute();
+
+        if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) {
+            Log.d(Constants.PERFORMANCE_TAG, "ContactsApplication.onCreate finish");
+        }
+
+        AnalyticsUtil.initialize(this);
+    }
+
+    private class DelayedInitializer extends AsyncTask<Void, Void, Void> {
+        @Override
+        protected Void doInBackground(Void... params) {
+            final Context context = ContactsApplication.this;
+
+            // Warm up the preferences and the contacts provider.  We delay initialization
+            // of the account type manager because we may not have the contacts group permission
+            // (and thus not have the get accounts permission).
+            PreferenceManager.getDefaultSharedPreferences(context);
+            getContentResolver().getType(ContentUris.withAppendedId(Contacts.CONTENT_URI, 1));
+
+            return null;
+        }
+
+        public void execute() {
+            executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,
+                    (Void[]) null);
+        }
+    }
+}
diff --git a/src/com/android/contacts/ContactsDrawerActivity.java b/src/com/android/contacts/ContactsDrawerActivity.java
new file mode 100644
index 0000000..c8d8eb3
--- /dev/null
+++ b/src/com/android/contacts/ContactsDrawerActivity.java
@@ -0,0 +1,675 @@
+/*
+ * 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.accounts.Account;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.content.Intent;
+import android.graphics.Color;
+import android.graphics.PorterDuff;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract.Intents;
+import android.support.annotation.LayoutRes;
+import android.support.design.widget.NavigationView;
+import android.support.v4.content.ContextCompat;
+import android.support.v4.view.GravityCompat;
+import android.support.v4.widget.DrawerLayout;
+import android.support.v7.app.ActionBarDrawerToggle;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.Toolbar;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.SubMenu;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.Toast;
+
+import com.android.contacts.activities.GroupMembersActivity;
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.common.editor.SelectAccountDialogFragment;
+import com.android.contacts.common.list.AccountFilterActivity;
+import com.android.contacts.common.list.ContactListFilter;
+import com.android.contacts.common.list.ContactListFilterController;
+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.preference.ContactsPreferenceActivity;
+import com.android.contacts.common.util.AccountFilterUtil;
+import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
+import com.android.contacts.common.util.ImplicitIntentsUtil;
+import com.android.contacts.common.util.ViewUtil;
+import com.android.contacts.editor.ContactEditorFragment;
+import com.android.contacts.group.GroupListItem;
+import com.android.contacts.group.GroupMetadata;
+import com.android.contacts.group.GroupNameEditDialogFragment;
+import com.android.contacts.group.GroupUtil;
+import com.android.contacts.group.GroupsFragment;
+import com.android.contacts.group.GroupsFragment.GroupsListener;
+import com.android.contacts.interactions.AccountFiltersFragment;
+import com.android.contacts.interactions.AccountFiltersFragment.AccountFiltersListener;
+import com.android.contacts.quickcontact.QuickContactActivity;
+import com.android.contacts.util.SharedPreferenceUtil;
+import com.android.contactsbind.Assistants;
+import com.android.contactsbind.HelpUtils;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+/**
+ * A common superclass for Contacts activities with a navigation drawer.
+ */
+public abstract class ContactsDrawerActivity extends AppCompatContactsActivity implements
+        AccountFiltersListener,
+        GroupsListener,
+        NavigationView.OnNavigationItemSelectedListener,
+        SelectAccountDialogFragment.Listener,
+        GroupNameEditDialogFragment.Listener {
+
+    protected static String TAG = "ContactsDrawerActivity";
+
+    private static final String TAG_GROUPS = "groups";
+    private static final String TAG_FILTERS = "filters";
+    private static final String TAG_SELECT_ACCOUNT_DIALOG = "selectAccountDialog";
+    private static final String TAG_GROUP_NAME_EDIT_DIALOG = "groupNameEditDialog";
+
+    private static final String KEY_NEW_GROUP_ACCOUNT = "newGroupAccount";
+
+    protected static final String ACTION_CREATE_GROUP = "createGroup";
+
+    // TODO(wenyiw): remove all the code related to these constants after switching to fragments.
+    // Positions of "all contacts" and "duplicates" in navigation drawer.
+    private static final int ALL_CONTACTS_POSITION = 1;
+    private static final int DUPLICATES_POSITION = 2;
+    // Gap between two menu groups, including a separator, a menu group header.
+    private static final int GAP_BETWEEN_TWO_MENU_GROUPS = 2;
+
+    private class ContactsActionBarDrawerToggle extends ActionBarDrawerToggle {
+
+        private Runnable mRunnable;
+        private boolean mMenuClickedBefore = SharedPreferenceUtil.getHamburgerMenuClickedBefore(
+                ContactsDrawerActivity.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(ContactsDrawerActivity.this);
+                mMenuClickedBefore = true;
+            }
+            invalidateOptionsMenu();
+        }
+
+        @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) {
+                makeStatusBarTransparent();
+            }
+            if (mRunnable != null && newState == DrawerLayout.STATE_IDLE) {
+                mRunnable.run();
+                mRunnable = null;
+            }
+        }
+
+        public void runWhenIdle(Runnable runnable) {
+            mRunnable = runnable;
+        }
+    }
+
+    protected ContactListFilterController mContactListFilterController;
+    protected DrawerLayout mDrawer;
+    protected ContactsActionBarDrawerToggle mToggle;
+    protected Toolbar mToolbar;
+    protected NavigationView mNavigationView;
+    protected GroupsFragment mGroupsFragment;
+    protected AccountFiltersFragment mAccountFiltersFragment;
+
+    // Checkable menu item lookup maps. Every map declared here should be added to
+    // clearCheckedMenus() so that they can be cleared.
+    // TODO find a better way to handle selected menu item state, when swicthing to fragments.
+    protected Map<Long, MenuItem> mGroupMenuMap = new HashMap<>();
+    protected Map<ContactListFilter, MenuItem> mFilterMenuMap = new HashMap<>();
+    protected Map<Integer, MenuItem> mIdMenuMap = new HashMap<>();
+
+    // The account the new group will be created under.
+    private AccountWithDataSet mNewGroupAccount;
+
+    private int mPositionOfLastGroup;
+
+    @Override
+    protected void onCreate(Bundle savedState) {
+        super.onCreate(savedState);
+
+        mContactListFilterController = ContactListFilterController.getInstance(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.
+        mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
+        mToggle = new ContactsActionBarDrawerToggle(this, mDrawer, mToolbar,
+                R.string.navigation_drawer_open, R.string.navigation_drawer_close);
+        mDrawer.setDrawerListener(mToggle);
+        mToggle.syncState();
+
+        // Set up hamburger menu items.
+        mNavigationView = (NavigationView) findViewById(R.id.nav_view);
+        mNavigationView.setNavigationItemSelectedListener(this);
+
+        final Menu menu = mNavigationView.getMenu();
+
+        final MenuItem allContacts = menu.findItem(R.id.nav_all_contacts);
+        mIdMenuMap.put(R.id.nav_all_contacts, allContacts);
+
+        if (Assistants.getDuplicatesActivityIntent(this) == null) {
+            menu.removeItem(R.id.nav_find_duplicates);
+        } else {
+            final MenuItem findDup = menu.findItem(R.id.nav_find_duplicates);
+            mIdMenuMap.put(R.id.nav_find_duplicates, findDup);
+        }
+
+        if (!HelpUtils.isHelpAndFeedbackAvailable()) {
+            menu.removeItem(R.id.nav_help);
+        }
+
+        loadGroupsAndFilters();
+
+        if (isDuplicatesActivity()) {
+            clearCheckedMenus();
+            mIdMenuMap.get(R.id.nav_find_duplicates).setCheckable(true);
+            mIdMenuMap.get(R.id.nav_find_duplicates).setChecked(true);
+            maybeUpdateScrollPosition(DUPLICATES_POSITION);
+        }
+
+        if (savedState != null && savedState.containsKey(KEY_NEW_GROUP_ACCOUNT)) {
+            mNewGroupAccount = AccountWithDataSet.unstringify(
+                    savedState.getString(KEY_NEW_GROUP_ACCOUNT));
+        }
+    }
+
+    private void maybeUpdateScrollPosition(int position) {
+        if (mDrawer.isDrawerOpen(GravityCompat.START)) {
+            if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "Don't scroll menu when drawer open");
+            return;
+        }
+        final RecyclerView recyclerView = (RecyclerView) mNavigationView.getChildAt(0);
+        final LinearLayoutManager layoutManager =
+                (LinearLayoutManager) recyclerView.getLayoutManager();
+
+        // Get screen height
+        final DisplayMetrics metrics = getResources().getDisplayMetrics();
+        final int height = metrics.heightPixels;
+
+        // Set 1/3 screen height as offset if possible.
+        layoutManager.scrollToPositionWithOffset(position, height / 3);
+        recyclerView.requestLayout();
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        if (mNewGroupAccount != null) {
+            outState.putString(KEY_NEW_GROUP_ACCOUNT, mNewGroupAccount.stringify());
+        }
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        if (mDrawer.isDrawerOpen(GravityCompat.START)) {
+            makeStatusBarTransparent();
+        }
+    }
+
+    private void makeStatusBarTransparent() {
+        // Avoid making status bar transparent when action bar's selection mode is on.
+        if (getWindow().getStatusBarColor() !=
+                ContextCompat.getColor(this, R.color.contextual_selection_bar_status_bar_color)
+                        && CompatUtils.isLollipopCompatible()) {
+            getWindow().setStatusBarColor(Color.TRANSPARENT);
+        }
+    }
+
+    @Override
+    protected void onNewIntent(Intent newIntent) {
+        if (ACTION_CREATE_GROUP.equals(newIntent.getAction())) {
+            final Uri groupUri = newIntent.getData();
+            if (groupUri == null) {
+                Toast.makeText(this, R.string.groupSavedErrorToast, Toast.LENGTH_SHORT).show();
+                return;
+            }
+            if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "Received group URI " + groupUri);
+            Toast.makeText(this, R.string.groupCreatedToast, Toast.LENGTH_SHORT).show();
+            startActivity(GroupUtil.createViewGroupIntent(this, groupUri, /* title */ null));
+            if (shouldFinish()) {
+                // If we created a group while viewing the members of an existing group (i.e.
+                // while on GroupMembersActivity), finish the current GroupMembersActivity so that
+                // hitting back from the new GroupMembersActivity that was just stared will open
+                // the all contacts list. See b/30047708.
+                finish();
+            }
+        } else {
+            super.onNewIntent(newIntent);
+        }
+    }
+
+    /**
+     * Returns true if child class is DuplicatesActivity
+     */
+    protected boolean isDuplicatesActivity() {
+        return false;
+    }
+
+    // Set up fragment manager to load groups and filters.
+    protected void loadGroupsAndFilters() {
+        final FragmentManager fragmentManager = getFragmentManager();
+        final FragmentTransaction transaction = fragmentManager.beginTransaction();
+        addGroupsAndFiltersFragments(transaction);
+        transaction.commitAllowingStateLoss();
+        fragmentManager.executePendingTransactions();
+    }
+
+    @Override
+    public void setContentView(@LayoutRes int layoutResID) {
+        final ViewGroup parent = (ViewGroup) findViewById(R.id.content_frame);
+        if (parent != null) {
+            parent.removeAllViews();
+        }
+        LayoutInflater.from(this).inflate(layoutResID, parent);
+    }
+
+    protected void addGroupsAndFiltersFragments(FragmentTransaction transaction) {
+        final FragmentManager fragmentManager = getFragmentManager();
+        mGroupsFragment = (GroupsFragment) fragmentManager.findFragmentByTag(TAG_GROUPS);
+        mAccountFiltersFragment = (AccountFiltersFragment)
+                fragmentManager.findFragmentByTag(TAG_FILTERS);
+
+        if (mGroupsFragment == null && ContactsUtils.areGroupWritableAccountsAvailable(this)) {
+            mGroupsFragment = new GroupsFragment();
+            transaction.add(mGroupsFragment, TAG_GROUPS);
+        }
+
+        if (mAccountFiltersFragment == null) {
+            mAccountFiltersFragment = new AccountFiltersFragment();
+            transaction.add(mAccountFiltersFragment, TAG_FILTERS);
+        }
+
+        if (ContactsUtils.areGroupWritableAccountsAvailable(this) && mGroupsFragment != null) {
+            mGroupsFragment.setListener(this);
+        }
+        mAccountFiltersFragment.setListener(this);
+    }
+
+    @Override
+    public void onGroupsLoaded(List<GroupListItem> groupListItems) {
+        final Menu menu = mNavigationView.getMenu();
+        final MenuItem groupsMenuItem = menu.findItem(R.id.nav_groups);
+        final SubMenu subMenu = groupsMenuItem.getSubMenu();
+        subMenu.removeGroup(R.id.nav_groups_items);
+        mGroupMenuMap = new HashMap<>();
+
+        mPositionOfLastGroup = DUPLICATES_POSITION + GAP_BETWEEN_TWO_MENU_GROUPS;
+
+        if (groupListItems != null) {
+            // Add each group
+            for (final GroupListItem groupListItem : groupListItems) {
+                if (GroupUtil.isEmptyFFCGroup(groupListItem)) {
+                    continue;
+                }
+                mPositionOfLastGroup++;
+                final String title = groupListItem.getTitle();
+                final MenuItem menuItem =
+                        subMenu.add(R.id.nav_groups_items, Menu.NONE, mPositionOfLastGroup, title);
+                mGroupMenuMap.put(groupListItem.getGroupId(), menuItem);
+                menuItem.setIcon(R.drawable.ic_menu_label);
+                menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
+                    @Override
+                    public boolean onMenuItemClick(MenuItem item) {
+                        mToggle.runWhenIdle(new Runnable() {
+                            @Override
+                            public void run() {
+                                onGroupMenuItemClicked(groupListItem.getGroupId(),
+                                        groupListItem.getTitle());
+                            }
+                        });
+                        mDrawer.closeDrawer(GravityCompat.START);
+                        return true;
+                    }
+                });
+            }
+        }
+
+        // Don't show "Create new..." menu if there's no group-writable accounts available.
+        if (!ContactsUtils.areGroupWritableAccountsAvailable(this)) {
+            return;
+        }
+
+        mPositionOfLastGroup++;
+        // Create a menu item in the sub menu to add new groups
+        final MenuItem menuItem = subMenu.add(R.id.nav_groups_items, Menu.NONE,
+                mPositionOfLastGroup, getString(R.string.menu_new_group_action_bar));
+        menuItem.setIcon(R.drawable.ic_add);
+        menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
+            @Override
+            public boolean onMenuItemClick(MenuItem item) {
+                mToggle.runWhenIdle(new Runnable() {
+                    @Override
+                    public void run() {
+                        onCreateGroupMenuItemClicked();
+                    }
+                });
+                mDrawer.closeDrawer(GravityCompat.START);
+                return true;
+            }
+        });
+
+        if (getGroupMetadata() != null) {
+            updateGroupMenu(getGroupMetadata());
+        }
+    }
+
+    protected void updateGroupMenu(GroupMetadata groupMetadata) {
+        clearCheckedMenus();
+        if (groupMetadata != null && mGroupMenuMap != null
+                && mGroupMenuMap.get(groupMetadata.groupId) != null) {
+            mGroupMenuMap.get(groupMetadata.groupId).setCheckable(true);
+            mGroupMenuMap.get(groupMetadata.groupId).setChecked(true);
+            maybeUpdateScrollPosition(mGroupMenuMap.get(groupMetadata.groupId).getOrder());
+        }
+    }
+
+    /**
+     * Returns group metadata if the child class is {@link GroupMembersActivity}, and null
+     * otherwise.
+     */
+    protected GroupMetadata getGroupMetadata() {
+        return null;
+    }
+
+    protected void onGroupMenuItemClicked(long groupId, String title) {
+        startActivity(GroupUtil.createViewGroupIntent(this, groupId, title));
+        if (shouldFinish()) {
+            finish();
+        }
+    }
+
+    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) {
+            selectAccount();
+        } 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);
+        }
+    }
+
+    @Override
+    public void onFiltersLoaded(List<ContactListFilter> accountFilterItems) {
+        final Menu menu = mNavigationView.getMenu();
+        final MenuItem filtersMenuItem = menu.findItem(R.id.nav_filters);
+        final SubMenu subMenu = filtersMenuItem.getSubMenu();
+        subMenu.removeGroup(R.id.nav_filters_items);
+        mFilterMenuMap = new HashMap<>();
+
+        if (accountFilterItems == null || accountFilterItems.size() < 2) {
+            return;
+        }
+
+        int positionOfLastFilter = mPositionOfLastGroup + GAP_BETWEEN_TWO_MENU_GROUPS;
+
+        for (int i = 0; i < accountFilterItems.size(); i++) {
+            positionOfLastFilter++;
+            final ContactListFilter filter = accountFilterItems.get(i);
+            final String menuName =
+                    filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS
+                            ? getString(R.string.account_phone) : filter.accountName;
+            final MenuItem menuItem = subMenu.add(R.id.nav_filters_items, Menu.NONE,
+                    positionOfLastFilter, menuName);
+            mFilterMenuMap.put(filter, menuItem);
+            final Intent intent = new Intent();
+            intent.putExtra(AccountFilterActivity.EXTRA_CONTACT_LIST_FILTER, filter);
+            menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
+                @Override
+                public boolean onMenuItemClick(MenuItem item) {
+                    mToggle.runWhenIdle(new Runnable() {
+                        @Override
+                        public void run() {
+                            AccountFilterUtil.handleAccountFilterResult(
+                                    mContactListFilterController, AppCompatActivity.RESULT_OK,
+                                    intent);
+                            if (shouldFinish()) {
+                                finish();
+                            }
+                        }
+                    });
+                    mDrawer.closeDrawer(GravityCompat.START);
+                    return true;
+                }
+            });
+            menuItem.setIcon(filter.icon);
+            // Get rid of the default menu item overlay and show original account icons.
+            menuItem.getIcon().setColorFilter(Color.TRANSPARENT, PorterDuff.Mode.SRC_ATOP);
+            // Create a dummy action view to attach extra hidden content description to the menuItem
+            // for Talkback. We want Talkback to read out the account type but not have it be part
+            // of the menuItem title.
+            final AccountType account = AccountTypeManager.getInstance(this)
+                    .getAccountType(filter.accountType, filter.dataSet);
+            LinearLayout view = (LinearLayout) LayoutInflater.from(this)
+                    .inflate(R.layout.account_type_info, null);
+            view.setContentDescription(account.getDisplayLabel(this));
+            view.setVisibility(View.VISIBLE);
+            menuItem.setActionView(view);
+        }
+
+        if (getContactListFilter() != null) {
+            updateFilterMenu(getContactListFilter());
+        }
+    }
+
+    protected void updateFilterMenu(ContactListFilter filter) {
+        clearCheckedMenus();
+        if (filter != null && filter.isContactsFilterType()) {
+            if (mIdMenuMap != null && mIdMenuMap.get(R.id.nav_all_contacts) != null) {
+                mIdMenuMap.get(R.id.nav_all_contacts).setCheckable(true);
+                mIdMenuMap.get(R.id.nav_all_contacts).setChecked(true);
+                maybeUpdateScrollPosition(ALL_CONTACTS_POSITION);
+            }
+        } else {
+            if (mFilterMenuMap != null && mFilterMenuMap.get(filter) != null) {
+                mFilterMenuMap.get(filter).setCheckable(true);
+                mFilterMenuMap.get(filter).setChecked(true);
+                maybeUpdateScrollPosition(mFilterMenuMap.get(filter).getOrder());
+            }
+        }
+    }
+
+    /**
+     * Returns the current filter if the child class is PeopleActivity, and null otherwise.
+     */
+    protected ContactListFilter getContactListFilter() {
+        return null;
+    }
+
+    /**
+     * Returns true if the child activity should finish after launching another activity.
+     */
+    protected abstract boolean shouldFinish();
+
+    @Override
+    public boolean onNavigationItemSelected(final MenuItem item) {
+        final int id = item.getItemId();
+        mToggle.runWhenIdle(new Runnable() {
+            @Override
+            public void run() {
+                if (id == R.id.nav_settings) {
+                    startActivity(createPreferenceIntent());
+                } else if (id == R.id.nav_help) {
+                    HelpUtils.launchHelpAndFeedbackForMainScreen(ContactsDrawerActivity.this);
+                } else if (id == R.id.nav_all_contacts) {
+                    switchToAllContacts();
+                } else if (id == R.id.nav_find_duplicates) {
+                    launchFindDuplicates();
+                } else if (item.getIntent() != null) {
+                    ImplicitIntentsUtil.startActivityInApp(ContactsDrawerActivity.this,
+                            item.getIntent());
+                } else {
+                    Log.w(TAG, "Unhandled navigation view item selection");
+                }
+            }
+        });
+
+        mDrawer.closeDrawer(GravityCompat.START);
+        return true;
+    }
+
+    private Intent createPreferenceIntent() {
+        final Intent intent = new Intent(this, ContactsPreferenceActivity.class);
+        intent.putExtra(ContactsPreferenceActivity.EXTRA_NEW_LOCAL_PROFILE,
+                ContactEditorFragment.INTENT_EXTRA_NEW_LOCAL_PROFILE);
+        intent.putExtra(ContactsPreferenceActivity.EXTRA_MODE_FULLY_EXPANDED,
+                QuickContactActivity.MODE_FULLY_EXPANDED);
+        intent.putExtra(ContactsPreferenceActivity.EXTRA_PREVIOUS_SCREEN_TYPE,
+                QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE);
+        return intent;
+    }
+
+    protected void switchToAllContacts() {
+        final Intent intent = new Intent();
+        final ContactListFilter filter = createContactsFilter();
+        intent.putExtra(AccountFilterActivity.EXTRA_CONTACT_LIST_FILTER, filter);
+        AccountFilterUtil.handleAccountFilterResult(
+                mContactListFilterController, AppCompatActivity.RESULT_OK, intent);
+        if (shouldFinish()) {
+            finish();
+        }
+    }
+
+    protected void launchFindDuplicates() {
+        ImplicitIntentsUtil.startActivityInAppIfPossible(this,
+                Assistants.getDuplicatesActivityIntent(this));
+    }
+
+    /**
+     * 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}.
+     */
+    protected ContactListFilter createContactsFilter() {
+        final int filterType =
+                ContactListFilterController.getInstance(this).isCustomFilterPersisted()
+                        ? ContactListFilter.FILTER_TYPE_CUSTOM
+                        : ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS;
+        return ContactListFilter.createFilterWithType(filterType);
+    }
+
+    private void clearCheckedMenus() {
+        clearCheckedMenu(mFilterMenuMap);
+        clearCheckedMenu(mGroupMenuMap);
+        clearCheckedMenu(mIdMenuMap);
+    }
+    private void clearCheckedMenu(Map<?, MenuItem> map) {
+        final Iterator it = map.entrySet().iterator();
+        while (it.hasNext()) {
+            Entry pair = (Entry)it.next();
+            map.get(pair.getKey()).setCheckable(false);
+            map.get(pair.getKey()).setChecked(false);
+        }
+    }
+
+    private void selectAccount() {
+        final List<AccountWithDataSet> accounts = AccountTypeManager.getInstance(this)
+                .getAccounts(/* writable */ true);
+        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), /* extraArgs */ null);
+            return;
+        }
+        SelectAccountDialogFragment.show(getFragmentManager(), null,
+                R.string.dialog_new_group_account, AccountListFilter.ACCOUNTS_GROUP_WRITABLE,
+                /* extraArgs */ null, TAG_SELECT_ACCOUNT_DIALOG);
+    }
+
+    @Override
+    public void onAccountChosen(AccountWithDataSet account, Bundle extraArgs) {
+        mNewGroupAccount = account;
+        GroupNameEditDialogFragment.showInsertDialog(
+                getFragmentManager(), TAG_GROUP_NAME_EDIT_DIALOG);
+    }
+
+    @Override
+    public void onAccountSelectorCancelled() {
+    }
+
+    @Override
+    public void onGroupNameEdit(String groupName, boolean isInsert) {
+        if (mNewGroupAccount == null) {
+            Toast.makeText(this, R.string.groupCreateFailedToast, Toast.LENGTH_SHORT).show();
+            return;
+        }
+        startService(ContactSaveService.createNewGroupIntent(this,
+                mNewGroupAccount, groupName, /* rawContactsToAdd */ null, getClass(),
+                ACTION_CREATE_GROUP));
+    }
+
+    @Override
+    public void onGroupNameEditCancelled() {
+    }
+}
diff --git a/src/com/android/contacts/GroupListLoader.java b/src/com/android/contacts/GroupListLoader.java
new file mode 100644
index 0000000..4816a5e
--- /dev/null
+++ b/src/com/android/contacts/GroupListLoader.java
@@ -0,0 +1,68 @@
+/*
+ * 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.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
+ * group names are in alphabetical order. Note that the list excludes default, favorite, and deleted
+ * groups.
+ */
+public final class GroupListLoader extends CursorLoader {
+
+    public final static String DEFAULT_SELECTION =
+            Groups.ACCOUNT_TYPE + " NOT NULL AND " +
+                    Groups.ACCOUNT_NAME + " NOT NULL AND " + Groups.AUTO_ADD + "=0 AND " +
+                    Groups.FAVORITES + "=0 AND " + Groups.DELETED + "=0";
+
+    private final static String[] COLUMNS = new String[] {
+        Groups.ACCOUNT_NAME,
+        Groups.ACCOUNT_TYPE,
+        Groups.DATA_SET,
+        Groups._ID,
+        Groups.TITLE,
+        Groups.SUMMARY_COUNT,
+        Groups.GROUP_IS_READ_ONLY,
+        Groups.SYSTEM_ID,
+    };
+
+    public final static int ACCOUNT_NAME = 0;
+    public final static int ACCOUNT_TYPE = 1;
+    public final static int DATA_SET = 2;
+    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,
+                DEFAULT_SELECTION,
+                null,
+                GroupUtil.getGroupsSortOrder());
+    }
+}
diff --git a/src/com/android/contacts/GroupMetaDataLoader.java b/src/com/android/contacts/GroupMetaDataLoader.java
new file mode 100644
index 0000000..8cdca2e
--- /dev/null
+++ b/src/com/android/contacts/GroupMetaDataLoader.java
@@ -0,0 +1,74 @@
+/*
+ * 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.content.CursorLoader;
+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[] {
+        Groups.ACCOUNT_NAME,
+        Groups.ACCOUNT_TYPE,
+        Groups.DATA_SET,
+        Groups._ID,
+        Groups.TITLE,
+        Groups.AUTO_ADD,
+        Groups.FAVORITES,
+        Groups.GROUP_IS_READ_ONLY,
+        Groups.DELETED,
+    };
+
+    public final static int ACCOUNT_NAME = 0;
+    public final static int ACCOUNT_TYPE = 1;
+    public final static int DATA_SET = 2;
+    public final static int GROUP_ID = 3;
+    public final static int TITLE = 4;
+    public final static int AUTO_ADD = 5;
+    public final static int FAVORITES = 6;
+    public final static int IS_READ_ONLY = 7;
+    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 AND "
+                        + Groups.DELETED + "=0",
+                null, GroupUtil.getGroupsSortOrder());
+    }
+
+    /**
+     * Ensures that this is a valid group URI. If invalid, then an exception is
+     * thrown. Otherwise, the original URI is returned.
+     */
+    private static Uri ensureIsGroupUri(final Uri groupUri) {
+        // TODO: Fix ContactsProvider2 getType method to resolve the group Uris
+        if (groupUri == null) {
+            throw new IllegalArgumentException("Uri must not be null");
+        }
+        if (!groupUri.toString().startsWith(Groups.CONTENT_URI.toString())) {
+            throw new IllegalArgumentException("Invalid group Uri: " + groupUri);
+        }
+        return groupUri;
+    }
+}
diff --git a/src/com/android/contacts/NfcHandler.java b/src/com/android/contacts/NfcHandler.java
new file mode 100644
index 0000000..07b3f06
--- /dev/null
+++ b/src/com/android/contacts/NfcHandler.java
@@ -0,0 +1,102 @@
+/*
+ * 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.app.Activity;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.net.Uri;
+import android.nfc.NdefMessage;
+import android.nfc.NdefRecord;
+import android.nfc.NfcAdapter;
+import android.nfc.NfcEvent;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Profile;
+import android.util.Log;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+  * This class implements sharing the currently displayed
+  * contact to another device using NFC. NFC sharing is only
+  * enabled when the activity is in the foreground and resumed.
+  * When an NFC link is established, {@link #createMessage}
+  * will be called to create the data to be sent over the link,
+  * which is a vCard in this case.
+  */
+public class NfcHandler implements NfcAdapter.CreateNdefMessageCallback {
+
+    private static final String TAG = "ContactNfcHandler";
+    private static final String PROFILE_LOOKUP_KEY = "profile";
+    private final Context mContext;
+    private final Uri mContactUri;
+
+    /* Register NFC handler. This should be called in activities' onCreate(), or similar methods */
+    public static void register(Activity activity, Uri contactUri) {
+        NfcAdapter adapter = NfcAdapter.getDefaultAdapter(activity.getApplicationContext());
+        if (adapter == null) {
+            return;  // NFC not available on this device
+        }
+        adapter.setNdefPushMessageCallback(new NfcHandler(activity, contactUri), activity);
+    }
+
+    public NfcHandler(Context context, Uri contactUri) {
+        mContext = context;
+        mContactUri = contactUri;
+    }
+
+    @Override
+    public NdefMessage createNdefMessage(NfcEvent event) {
+        ContentResolver resolver = mContext.getContentResolver();
+        if (mContactUri != null) {
+            final String lookupKey = Uri.encode(mContactUri.getPathSegments().get(2));
+            final Uri shareUri;
+            // TODO find out where to get this constant from, or find another way
+            // of determining this.
+            if (lookupKey.equals(PROFILE_LOOKUP_KEY)) {
+                shareUri = Profile.CONTENT_VCARD_URI.buildUpon().
+                appendQueryParameter(Contacts.QUERY_PARAMETER_VCARD_NO_PHOTO, "true").
+                build();
+            } else {
+                shareUri = Contacts.CONTENT_VCARD_URI.buildUpon().
+                appendPath(lookupKey).
+                appendQueryParameter(Contacts.QUERY_PARAMETER_VCARD_NO_PHOTO, "true").
+                build();
+            }
+            ByteArrayOutputStream ndefBytes = new ByteArrayOutputStream();
+            byte[] buffer = new byte[1024];
+            int r;
+            try {
+                InputStream vcardInputStream = resolver.openInputStream(shareUri);
+                while ((r = vcardInputStream.read(buffer)) > 0) {
+                    ndefBytes.write(buffer, 0, r);
+                }
+
+                NdefRecord record = NdefRecord.createMime("text/x-vcard", ndefBytes.toByteArray());
+                return new NdefMessage(record);
+            } catch (IOException e) {
+                Log.e(TAG, "IOException creating vcard.");
+                return null;
+            }
+        } else {
+            Log.w(TAG, "No contact URI to share.");
+            return null;
+        }
+    }
+}
diff --git a/src/com/android/contacts/NonPhoneActivity.java b/src/com/android/contacts/NonPhoneActivity.java
new file mode 100644
index 0000000..05c556b
--- /dev/null
+++ b/src/com/android/contacts/NonPhoneActivity.java
@@ -0,0 +1,113 @@
+/*
+ * 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 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;
+import android.app.DialogFragment;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Intents.Insert;
+import android.telecom.PhoneAccount;
+import android.text.TextUtils;
+
+/**
+ * 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
+ */
+public class NonPhoneActivity extends ContactsActivity {
+
+    private static final String PHONE_NUMBER_KEY = "PHONE_NUMBER";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        if (RequestPermissionsActivity.startPermissionActivity(this)) {
+            return;
+        }
+
+        final String phoneNumber = getPhoneNumber();
+        if (TextUtils.isEmpty(phoneNumber)) {
+            finish();
+            return;
+        }
+
+        final NonPhoneDialogFragment fragment = new NonPhoneDialogFragment();
+        Bundle bundle = new Bundle();
+        bundle.putString(PHONE_NUMBER_KEY, phoneNumber);
+        fragment.setArguments(bundle);
+        getFragmentManager().beginTransaction().add(fragment, "Fragment").commitAllowingStateLoss();
+    }
+
+    private String getPhoneNumber() {
+        if (getIntent() == null) return null;
+        final Uri data = getIntent().getData();
+        if (data == null) return null;
+        final String scheme = data.getScheme();
+        if (!PhoneAccount.SCHEME_TEL.equals(scheme)) return null;
+        return getIntent().getData().getSchemeSpecificPart();
+    }
+
+    public static final class NonPhoneDialogFragment extends DialogFragment
+            implements OnClickListener {
+        @Override
+        public Dialog onCreateDialog(Bundle savedInstanceState) {
+            final AlertDialog alertDialog;
+            alertDialog = new AlertDialog.Builder(getActivity(), R.style.NonPhoneDialogTheme)
+                    .create();
+            alertDialog.setTitle(R.string.non_phone_caption);
+            alertDialog.setMessage(getArgumentPhoneNumber());
+            alertDialog.setButton(DialogInterface.BUTTON_POSITIVE,
+                    getActivity().getString(R.string.non_phone_add_to_contacts), this);
+            alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE,
+                    getActivity().getString(R.string.non_phone_close), this);
+            return alertDialog;
+        }
+
+        @Override
+        public void onClick(DialogInterface dialog, int which) {
+            if (which == DialogInterface.BUTTON_POSITIVE) {
+                final Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
+                intent.setType(Contacts.CONTENT_ITEM_TYPE);
+                intent.putExtra(Insert.PHONE, getArgumentPhoneNumber());
+                ImplicitIntentsUtil.startActivityInApp(getActivity(), intent);
+            }
+            dismiss();
+        }
+
+        private String getArgumentPhoneNumber() {
+            return getArguments().getString(PHONE_NUMBER_KEY);
+        }
+
+        @Override
+        public void onDismiss(DialogInterface dialog) {
+            super.onDismiss(dialog);
+            // During screen rotation, getActivity returns null. In this case we do not
+            // want to close the Activity anyway
+            final Activity activity = getActivity();
+            if (activity != null) activity.finish();
+        }
+    }
+}
diff --git a/src/com/android/contacts/SplitAggregateView.java b/src/com/android/contacts/SplitAggregateView.java
new file mode 100644
index 0000000..2281ec6
--- /dev/null
+++ b/src/com/android/contacts/SplitAggregateView.java
@@ -0,0 +1,266 @@
+/*
+ * 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.
+ */
+
+package com.android.contacts;
+
+import android.content.Context;
+import android.database.Cursor;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Nickname;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.Contacts.Data;
+import android.provider.ContactsContract.RawContacts;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.android.contacts.common.model.AccountTypeManager;
+import com.android.contacts.common.model.account.AccountType;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * A list view for constituent contacts of an aggregate.  Shows the contact name, source icon
+ * and additional data such as a nickname, email address or phone number, whichever
+ * is available.
+ */
+public class SplitAggregateView extends ListView {
+
+    private static final String TAG = "SplitAggregateView";
+
+    private interface SplitQuery {
+        String[] COLUMNS = new String[] {
+                Data.MIMETYPE, RawContacts.ACCOUNT_TYPE, RawContacts.DATA_SET, Data.RAW_CONTACT_ID,
+                Data.IS_PRIMARY, StructuredName.DISPLAY_NAME, Nickname.NAME, Email.DATA,
+                Phone.NUMBER
+        };
+
+        int MIMETYPE = 0;
+        int ACCOUNT_TYPE = 1;
+        int DATA_SET = 2;
+        int RAW_CONTACT_ID = 3;
+        int IS_PRIMARY = 4;
+        int DISPLAY_NAME = 5;
+        int NICKNAME = 6;
+        int EMAIL = 7;
+        int PHONE = 8;
+    }
+
+    private final Uri mAggregateUri;
+    private OnContactSelectedListener mListener;
+    private AccountTypeManager mAccountTypes;
+
+    /**
+     * Listener interface that gets the contact ID of the user-selected contact.
+     */
+    public interface OnContactSelectedListener {
+        void onContactSelected(long rawContactId);
+    }
+
+    /**
+     * Constructor.
+     */
+    public SplitAggregateView(Context context, Uri aggregateUri) {
+        super(context);
+
+        mAggregateUri = aggregateUri;
+
+        mAccountTypes = AccountTypeManager.getInstance(context);
+
+        final List<RawContactInfo> list = loadData();
+
+        setAdapter(new SplitAggregateAdapter(context, list));
+        setOnItemClickListener(new OnItemClickListener() {
+
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                mListener.onContactSelected(list.get(position).rawContactId);
+            }
+        });
+    }
+
+    /**
+     * Sets a contact selection listener.
+     */
+    public void setOnContactSelectedListener(OnContactSelectedListener listener) {
+        mListener = listener;
+    }
+
+    /**
+     * Contact information loaded from the content provider.
+     */
+    private static class RawContactInfo implements Comparable<RawContactInfo> {
+        final long rawContactId;
+        String accountType;
+        String dataSet;
+        String name;
+        String phone;
+        String email;
+        String nickname;
+
+        public RawContactInfo(long rawContactId) {
+            this.rawContactId = rawContactId;
+        }
+
+        public String getAdditionalData() {
+            if (nickname != null) {
+                return nickname;
+            }
+
+            if (email != null) {
+                return email;
+            }
+
+            if (phone != null) {
+                return phone;
+            }
+
+            return "";
+        }
+
+        public int compareTo(RawContactInfo another) {
+            String thisAccount = accountType != null ? accountType : "";
+            String thatAccount = another.accountType != null ? another.accountType : "";
+            return thisAccount.compareTo(thatAccount);
+        }
+    }
+
+    /**
+     * Loads data from the content provider, organizes it into {@link RawContactInfo} objects
+     * and returns a sorted list of {@link RawContactInfo}'s.
+     */
+    private List<RawContactInfo> loadData() {
+        HashMap<Long, RawContactInfo> rawContactInfos = new HashMap<Long, RawContactInfo>();
+        Uri dataUri = Uri.withAppendedPath(mAggregateUri, Data.CONTENT_DIRECTORY);
+        Cursor cursor = getContext().getContentResolver().query(dataUri,
+                SplitQuery.COLUMNS, null, null, null);
+        if (cursor == null) {
+            return Collections.emptyList();
+        }
+        try {
+            while (cursor.moveToNext()) {
+                long rawContactId = cursor.getLong(SplitQuery.RAW_CONTACT_ID);
+                RawContactInfo info = rawContactInfos.get(rawContactId);
+                if (info == null) {
+                    info = new RawContactInfo(rawContactId);
+                    rawContactInfos.put(rawContactId, info);
+                    info.accountType = cursor.getString(SplitQuery.ACCOUNT_TYPE);
+                    info.dataSet = cursor.getString(SplitQuery.DATA_SET);
+                }
+
+                String mimetype = cursor.getString(SplitQuery.MIMETYPE);
+                if (StructuredName.CONTENT_ITEM_TYPE.equals(mimetype)) {
+                    loadStructuredName(cursor, info);
+                } else if (Phone.CONTENT_ITEM_TYPE.equals(mimetype)) {
+                    loadPhoneNumber(cursor, info);
+                } else if (Email.CONTENT_ITEM_TYPE.equals(mimetype)) {
+                    loadEmail(cursor, info);
+                } else if (Nickname.CONTENT_ITEM_TYPE.equals(mimetype)) {
+                    loadNickname(cursor, info);
+                }
+            }
+        } finally {
+            cursor.close();
+        }
+
+        List<RawContactInfo> list = new ArrayList<RawContactInfo>(rawContactInfos.values());
+        Collections.sort(list);
+        return list;
+    }
+
+    private void loadStructuredName(Cursor cursor, RawContactInfo info) {
+        info.name = cursor.getString(SplitQuery.DISPLAY_NAME);
+    }
+
+    private void loadNickname(Cursor cursor, RawContactInfo info) {
+        if (info.nickname == null || cursor.getInt(SplitQuery.IS_PRIMARY) != 0) {
+            info.nickname = cursor.getString(SplitQuery.NICKNAME);
+        }
+    }
+
+    private void loadEmail(Cursor cursor, RawContactInfo info) {
+        if (info.email == null || cursor.getInt(SplitQuery.IS_PRIMARY) != 0) {
+            info.email = cursor.getString(SplitQuery.EMAIL);
+        }
+    }
+
+    private void loadPhoneNumber(Cursor cursor, RawContactInfo info) {
+        if (info.phone == null || cursor.getInt(SplitQuery.IS_PRIMARY) != 0) {
+            info.phone = cursor.getString(SplitQuery.PHONE);
+        }
+    }
+
+    private static class SplitAggregateItemCache  {
+        TextView name;
+        TextView additionalData;
+        ImageView sourceIcon;
+    }
+
+    /**
+     * List adapter for the list of {@link RawContactInfo} objects.
+     */
+    private class SplitAggregateAdapter extends ArrayAdapter<RawContactInfo> {
+
+        private LayoutInflater mInflater;
+
+        public SplitAggregateAdapter(Context context, List<RawContactInfo> sources) {
+            super(context, 0, sources);
+            mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            if (convertView == null) {
+                convertView = mInflater.inflate(R.layout.split_aggregate_list_item, parent, false);
+            }
+
+            SplitAggregateItemCache cache = (SplitAggregateItemCache)convertView.getTag();
+            if (cache == null) {
+                cache = new SplitAggregateItemCache();
+                cache.name = (TextView)convertView.findViewById(R.id.name);
+                cache.additionalData = (TextView)convertView.findViewById(R.id.additionalData);
+                cache.sourceIcon = (ImageView)convertView.findViewById(R.id.sourceIcon);
+                convertView.setTag(cache);
+            }
+
+            final RawContactInfo info = getItem(position);
+            cache.name.setText(info.name);
+            cache.additionalData.setText(info.getAdditionalData());
+
+            Drawable icon = null;
+            AccountType accountType = mAccountTypes.getAccountType(info.accountType, info.dataSet);
+            if (accountType != null) {
+                icon = accountType.getDisplayIcon(getContext());
+            }
+            if (icon != null) {
+                cache.sourceIcon.setImageDrawable(icon);
+            } else {
+                cache.sourceIcon.setImageResource(R.drawable.unknown_source);
+            }
+            return convertView;
+        }
+    }
+}
diff --git a/src/com/android/contacts/TypePrecedence.java b/src/com/android/contacts/TypePrecedence.java
new file mode 100644
index 0000000..0a193b5
--- /dev/null
+++ b/src/com/android/contacts/TypePrecedence.java
@@ -0,0 +1,120 @@
+/*
+ * 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.accounts.Account;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+
+import com.android.contacts.common.model.RawContactModifier;
+
+/**
+ * This class contains utility functions for determining the precedence of
+ * different types associated with contact data items.
+ *
+ * @deprecated use {@link RawContactModifier#getTypePrecedence} instead, since this
+ *             list isn't {@link Account} based.
+ */
+@Deprecated
+public final class TypePrecedence {
+
+    public static final String MIME_TYPE_VIDEO_CHAT = "vnd.android.cursor.item/video-chat-address";
+
+    /* This utility class has cannot be instantiated.*/
+    private TypePrecedence() {}
+
+    //TODO These may need to be tweaked.
+    private static final int[] TYPE_PRECEDENCE_PHONES = {
+            Phone.TYPE_CUSTOM,
+            Phone.TYPE_MAIN,
+            Phone.TYPE_MOBILE,
+            Phone.TYPE_HOME,
+            Phone.TYPE_WORK,
+            Phone.TYPE_OTHER,
+            Phone.TYPE_FAX_HOME,
+            Phone.TYPE_FAX_WORK,
+            Phone.TYPE_PAGER};
+
+    private static final int[] TYPE_PRECEDENCE_EMAIL = {
+            Email.TYPE_CUSTOM,
+            Email.TYPE_HOME,
+            Email.TYPE_WORK,
+            Email.TYPE_OTHER};
+
+    private static final int[] TYPE_PRECEDENCE_POSTAL = {
+            StructuredPostal.TYPE_CUSTOM,
+            StructuredPostal.TYPE_HOME,
+            StructuredPostal.TYPE_WORK,
+            StructuredPostal.TYPE_OTHER};
+
+    private static final int[] TYPE_PRECEDENCE_IM = {
+            Im.TYPE_CUSTOM,
+            Im.TYPE_HOME,
+            Im.TYPE_WORK,
+            Im.TYPE_OTHER};
+
+    private static final int[] TYPE_PRECEDENCE_ORG = {
+            Organization.TYPE_CUSTOM,
+            Organization.TYPE_WORK,
+            Organization.TYPE_OTHER};
+
+    /**
+     * Returns the precedence (1 being the highest) of a type in the context of it's mimetype.
+     *
+     * @param mimetype The mimetype of the data with which the type is associated.
+     * @param type The integer type as defined in {@Link ContactsContract#CommonDataKinds}.
+     * @return The integer precedence, where 1 is the highest.
+     */
+    @Deprecated
+    public static int getTypePrecedence(String mimetype, int type) {
+        int[] typePrecedence = getTypePrecedenceList(mimetype);
+        if (typePrecedence == null) {
+            return -1;
+        }
+
+        for (int i = 0; i < typePrecedence.length; i++) {
+            if (typePrecedence[i] == type) {
+                return i;
+            }
+        }
+        return typePrecedence.length;
+    }
+
+    @Deprecated
+    private static int[] getTypePrecedenceList(String mimetype) {
+        if (mimetype.equals(Phone.CONTENT_ITEM_TYPE)) {
+            return TYPE_PRECEDENCE_PHONES;
+        } else if (mimetype.equals(Email.CONTENT_ITEM_TYPE)) {
+            return TYPE_PRECEDENCE_EMAIL;
+        } else if (mimetype.equals(StructuredPostal.CONTENT_ITEM_TYPE)) {
+            return TYPE_PRECEDENCE_POSTAL;
+        } else if (mimetype.equals(Im.CONTENT_ITEM_TYPE)) {
+            return TYPE_PRECEDENCE_IM;
+        } else if (mimetype.equals(MIME_TYPE_VIDEO_CHAT)) {
+            return TYPE_PRECEDENCE_IM;
+        } else if (mimetype.equals(Organization.CONTENT_ITEM_TYPE)) {
+            return TYPE_PRECEDENCE_ORG;
+        } else {
+            return null;
+        }
+    }
+
+
+}
diff --git a/src/com/android/contacts/ViewNotificationService.java b/src/com/android/contacts/ViewNotificationService.java
new file mode 100644
index 0000000..0f2922a
--- /dev/null
+++ b/src/com/android/contacts/ViewNotificationService.java
@@ -0,0 +1,75 @@
+/*
+ * 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.Service;
+import android.content.Intent;
+import android.content.Loader;
+import android.content.Loader.OnLoadCompleteListener;
+import android.os.IBinder;
+import android.util.Log;
+
+import com.android.contacts.common.model.Contact;
+import com.android.contacts.common.model.ContactLoader;
+
+
+/**
+ * Service that sends out a view notification for a contact. At the moment, this is only
+ * supposed to be used by the Phone app
+ */
+public class ViewNotificationService extends Service {
+    private static final String TAG = ViewNotificationService.class.getSimpleName();
+
+    private static final boolean DEBUG = false;
+
+    @Override
+    public int onStartCommand(Intent intent, int flags, final int startId) {
+        if (DEBUG) { Log.d(TAG, "onHandleIntent(). Intent: " + intent); }
+
+        // We simply need to start a Loader here. When its done, it will send out the
+        // View-Notification automatically.
+        final ContactLoader contactLoader = new ContactLoader(this, intent.getData(), true);
+        contactLoader.registerListener(0, new OnLoadCompleteListener<Contact>() {
+            @Override
+            public void onLoadComplete(Loader<Contact> loader, Contact data) {
+                try {
+                    loader.reset();
+                } catch (RuntimeException e) {
+                    Log.e(TAG, "Error reseting loader", e);
+                }
+                try {
+                    // This is not 100% accurate actually. If we get several calls quickly,
+                    // we might be stopping out-of-order, in which case the call with the last
+                    // startId will stop this service. In practice, this shouldn't be a problem,
+                    // as this service is supposed to be called by the Phone app which only sends
+                    // out the notification once per phonecall. And even if there is a problem,
+                    // the worst that should happen is a missing view notification
+                    stopSelfResult(startId);
+                } catch (RuntimeException e) {
+                    Log.e(TAG, "Error stopping service", e);
+                }
+            }
+        });
+        contactLoader.startLoading();
+        return START_REDELIVER_INTENT;
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+}
diff --git a/src/com/android/contacts/activities/ActionBarAdapter.java b/src/com/android/contacts/activities/ActionBarAdapter.java
new file mode 100644
index 0000000..eaf027d
--- /dev/null
+++ b/src/com/android/contacts/activities/ActionBarAdapter.java
@@ -0,0 +1,721 @@
+/*
+ * 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.activities;
+
+import android.animation.ValueAnimator;
+import android.app.Activity;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.res.ColorStateList;
+import android.content.res.TypedArray;
+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.ViewGroup;
+import android.view.ViewTreeObserver;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.FrameLayout;
+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 com.android.contacts.R;
+import com.android.contacts.activities.ActionBarAdapter.Listener.Action;
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.list.ContactsRequest;
+import com.google.android.libraries.material.featurehighlight.FeatureHighlight;
+import com.google.android.libraries.material.featurehighlight.appcompat.ToolbarNavigationIconFinder;
+
+import java.util.ArrayList;
+
+/**
+ * Adapter for the action bar at the top of the Contacts activity.
+ */
+public class ActionBarAdapter implements OnCloseListener {
+
+    public interface Listener {
+        public abstract class Action {
+            public static final int CHANGE_SEARCH_QUERY = 0;
+            public static final int START_SEARCH_MODE = 1;
+            public static final int START_SELECTION_MODE = 2;
+            public static final int STOP_SEARCH_AND_SELECTION_MODE = 3;
+            public static final int BEGIN_STOPPING_SEARCH_AND_SELECTION_MODE = 4;
+        }
+
+        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;
+
+    private final ActionBar mActionBar;
+    private final Toolbar mToolbar;
+    /**
+     *  Frame that contains the toolbar and draws the toolbar's background color. This is useful
+     *  for placing things behind the toolbar.
+     */
+    private final FrameLayout mToolBarFrame;
+
+    private boolean mShowHomeIcon;
+    private boolean mShowHomeAsUp;
+
+    private int mSearchHintResId;
+
+    private FeatureHighlight mHamburgerFeatureHighlight;
+
+    public interface TabState {
+        public static int ALL = 0;
+
+        public static int COUNT = 1;
+        public static int DEFAULT = ALL;
+    }
+
+    private int mCurrentTab = TabState.DEFAULT;
+
+    public ActionBarAdapter(Activity activity, Listener listener, ActionBar actionBar,
+            View portraitTabs, View landscapeTabs, Toolbar toolbar) {
+        this(activity, listener, actionBar, portraitTabs, landscapeTabs, toolbar,
+                R.string.hint_findContacts);
+    }
+
+    public ActionBarAdapter(Activity activity, Listener listener, ActionBar actionBar,
+            View portraitTabs, View landscapeTabs, 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();
+        mSearchHintResId = searchHintResId;
+        mActionBarAnimationDuration =
+                mActivity.getResources().getInteger(R.integer.action_bar_animation_duration);
+
+        setupSearchAndSelectionViews();
+        setupTabs(mActivity);
+    }
+
+    public void setShowHomeIcon(boolean showHomeIcon) {
+        mShowHomeIcon = showHomeIcon;
+    }
+
+    public void setShowHomeAsUp(boolean showHomeAsUp) {
+        mShowHomeAsUp = showHomeAsUp;
+    }
+
+    public EditText getSearchView() {
+        return mSearchView;
+    }
+
+    public View getSelectionContainer() {
+        return mSelectionContainer;
+    }
+
+    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);
+    }
+
+    private void setupSearchAndSelectionViews() {
+        final LayoutInflater inflater = (LayoutInflater) mToolbar.getContext().getSystemService(
+                Context.LAYOUT_INFLATER_SERVICE);
+
+        // Setup search bar
+        mSearchContainer = inflater.inflate(R.layout.search_bar_expanded, mToolbar,
+                /* attachToRoot = */ false);
+        mSearchContainer.setVisibility(View.VISIBLE);
+        mToolbar.addView(mSearchContainer);
+        mSearchContainer.setBackgroundColor(mActivity.getResources().getColor(
+                R.color.searchbox_background_color));
+        mSearchView = (EditText) mSearchContainer.findViewById(R.id.search_view);
+        mSearchView.setHint(mActivity.getString(mSearchHintResId));
+        mSearchView.addTextChangedListener(new SearchTextWatcher());
+        mSearchContainer.findViewById(R.id.search_back_button).setOnClickListener(
+                new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (mListener != null) {
+                    mListener.onUpButtonPressed();
+                }
+            }
+        });
+
+        mClearSearchView = mSearchContainer.findViewById(R.id.search_close_button);
+        mClearSearchView.setOnClickListener(
+                new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                setQueryString(null);
+            }
+        });
+
+        // Setup selection bar
+        mSelectionContainer = inflater.inflate(R.layout.selection_bar, mToolbar,
+                /* attachToRoot = */ false);
+        // Insert the selection container into mToolBarFrame behind the Toolbar, so that
+        // the Toolbar's MenuItems can appear on top of the selection container.
+        mToolBarFrame.addView(mSelectionContainer, 0);
+        mSelectionContainer.findViewById(R.id.selection_close).setOnClickListener(
+                new OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        if (mListener != null) {
+                            mListener.onUpButtonPressed();
+                        }
+                    }
+                });
+    }
+
+    public void initialize(Bundle savedState, ContactsRequest request) {
+        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.
+        update(true /* skipAnimation */);
+        // Expanding the {@link SearchView} clears the query, so set the query from the
+        // {@link ContactsRequest} after it has been expanded, if applicable.
+        if (mSearchMode && !TextUtils.isEmpty(mQueryString)) {
+            setQueryString(mQueryString);
+        }
+        addHamburgerFeatureHighlight();
+    }
+
+    public void setListener(Listener listener) {
+        mListener = listener;
+    }
+
+    private class SearchTextWatcher implements TextWatcher {
+
+        @Override
+        public void onTextChanged(CharSequence queryString, int start, int before, int count) {
+            if (queryString.equals(mQueryString)) {
+                return;
+            }
+            mQueryString = queryString.toString();
+            if (!mSearchMode) {
+                if (!TextUtils.isEmpty(queryString)) {
+                    setSearchMode(true);
+                }
+            } else if (mListener != null) {
+                mListener.onAction(Action.CHANGE_SEARCH_QUERY);
+            }
+            mClearSearchView.setVisibility(
+                    TextUtils.isEmpty(queryString) ? View.GONE : View.VISIBLE);
+        }
+
+        @Override
+        public void afterTextChanged(Editable s) {}
+
+        @Override
+        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
+    }
+
+    /**
+     * 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
+     * will not be in search mode.
+     */
+    public boolean isSearchMode() {
+        return mSearchMode;
+    }
+
+    /**
+     * @return Whether in selection mode, i.e. if the selection view is visible/expanded.
+     */
+    public boolean isSelectionMode() {
+        return mSelectionMode;
+    }
+
+    public void setSearchMode(boolean flag) {
+        if (mSearchMode != flag) {
+            mSearchMode = flag;
+            update(false /* skipAnimation */);
+            if (mSearchView == null) {
+                return;
+            }
+            if (mSearchMode) {
+                mSearchView.setEnabled(true);
+                setFocusOnSearchView();
+            } else {
+                // Disable search view, so that it doesn't keep the IME visible.
+                mSearchView.setEnabled(false);
+            }
+            setQueryString(null);
+        } else if (flag) {
+            // Everything is already set up. Still make sure the keyboard is up
+            if (mSearchView != null) setFocusOnSearchView();
+        }
+    }
+
+    public void setSelectionMode(boolean flag) {
+        if (mSelectionMode != flag) {
+            mSelectionMode = flag;
+            update(false /* skipAnimation */);
+        }
+    }
+
+    public String getQueryString() {
+        return mSearchMode ? mQueryString : null;
+    }
+
+    public void setQueryString(String query) {
+        mQueryString = query;
+        if (mSearchView != null) {
+            mSearchView.setText(query);
+            // When programmatically entering text into the search view, the most reasonable
+            // place for the cursor is after all the text.
+            mSearchView.setSelection(mSearchView.getText() == null ?
+                    0 : mSearchView.getText().length());
+        }
+    }
+
+    /** @return true if the "UP" icon is showing. */
+    public boolean isUpShowing() {
+        return mSearchMode; // Only shown on the search mode.
+    }
+
+    private void updateDisplayOptionsInner() {
+        // All the flags we may change in this method.
+        final int MASK = ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_HOME
+                | ActionBar.DISPLAY_HOME_AS_UP;
+
+        // The current flags set to the action bar.  (only the ones that we may change here)
+        final int current = mActionBar.getDisplayOptions() & MASK;
+
+        final boolean isSearchOrSelectionMode = mSearchMode || mSelectionMode;
+
+        // Build the new flags...
+        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
+            // Toolbar's content inset in order to allow the search container to be the width of
+            // the window.
+            mToolbar.setContentInsetsRelative(0, mToolbar.getContentInsetEnd());
+        }
+        if (!isSearchOrSelectionMode) {
+            newFlags |= ActionBar.DISPLAY_SHOW_TITLE;
+            mToolbar.setContentInsetsRelative(mMaxToolbarContentInsetStart,
+                    mToolbar.getContentInsetEnd());
+            mToolbar.setNavigationIcon(R.drawable.ic_menu_hamburger);
+        } else {
+            mToolbar.setNavigationIcon(null);
+        }
+
+        if (mSelectionMode) {
+            // Minimize the horizontal width of the Toolbar since the selection container is placed
+            // behind the toolbar and its left hand side needs to be clickable.
+            FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mToolbar.getLayoutParams();
+            params.width = LayoutParams.WRAP_CONTENT;
+            params.gravity = Gravity.END;
+            mToolbar.setLayoutParams(params);
+        } else {
+            FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mToolbar.getLayoutParams();
+            params.width = LayoutParams.MATCH_PARENT;
+            params.gravity = Gravity.END;
+            mToolbar.setLayoutParams(params);
+        }
+
+        if (current != newFlags) {
+            // Pass the mask here to preserve other flags that we're not interested here.
+            mActionBar.setDisplayOptions(newFlags, MASK);
+        }
+    }
+
+    private void addHamburgerFeatureHighlight() {
+        if (mHamburgerFeatureHighlight == null) {
+            mHamburgerFeatureHighlight = FeatureHighlight.Builder
+                    .forView(new ToolbarNavigationIconFinder())
+                    .setHeader(mActivity.getResources().getString(
+                            R.string.hamburger_feature_highlight_header))
+                    .setBody(mActivity.getResources().getString(
+                            R.string.hamburger_feature_highlight_body))
+                    .setTargetDrawable(
+                            R.drawable.ic_menu_hamburger,
+                            ContextCompat.getColor(mActivity, R.color.primary_color))
+                    .build();
+        }
+    }
+
+    public FeatureHighlight getHamburgerFeatureHighlight() {
+        return mHamburgerFeatureHighlight;
+    }
+
+    private void update(boolean skipAnimation) {
+        updateStatusBarColor();
+
+        updateOverflowButtonColor();
+
+        final boolean isSelectionModeChanging
+                = (mSelectionContainer.getParent() == null) == mSelectionMode;
+        final boolean isSwitchingFromSearchToSelection =
+                mSearchMode && isSelectionModeChanging || mSearchMode && mSelectionMode;
+        final boolean isSearchModeChanging
+                = (mSearchContainer.getParent() == null) == mSearchMode;
+        final boolean isTabHeightChanging = isSearchModeChanging || isSelectionModeChanging;
+
+        // 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);
+            }
+            return;
+        }
+
+        // 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).setDuration(mActionBarAnimationDuration);
+                animateTabHeightChange(mMaxPortraitTabHeight, 0);
+                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).setDuration(mActionBarAnimationDuration)
+                        .withEndAction(new Runnable() {
+                    @Override
+                    public void run() {
+                        updateDisplayOptions(isSearchModeChanging);
+                        addLandscapeViewPagerTabs();
+                        mToolBarFrame.removeView(mSelectionContainer);
+                    }
+                });
+            }
+        }
+
+        // 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).setDuration(mActionBarAnimationDuration);
+                animateTabHeightChange(mMaxPortraitTabHeight, 0);
+                updateDisplayOptions(isSearchModeChanging);
+            } else {
+                mSearchContainer.setAlpha(1);
+                animateTabHeightChange(0, mMaxPortraitTabHeight);
+                mSearchContainer.animate().alpha(0).setDuration(mActionBarAnimationDuration)
+                        .withEndAction(new Runnable() {
+                    @Override
+                    public void run() {
+                        updateDisplayOptions(isSearchModeChanging);
+                        addLandscapeViewPagerTabs();
+                        mToolbar.removeView(mSearchContainer);
+                    }
+                });
+            }
+        }
+    }
+
+    /**
+     * Find overflow menu ImageView by its content description and update its color.
+     */
+    private 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);
+                        if (outViews.isEmpty()) {
+                            return;
+                        }
+                        final ImageView overflow = (ImageView) outViews.get(0);
+                        overflow.setImageResource(R.drawable.ic_more_vert);
+
+                        // 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) {
+            textView.setVisibility(View.GONE);
+        } else {
+            textView.setVisibility(View.VISIBLE);
+        }
+        textView.setText(String.valueOf(selectionCount));
+    }
+
+    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() {
+        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);
+        } else {
+            final int normalStatusBarColor = ContextCompat.getColor(
+                    mActivity, R.color.primary_color_dark);
+            mActivity.getWindow().setStatusBarColor(normalStatusBarColor);
+        }
+    }
+
+    private void addLandscapeViewPagerTabs() {
+        if (mLandscapeTabs != null) {
+            mToolbar.removeView(mLandscapeTabs);
+            mToolbar.addView(mLandscapeTabs);
+        }
+    }
+
+    private void addSearchContainer() {
+        mToolbar.removeView(mSearchContainer);
+        mToolbar.addView(mSearchContainer);
+        mSearchContainer.setAlpha(1);
+    }
+
+    private void addSelectionContainer() {
+        mToolBarFrame.removeView(mSelectionContainer);
+        mToolBarFrame.addView(mSelectionContainer, 0);
+        mSelectionContainer.setAlpha(1);
+    }
+
+    private void updateDisplayOptions(boolean isSearchModeChanging) {
+        if (mSearchMode && !mSelectionMode) {
+            setFocusOnSearchView();
+            // Since we have the {@link SearchView} in a custom action bar, we must manually handle
+            // expanding the {@link SearchView} when a search is initiated. Note that a side effect
+            // of this method is that the {@link SearchView} query text is set to empty string.
+            if (isSearchModeChanging) {
+                final CharSequence queryText = mSearchView.getText();
+                if (!TextUtils.isEmpty(queryText)) {
+                    mSearchView.setText(queryText);
+                }
+            }
+        }
+        if (mListener != null) {
+            if (mSearchMode) {
+                mListener.onAction(Action.START_SEARCH_MODE);
+            }
+            if (mSelectionMode) {
+                mListener.onAction(Action.START_SELECTION_MODE);
+            }
+            if (!mSearchMode && !mSelectionMode) {
+                mListener.onAction(Action.STOP_SEARCH_AND_SELECTION_MODE);
+                mListener.onSelectedTabChanged();
+            }
+        }
+        updateDisplayOptionsInner();
+    }
+
+    @Override
+    public boolean onClose() {
+        setSearchMode(false);
+        return false;
+    }
+
+    public void onSaveInstanceState(Bundle outState) {
+        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() {
+        mSearchView.requestFocus();
+        showInputMethod(mSearchView); // Workaround for the "IME not popping up" issue.
+    }
+
+    private void showInputMethod(View view) {
+        final InputMethodManager imm = (InputMethodManager) mActivity.getSystemService(
+                Context.INPUT_METHOD_SERVICE);
+        if (imm != null) {
+            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/AttachPhotoActivity.java b/src/com/android/contacts/activities/AttachPhotoActivity.java
new file mode 100644
index 0000000..1abbecf
--- /dev/null
+++ b/src/com/android/contacts/activities/AttachPhotoActivity.java
@@ -0,0 +1,381 @@
+/*
+ * 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.
+ */
+
+package com.android.contacts.activities;
+
+import android.app.Activity;
+import android.content.ActivityNotFoundException;
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.Intent;
+import android.content.Loader;
+import android.content.Loader.OnLoadCompleteListener;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.DisplayPhoto;
+import android.provider.ContactsContract.Intents;
+import android.provider.ContactsContract.RawContacts;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.android.contacts.ContactSaveService;
+import com.android.contacts.ContactsActivity;
+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.util.ContactPhotoUtils;
+
+import java.io.FileNotFoundException;
+import java.util.List;
+
+/**
+ * Provides an external interface for other applications to attach images
+ * to contacts. It will first present a contact picker and then run the
+ * image that is handed to it through the cropper to make the image the proper
+ * size and give the user a chance to use the face detector.
+ */
+public class AttachPhotoActivity extends ContactsActivity {
+    private static final String TAG = AttachPhotoActivity.class.getSimpleName();
+
+    private static final int REQUEST_PICK_CONTACT = 1;
+    private static final int REQUEST_CROP_PHOTO = 2;
+    private static final int REQUEST_PICK_DEFAULT_ACCOUNT_FOR_NEW_CONTACT = 3;
+
+    private static final String KEY_CONTACT_URI = "contact_uri";
+    private static final String KEY_TEMP_PHOTO_URI = "temp_photo_uri";
+    private static final String KEY_CROPPED_PHOTO_URI = "cropped_photo_uri";
+
+    private Uri mTempPhotoUri;
+    private Uri mCroppedPhotoUri;
+
+    private ContentResolver mContentResolver;
+
+    // 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.
+    private static final int mDefaultPhotoDim = 720;
+
+    private Uri mContactUri;
+
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        if (RequestPermissionsActivity.startPermissionActivity(this)) {
+            return;
+        }
+
+        if (icicle != null) {
+            final String uri = icicle.getString(KEY_CONTACT_URI);
+            mContactUri = (uri == null) ? null : Uri.parse(uri);
+            mTempPhotoUri = Uri.parse(icicle.getString(KEY_TEMP_PHOTO_URI));
+            mCroppedPhotoUri = Uri.parse(icicle.getString(KEY_CROPPED_PHOTO_URI));
+        } else {
+            mTempPhotoUri = ContactPhotoUtils.generateTempImageUri(this);
+            mCroppedPhotoUri = ContactPhotoUtils.generateTempCroppedImageUri(this);
+            Intent intent = new Intent(Intent.ACTION_PICK);
+            intent.setType(Contacts.CONTENT_TYPE);
+            intent.setPackage(getPackageName());
+            startActivityForResult(intent, REQUEST_PICK_CONTACT);
+        }
+
+        mContentResolver = getContentResolver();
+
+        // Load the photo dimension to request. mPhotoDim is a static class
+        // member varible so only need to load this if this is the first time
+        // through.
+        if (mPhotoDim == 0) {
+            Cursor c = mContentResolver.query(DisplayPhoto.CONTENT_MAX_DIMENSIONS_URI,
+                    new String[]{DisplayPhoto.DISPLAY_MAX_DIM}, null, null, null);
+            if (c != null) {
+                try {
+                    if (c.moveToFirst()) {
+                        mPhotoDim = c.getInt(0);
+                    }
+                } finally {
+                    c.close();
+                }
+            }
+        }
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        if (mContactUri != null) {
+            outState.putString(KEY_CONTACT_URI, mContactUri.toString());
+        }
+        if (mTempPhotoUri != null) {
+            outState.putString(KEY_TEMP_PHOTO_URI, mTempPhotoUri.toString());
+        }
+        if (mCroppedPhotoUri != null) {
+            outState.putString(KEY_CROPPED_PHOTO_URI, mCroppedPhotoUri.toString());
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent result) {
+        if (requestCode == REQUEST_PICK_DEFAULT_ACCOUNT_FOR_NEW_CONTACT) {
+            // Bail if the account selector was not successful.
+            if (resultCode != Activity.RESULT_OK) {
+                Log.w(TAG, "account selector was not successful");
+                finish();
+                return;
+            }
+            // If there's an account specified, use it.
+            if (result != null) {
+                AccountWithDataSet account = result.getParcelableExtra(
+                        Intents.Insert.EXTRA_ACCOUNT);
+                if (account != null) {
+                    createNewRawContact(account);
+                    return;
+                }
+            }
+            // If there isn't an account specified, then the user opted to keep the contact local.
+            createNewRawContact(null);
+        } else if (requestCode == REQUEST_PICK_CONTACT) {
+            if (resultCode != RESULT_OK) {
+                finish();
+                return;
+            }
+            // A contact was picked. Launch the cropper to get face detection, the right size, etc.
+            // TODO: get these values from constants somewhere
+            final Intent myIntent = getIntent();
+            final Uri inputUri = myIntent.getData();
+
+
+            // Save the URI into a temporary file provider URI so that
+            // we can add the FLAG_GRANT_WRITE_URI_PERMISSION flag to the eventual
+            // crop intent for read-only URI's.
+            // TODO: With b/10837468 fixed should be able to avoid this copy.
+            if (!ContactPhotoUtils.savePhotoFromUriToUri(this, inputUri, mTempPhotoUri, false)) {
+                finish();
+                return;
+            }
+
+            final Intent intent = new Intent("com.android.camera.action.CROP", mTempPhotoUri);
+            if (myIntent.getStringExtra("mimeType") != null) {
+                intent.setDataAndType(mTempPhotoUri, myIntent.getStringExtra("mimeType"));
+            }
+            ContactPhotoUtils.addPhotoPickerExtras(intent, mCroppedPhotoUri);
+            ContactPhotoUtils.addCropExtras(intent, mPhotoDim != 0 ? mPhotoDim : mDefaultPhotoDim);
+            if (!hasIntentHandler(intent)) {
+                // No activity supports the crop action. So skip cropping and set the photo
+                // without performing any cropping.
+                mCroppedPhotoUri = mTempPhotoUri;
+                mContactUri = result.getData();
+                loadContact(mContactUri, new Listener() {
+                    @Override
+                    public void onContactLoaded(Contact contact) {
+                        saveContact(contact);
+                    }
+                });
+                return;
+            }
+
+            try {
+                startActivityForResult(intent, REQUEST_CROP_PHOTO);
+            } catch (ActivityNotFoundException ex) {
+                Toast.makeText(this, R.string.missing_app, Toast.LENGTH_SHORT).show();
+                return;
+            }
+
+            mContactUri = result.getData();
+
+        } else if (requestCode == REQUEST_CROP_PHOTO) {
+            // Delete the temporary photo from cache now that we have a cropped version.
+            // We should do this even if the crop failed and we eventually bail
+            getContentResolver().delete(mTempPhotoUri, null, null);
+            if (resultCode != RESULT_OK) {
+                finish();
+                return;
+            }
+            loadContact(mContactUri, new Listener() {
+                @Override
+                public void onContactLoaded(Contact contact) {
+                    saveContact(contact);
+                }
+            });
+        }
+    }
+
+    private boolean hasIntentHandler(Intent intent) {
+        final List<ResolveInfo> resolveInfo = getPackageManager()
+                .queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
+        return resolveInfo != null && resolveInfo.size() > 0;
+    }
+
+    // TODO: consider moving this to ContactLoader, especially if we keep adding similar
+    // code elsewhere (ViewNotificationService is another case).  The only concern is that,
+    // although this is convenient, it isn't quite as robust as using LoaderManager... for
+    // instance, the loader doesn't persist across Activity restarts.
+    private void loadContact(Uri contactUri, final Listener listener) {
+        final ContactLoader loader = new ContactLoader(this, contactUri, true);
+        loader.registerListener(0, new OnLoadCompleteListener<Contact>() {
+            @Override
+            public void onLoadComplete(
+                    Loader<Contact> loader, Contact contact) {
+                try {
+                    loader.reset();
+                }
+                catch (RuntimeException e) {
+                    Log.e(TAG, "Error resetting loader", e);
+                }
+                listener.onContactLoaded(contact);
+            }
+        });
+        loader.startLoading();
+    }
+
+    private interface Listener {
+        public void onContactLoaded(Contact contact);
+    }
+
+    /**
+     * If prerequisites have been met, attach the photo to a raw-contact and save.
+     * The prerequisites are:
+     * - photo has been cropped
+     * - contact has been loaded
+     */
+    private void saveContact(Contact contact) {
+
+        if (contact.getRawContacts() == null) {
+            Log.w(TAG, "No raw contacts found for contact");
+            finish();
+            return;
+        }
+
+        // Obtain the raw-contact that we will save to.
+        RawContactDeltaList deltaList = contact.createRawContactDeltaList();
+        RawContactDelta raw = deltaList.getFirstWritableRawContact(this);
+        if (raw == null) {
+            // We can't directly insert this photo since no raw contacts exist in the contact.
+            selectAccountAndCreateContact();
+            return;
+        }
+
+        saveToContact(contact, deltaList, raw);
+    }
+
+    private void saveToContact(Contact contact, RawContactDeltaList deltaList,
+            RawContactDelta raw) {
+
+        // Create a scaled, compressed bitmap to add to the entity-delta list.
+        final int size = ContactsUtils.getThumbnailSize(this);
+        Bitmap bitmap;
+        try {
+            bitmap = ContactPhotoUtils.getBitmapFromUri(this, mCroppedPhotoUri);
+        } catch (FileNotFoundException e) {
+            Log.w(TAG, "Could not find bitmap");
+            finish();
+            return;
+        }
+        if (bitmap == null) {
+            Log.w(TAG, "Could not decode bitmap");
+            finish();
+            return;
+        }
+
+        final Bitmap scaled = Bitmap.createScaledBitmap(bitmap, size, size, false);
+        final byte[] compressed = ContactPhotoUtils.compressBitmap(scaled);
+        if (compressed == null) {
+            Log.w(TAG, "could not create scaled and compressed Bitmap");
+            finish();
+            return;
+        }
+
+        // Add compressed bitmap to entity-delta... this allows us to save to
+        // a new contact; otherwise the entity-delta-list would be empty, and
+        // the ContactSaveService would not create the new contact, and the
+        // full-res photo would fail to be saved to the non-existent contact.
+        AccountType account = raw.getRawContactAccountType(this);
+        ValuesDelta values =
+                RawContactModifier.ensureKindExists(raw, account, Photo.CONTENT_ITEM_TYPE);
+        if (values == null) {
+            Log.w(TAG, "cannot attach photo to this account type");
+            finish();
+            return;
+        }
+        values.setPhoto(compressed);
+
+        // Finally, invoke the ContactSaveService.
+        Log.v(TAG, "all prerequisites met, about to save photo to contact");
+        Intent intent = ContactSaveService.createSaveContactIntent(
+                this,
+                deltaList,
+                "", 0,
+                contact.isUserProfile(),
+                null, null,
+                raw.getRawContactId() != null ? raw.getRawContactId() : -1,
+                mCroppedPhotoUri
+        );
+        ContactSaveService.startService(this, intent);
+        finish();
+    }
+
+    private void selectAccountAndCreateContact() {
+        // 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);
+            startActivityForResult(intent, REQUEST_PICK_DEFAULT_ACCOUNT_FOR_NEW_CONTACT);
+        } 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 = editorUtils.getDefaultAccount();
+            createNewRawContact(defaultAccount);
+        }
+    }
+
+    /**
+     * Create a new writeable raw contact to store mCroppedPhotoUri.
+     */
+    private void createNewRawContact(final AccountWithDataSet account) {
+        // Reload the contact from URI instead of trying to pull the contact from a member variable,
+        // since this function can be called after the activity stops and resumes.
+        loadContact(mContactUri, new Listener() {
+            @Override
+            public void onContactLoaded(Contact contactToSave) {
+                final RawContactDeltaList deltaList = contactToSave.createRawContactDeltaList();
+                final ContentValues after = new ContentValues();
+                after.put(RawContacts.ACCOUNT_TYPE, account != null ? account.type : null);
+                after.put(RawContacts.ACCOUNT_NAME, account != null ? account.name : null);
+                after.put(RawContacts.DATA_SET, account != null ? account.dataSet : null);
+
+                final RawContactDelta newRawContactDelta
+                        = new RawContactDelta(ValuesDelta.fromAfter(after));
+                deltaList.add(newRawContactDelta);
+                saveToContact(contactToSave, deltaList, newRawContactDelta);
+            }
+        });
+    }
+}
diff --git a/src/com/android/contacts/activities/CompactContactEditorActivity.java b/src/com/android/contacts/activities/CompactContactEditorActivity.java
new file mode 100644
index 0000000..dc16049
--- /dev/null
+++ b/src/com/android/contacts/activities/CompactContactEditorActivity.java
@@ -0,0 +1,280 @@
+/*
+ * 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/ContactEditorAccountsChangedActivity.java b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
new file mode 100644
index 0000000..c4c0e27
--- /dev/null
+++ b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
@@ -0,0 +1,210 @@
+/*
+ * 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.AlertDialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.provider.ContactsContract.Intents;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.Button;
+import android.widget.ListView;
+import android.widget.TextView;
+
+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 java.util.List;
+
+/**
+ * This activity can be shown to the user when creating a new contact to inform the user about
+ * which account the contact will be saved in. There is also an option to add an account at
+ * this time. The {@link Intent} in the activity result will contain an extra
+ * {@link #Intents.Insert.ACCOUNT} that contains the {@link AccountWithDataSet} to create
+ * 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();
+
+    private static final int SUBACTIVITY_ADD_NEW_ACCOUNT = 1;
+
+    private AccountsListAdapter mAccountListAdapter;
+    private ContactEditorUtils mEditorUtils;
+
+    private final OnItemClickListener mAccountListItemClickListener = new OnItemClickListener() {
+        @Override
+        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+            if (mAccountListAdapter == null) {
+                return;
+            }
+            saveAccountAndReturnResult(mAccountListAdapter.getItem(position));
+        }
+    };
+
+    private final OnClickListener mAddAccountClickListener = new OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            final Intent intent = ImplicitIntentsUtil.getIntentForAddingGoogleAccount();
+            startActivityForResult(intent, SUBACTIVITY_ADD_NEW_ACCOUNT);
+        }
+    };
+
+    @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(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.
+                    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();
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == SUBACTIVITY_ADD_NEW_ACCOUNT) {
+            // If the user canceled the account setup process, then keep this activity visible to
+            // the user.
+            if (resultCode != RESULT_OK) {
+                return;
+            }
+            // Subactivity was successful, so pass the result back and finish the activity.
+            AccountWithDataSet account = mEditorUtils.getCreatedAccount(resultCode, data);
+            if (account == null) {
+                setResult(resultCode);
+                finish();
+                return;
+            }
+            saveAccountAndReturnResult(account);
+        }
+    }
+
+    private void saveAccountAndReturnResult(AccountWithDataSet account) {
+        // Save this as the default account
+        mEditorUtils.saveDefaultAndAllAccounts(account);
+
+        // Pass account info in activity result intent
+        Intent intent = new Intent();
+        intent.putExtra(Intents.Insert.EXTRA_ACCOUNT, account);
+        setResult(RESULT_OK, intent);
+        finish();
+    }
+}
diff --git a/src/com/android/contacts/activities/ContactEditorActivity.java b/src/com/android/contacts/activities/ContactEditorActivity.java
new file mode 100644
index 0000000..293e8c0
--- /dev/null
+++ b/src/com/android/contacts/activities/ContactEditorActivity.java
@@ -0,0 +1,53 @@
+/*
+ * 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.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.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+
+/**
+ * Contact editor with all fields displayed.
+ */
+public class ContactEditorActivity extends ContactEditorBaseActivity
+        implements DialogManager.DialogShowingViewActivity {
+
+    @Override
+    public void onCreate(Bundle savedState) {
+        super.onCreate(savedState);
+
+        if (RequestPermissionsActivity.startPermissionActivity(this)) {
+            return;
+        }
+
+        setContentView(R.layout.contact_editor_activity);
+
+        mFragment = (ContactEditorFragment) getFragmentManager().findFragmentById(
+                R.id.contact_editor_fragment);
+        mFragment.setListener(mFragmentListener);
+
+        final String action = getIntent().getAction();
+        final Uri uri = ContactEditorBaseActivity.ACTION_EDIT.equals(action)
+                || Intent.ACTION_EDIT.equals(action) ? getIntent().getData() : null;
+        mFragment.load(action, uri, getIntent().getExtras());
+    }
+}
diff --git a/src/com/android/contacts/activities/ContactEditorBaseActivity.java b/src/com/android/contacts/activities/ContactEditorBaseActivity.java
new file mode 100644
index 0000000..c4abd58
--- /dev/null
+++ b/src/com/android/contacts/activities/ContactEditorBaseActivity.java
@@ -0,0 +1,388 @@
+/*
+ * 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.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 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 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;
+    // 3 used for ContactDeletionInteraction.RESULT_CODE_DELETED
+    public static final int RESULT_CODE_EDITED = 4;
+
+    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);
+            actionBar.setHomeAsUpIndicator(R.drawable.ic_close_dk);
+        }
+    }
+
+    @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/ContactSelectionActivity.java b/src/com/android/contacts/activities/ContactSelectionActivity.java
new file mode 100644
index 0000000..29d2cf6
--- /dev/null
+++ b/src/com/android/contacts/activities/ContactSelectionActivity.java
@@ -0,0 +1,698 @@
+/*
+ * 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.activities;
+
+import android.app.Fragment;
+import android.content.ActivityNotFoundException;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract.Contacts;
+import android.support.v7.widget.Toolbar;
+import android.text.TextUtils;
+import android.util.Log;
+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.widget.TextView;
+import android.widget.Toast;
+
+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.common.list.DirectoryListLoader;
+import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
+import com.android.contacts.common.list.PhoneNumberPickerFragment;
+import com.android.contacts.common.logging.ListEvent;
+import com.android.contacts.common.util.ViewUtil;
+import com.android.contacts.editor.EditorIntents;
+import com.android.contacts.list.ContactPickerFragment;
+import com.android.contacts.list.ContactsIntentResolver;
+import com.android.contacts.list.ContactsRequest;
+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.OnContactPickerActionListener;
+import com.android.contacts.list.OnEmailAddressPickerActionListener;
+import com.android.contacts.list.OnPostalAddressPickerActionListener;
+import com.android.contacts.list.PostalAddressPickerFragment;
+import com.android.contacts.list.UiIntentActions;
+
+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 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";
+    private static final int DEFAULT_DIRECTORY_RESULT_LIMIT = 20;
+
+    private ContactsIntentResolver mIntentResolver;
+    protected ContactEntryListFragment<?> mListFragment;
+
+    private int mActionCode = -1;
+    private boolean mIsSearchMode;
+    private boolean mIsSearchSupported;
+
+    private ContactsRequest mRequest;
+
+    private ActionBarAdapter mActionBarAdapter;
+    private Toolbar mToolbar;
+
+    public ContactSelectionActivity() {
+        mIntentResolver = new ContactsIntentResolver(this);
+    }
+
+    @Override
+    public void onAttachFragment(Fragment fragment) {
+        if (fragment instanceof ContactEntryListFragment<?>) {
+            mListFragment = (ContactEntryListFragment<?>) fragment;
+            setupActionListener();
+        }
+    }
+
+    @Override
+    protected void onCreate(Bundle savedState) {
+        super.onCreate(savedState);
+
+        if (RequestPermissionsActivity.startPermissionActivity(this)) {
+            return;
+        }
+
+        if (savedState != null) {
+            mActionCode = savedState.getInt(KEY_ACTION_CODE);
+            mIsSearchMode = savedState.getBoolean(KEY_SEARCH_MODE);
+        }
+
+        // Extract relevant information from the intent
+        mRequest = mIntentResolver.resolveIntent(getIntent());
+        if (!mRequest.isValid()) {
+            setResult(RESULT_CANCELED);
+            finish();
+            return;
+        }
+
+        setContentView(R.layout.contact_picker);
+
+        if (mActionCode != mRequest.getActionCode()) {
+            mActionCode = mRequest.getActionCode();
+            configureListFragment();
+        }
+
+        prepareSearchViewAndActionBar(savedState);
+        configureActivityTitle();
+    }
+
+    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(),
+                /* portraitTabs */ null, /* landscapeTabs */ null, 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()) {
+            mIsSearchSupported = false;
+        } else {
+            mIsSearchSupported = true;
+        }
+        configureSearchMode();
+    }
+
+    private void configureSearchMode() {
+        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;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        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())) {
+            getSupportActionBar().setTitle(mRequest.getActivityTitle());
+            return;
+        }
+        int titleResId = -1;
+        int actionCode = mRequest.getActionCode();
+        switch (actionCode) {
+            case ContactsRequest.ACTION_INSERT_OR_EDIT_CONTACT: {
+                titleResId = R.string.contactInsertOrEditActivityTitle;
+                break;
+            }
+            case ContactsRequest.ACTION_PICK_CONTACT: {
+                titleResId = R.string.contactPickerActivityTitle;
+                break;
+            }
+            case ContactsRequest.ACTION_PICK_OR_CREATE_CONTACT: {
+                titleResId = R.string.contactPickerActivityTitle;
+                break;
+            }
+            case ContactsRequest.ACTION_CREATE_SHORTCUT_CONTACT: {
+                titleResId = R.string.shortcutActivityTitle;
+                break;
+            }
+            case ContactsRequest.ACTION_PICK_PHONE: {
+                titleResId = R.string.contactPickerActivityTitle;
+                break;
+            }
+            case ContactsRequest.ACTION_PICK_EMAIL: {
+                titleResId = R.string.contactPickerActivityTitle;
+                break;
+            }
+            case ContactsRequest.ACTION_CREATE_SHORTCUT_CALL: {
+                titleResId = R.string.callShortcutActivityTitle;
+                break;
+            }
+            case ContactsRequest.ACTION_CREATE_SHORTCUT_SMS: {
+                titleResId = R.string.messageShortcutActivityTitle;
+                break;
+            }
+            case ContactsRequest.ACTION_PICK_POSTAL: {
+                titleResId = R.string.contactPickerActivityTitle;
+                break;
+            }
+            case ContactsRequest.ACTION_PICK_JOIN: {
+                titleResId = R.string.titleJoinContactDataWith;
+                break;
+            }
+            case ContactsRequest.ACTION_PICK_GROUP_MEMBERS: {
+                titleResId = R.string.groupMemberPickerActivityTitle;
+                break;
+            }
+        }
+        if (titleResId > 0) {
+            getSupportActionBar().setTitle(titleResId);
+        }
+    }
+
+    /**
+     * Creates the fragment based on the current request.
+     */
+    public void configureListFragment() {
+        switch (mActionCode) {
+            case ContactsRequest.ACTION_INSERT_OR_EDIT_CONTACT: {
+                ContactPickerFragment fragment = new ContactPickerFragment();
+                fragment.setEditMode(true);
+                fragment.setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_NONE);
+                fragment.setCreateContactEnabled(!mRequest.isSearchMode());
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT);
+                mListFragment = fragment;
+                break;
+            }
+
+            case ContactsRequest.ACTION_DEFAULT:
+            case ContactsRequest.ACTION_PICK_CONTACT: {
+                ContactPickerFragment fragment = new ContactPickerFragment();
+                fragment.setIncludeFavorites(mRequest.shouldIncludeFavorites());
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT);
+                mListFragment = fragment;
+                break;
+            }
+
+            case ContactsRequest.ACTION_PICK_OR_CREATE_CONTACT: {
+                ContactPickerFragment fragment = new ContactPickerFragment();
+                fragment.setCreateContactEnabled(!mRequest.isSearchMode());
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT);
+                mListFragment = fragment;
+                break;
+            }
+
+            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_CREATE_SHORTCUT_CALL: {
+                PhoneNumberPickerFragment fragment = getPhoneNumberPickerFragment(mRequest);
+                fragment.setShortcutAction(Intent.ACTION_CALL);
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT_FOR_SHORTCUT);
+                mListFragment = fragment;
+                break;
+            }
+
+            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;
+            }
+
+            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);
+        }
+
+        // Setting compatibility is no longer needed for PhoneNumberPickerFragment since that logic
+        // has been separated into LegacyPhoneNumberPickerFragment.  But we still need to set
+        // compatibility for other fragments.
+        mListFragment.setLegacyCompatibilityMode(mRequest.isLegacyCompatibilityMode());
+        mListFragment.setDirectoryResultLimit(DEFAULT_DIRECTORY_RESULT_LIMIT);
+
+        getFragmentManager().beginTransaction()
+                .replace(R.id.list_container, mListFragment)
+                .commitAllowingStateLoss();
+    }
+
+    private PhoneNumberPickerFragment getPhoneNumberPickerFragment(ContactsRequest request) {
+        if (mRequest.isLegacyCompatibilityMode()) {
+            return new LegacyPhoneNumberPickerFragment();
+        } else {
+            return new PhoneNumberPickerFragment();
+        }
+    }
+
+    public void setupActionListener() {
+        if (mListFragment instanceof ContactPickerFragment) {
+            ((ContactPickerFragment) mListFragment).setOnContactPickerActionListener(
+                    new ContactPickerActionListener());
+        } else if (mListFragment instanceof PhoneNumberPickerFragment) {
+            ((PhoneNumberPickerFragment) mListFragment).setOnPhoneNumberPickerActionListener(
+                    new PhoneNumberPickerActionListener());
+        } else if (mListFragment instanceof PostalAddressPickerFragment) {
+            ((PostalAddressPickerFragment) mListFragment).setOnPostalAddressPickerActionListener(
+                    new PostalAddressPickerActionListener());
+        } else if (mListFragment instanceof EmailAddressPickerFragment) {
+            ((EmailAddressPickerFragment) mListFragment).setOnEmailAddressPickerActionListener(
+                    new EmailAddressPickerActionListener());
+        } 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 onSelectedTabChanged() {
+    }
+
+    @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() {
+            startCreateNewContactActivity();
+        }
+
+        @Override
+        public void onEditContactAction(Uri contactLookupUri) {
+            startActivityAndForwardResult(EditorIntents.createEditContactIntent(
+                    contactLookupUri, /* materialPalette =*/ null, /* photoId =*/ -1));
+        }
+
+        @Override
+        public void onPickContactAction(Uri contactUri) {
+            returnPickerResult(contactUri);
+        }
+
+        @Override
+        public void onShortcutIntentCreated(Intent intent) {
+            returnPickerResult(intent);
+        }
+    }
+
+    private final class PhoneNumberPickerActionListener implements
+            OnPhoneNumberPickerActionListener {
+        @Override
+        public void onPickDataUri(Uri dataUri, boolean isVideoCall, int callInitiationType) {
+            returnPickerResult(dataUri);
+        }
+
+        @Override
+        public void onPickPhoneNumber(String phoneNumber, boolean isVideoCall,
+                                      int callInitiationType) {
+            Log.w(TAG, "Unsupported call.");
+        }
+
+        @Override
+        public void onShortcutIntentCreated(Intent intent) {
+            returnPickerResult(intent);
+        }
+
+        @Override
+        public void onHomeInActionBarSelected() {
+            ContactSelectionActivity.this.onBackPressed();
+        }
+    }
+
+    private final class JoinContactActionListener implements OnContactPickerActionListener {
+        @Override
+        public void onPickContactAction(Uri contactUri) {
+            Intent intent = new Intent(null, contactUri);
+            setResult(RESULT_OK, intent);
+            finish();
+        }
+
+        @Override
+        public void onShortcutIntentCreated(Intent intent) {
+        }
+
+        @Override
+        public void onCreateNewContactAction() {
+        }
+
+        @Override
+        public void onEditContactAction(Uri contactLookupUri) {
+        }
+    }
+
+    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 onGroupMembersSelected(long[] contactIds) {
+            returnSelectedContacts(contactIds);
+        }
+
+        @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
+        public void onPickPostalAddressAction(Uri dataUri) {
+            returnPickerResult(dataUri);
+        }
+    }
+
+    private final class EmailAddressPickerActionListener implements
+            OnEmailAddressPickerActionListener {
+        @Override
+        public void onPickEmailAddressAction(Uri dataUri) {
+            returnPickerResult(dataUri);
+        }
+    }
+
+    public void startActivityAndForwardResult(final Intent intent) {
+        intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
+
+        // Forward extras to the new activity
+        Bundle extras = getIntent().getExtras();
+        if (extras != null) {
+            intent.putExtras(extras);
+        }
+        try {
+            startActivity(intent);
+        } catch (ActivityNotFoundException e) {
+            Log.e(TAG, "startActivity() failed: " + e);
+            Toast.makeText(ContactSelectionActivity.this, R.string.missing_app,
+                    Toast.LENGTH_SHORT).show();
+        }
+        finish();
+    }
+
+    @Override
+    public void onFocusChange(View view, boolean hasFocus) {
+        switch (view.getId()) {
+            case R.id.search_view: {
+                if (hasFocus) {
+                    mActionBarAdapter.setFocusOnSearchView();
+                }
+            }
+        }
+    }
+
+    public void returnPickerResult(Uri data) {
+        Intent intent = new Intent();
+        intent.setData(data);
+        returnPickerResult(intent);
+    }
+
+    public void returnPickerResult(Intent intent) {
+        intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+        setResult(RESULT_OK, intent);
+        finish();
+    }
+
+    @Override
+    public void onClick(View view) {
+        switch (view.getId()) {
+            case R.id.floating_action_button: {
+                startCreateNewContactActivity();
+                break;
+            }
+        }
+    }
+
+    private long getTargetContactId() {
+        Intent intent = getIntent();
+        final long targetContactId = intent.getLongExtra(
+                UiIntentActions.TARGET_CONTACT_ID_EXTRA_KEY, -1);
+        if (targetContactId == -1) {
+            Log.e(TAG, "Intent " + intent.getAction() + " is missing required extra: "
+                    + UiIntentActions.TARGET_CONTACT_ID_EXTRA_KEY);
+            setResult(RESULT_CANCELED);
+            finish();
+            return -1;
+        }
+        return targetContactId;
+    }
+
+    private void startCreateNewContactActivity() {
+        Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
+        intent.putExtra(ContactEditorActivity.INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED, true);
+        startActivityAndForwardResult(intent);
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        super.onCreateOptionsMenu(menu);
+
+        final MenuInflater inflater = getMenuInflater();
+        inflater.inflate(R.menu.search_menu, menu);
+
+        final MenuItem searchItem = menu.findItem(R.id.menu_search);
+        searchItem.setVisible(!mIsSearchMode && mIsSearchSupported);
+        return true;
+    }
+
+    @Override
+    public void onBackPressed() {
+        if (!isSafeToCommitTransactions()) {
+            return;
+        }
+
+        if (isSelectionMode()) {
+            mActionBarAdapter.setSelectionMode(false);
+            if (getMultiSelectListFragment() != null) {
+                getMultiSelectListFragment().displayCheckBoxes(false);
+            }
+        } else if (mIsSearchMode) {
+            mIsSearchMode = false;
+            configureSearchMode();
+        } else {
+            super.onBackPressed();
+        }
+    }
+}
diff --git a/src/com/android/contacts/activities/GroupMembersActivity.java b/src/com/android/contacts/activities/GroupMembersActivity.java
new file mode 100644
index 0000000..093c8b6
--- /dev/null
+++ b/src/com/android/contacts/activities/GroupMembersActivity.java
@@ -0,0 +1,626 @@
+/*
+ * 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.FragmentManager;
+import android.app.FragmentTransaction;
+import android.content.Context;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.provider.ContactsContract.RawContacts;
+import android.support.v4.view.GravityCompat;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.widget.Toast;
+
+import com.android.contacts.ContactSaveService;
+import com.android.contacts.ContactsDrawerActivity;
+import com.android.contacts.R;
+import com.android.contacts.common.logging.ListEvent;
+import com.android.contacts.common.logging.Logger;
+import com.android.contacts.common.logging.ScreenEvent.ScreenType;
+import com.android.contacts.common.util.ImplicitIntentsUtil;
+import com.android.contacts.group.GroupMembersFragment;
+import com.android.contacts.group.GroupMetadata;
+import com.android.contacts.group.GroupNameEditDialogFragment;
+import com.android.contacts.group.GroupUtil;
+import com.android.contacts.interactions.GroupDeletionDialogFragment;
+import com.android.contacts.list.ContactsRequest;
+import com.android.contacts.list.MultiSelectContactsListFragment;
+import com.android.contacts.list.UiIntentActions;
+import com.android.contacts.quickcontact.QuickContactActivity;
+
+/**
+ * Displays the members of a group and allows the user to edit it.
+ */
+public class GroupMembersActivity extends ContactsDrawerActivity implements
+        ActionBarAdapter.Listener,
+        MultiSelectContactsListFragment.OnCheckBoxListActionListener,
+        GroupMembersFragment.GroupMembersListener,
+        GroupNameEditDialogFragment.Listener {
+
+    private static final String TAG = "GroupMembers";
+
+    private static final String KEY_GROUP_URI = "groupUri";
+    private static final String KEY_GROUP_METADATA = "groupMetadata";
+    private static final String KEY_IS_EDIT_MODE = "editMode";
+
+    private static final String TAG_GROUP_MEMBERS = "groupMembers";
+    private static final String TAG_GROUP_NAME_EDIT_DIALOG = "groupNameEditDialog";
+
+    private static final String ACTION_DELETE_GROUP = "deleteGroup";
+    private static final String ACTION_UPDATE_GROUP = "updateGroup";
+    private static final String ACTION_ADD_TO_GROUP = "addToGroup";
+    private static final String ACTION_REMOVE_FROM_GROUP = "removeFromGroup";
+
+    private static final int RESULT_GROUP_ADD_MEMBER = 100;
+
+    /**
+     * 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.
+     */
+    private static 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 UpdateGroupMembersAsyncTask(int type, Context context, long[] contactIds,
+                long groupId, String accountName, String accountType) {
+            mContext = context;
+            mType = type;
+            mContactIds = contactIds;
+            mGroupId = groupId;
+            mAccountName = accountName;
+            mAccountType = accountType;
+        }
+
+        @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 = GroupMembersActivity.ACTION_ADD_TO_GROUP;
+            } else if (mType == TYPE_REMOVE) {
+                rawContactIdsToAdd = null;
+                rawContactIdsToRemove = rawContactIds;
+                action = GroupMembersActivity.ACTION_REMOVE_FROM_GROUP;
+            } else {
+                throw new IllegalStateException("Unrecognized type " + mType);
+            }
+            return ContactSaveService.createGroupUpdateIntent(
+                    mContext, mGroupId, /* newLabel */ null, rawContactIdsToAdd,
+                    rawContactIdsToRemove, GroupMembersActivity.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 rawContactUri = RawContacts.CONTENT_URI.buildUpon()
+                    .appendQueryParameter(RawContacts.ACCOUNT_NAME, mAccountName)
+                    .appendQueryParameter(RawContacts.ACCOUNT_TYPE, mAccountType)
+                    .build();
+            final String[] projection = new String[]{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(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);
+            }
+        }
+    }
+
+    private ActionBarAdapter mActionBarAdapter;
+
+    private GroupMembersFragment mMembersFragment;
+
+    private Uri mGroupUri;
+    private boolean mIsEditMode;
+
+    private GroupMetadata mGroupMetadata;
+
+    @Override
+    public void onCreate(Bundle savedState) {
+        super.onCreate(savedState);
+
+        // Parse the Intent
+        if (savedState != null) {
+            mGroupUri = savedState.getParcelable(KEY_GROUP_URI);
+            mIsEditMode = savedState.getBoolean(KEY_IS_EDIT_MODE);
+            mGroupMetadata = savedState.getParcelable(KEY_GROUP_METADATA);
+        } else {
+            mGroupUri = getIntent().getData();
+            setTitle(getIntent().getStringExtra(GroupUtil.EXTRA_GROUP_NAME));
+        }
+        if (mGroupUri == null) {
+            setResultCanceledAndFinish(R.string.groupLoadErrorToast);
+            return;
+        }
+
+        // Set up the view
+        setContentView(R.layout.group_members_activity);
+
+        // Set up the action bar
+        mActionBarAdapter = new ActionBarAdapter(this, this, getSupportActionBar(),
+                /* portraitTabs */ null, /* landscapeTabs */ null, mToolbar,
+                R.string.enter_contact_name);
+        mActionBarAdapter.setShowHomeIcon(true);
+
+        // Add the members list fragment
+        final FragmentManager fragmentManager = getFragmentManager();
+        mMembersFragment = (GroupMembersFragment)
+                fragmentManager.findFragmentByTag(TAG_GROUP_MEMBERS);
+        if (mMembersFragment == null) {
+            mMembersFragment = GroupMembersFragment.newInstance(getIntent().getData());
+            fragmentManager.beginTransaction().replace(R.id.fragment_container_inner,
+                    mMembersFragment, TAG_GROUP_MEMBERS).commitAllowingStateLoss();
+        }
+        mMembersFragment.setListener(this);
+        if (mGroupMetadata != null && mGroupMetadata.editable) {
+            mMembersFragment.setCheckBoxListListener(this);
+        }
+
+        // Delay action bar initialization until after the fragment is added
+        final ContactsRequest contactsRequest = new ContactsRequest();
+        contactsRequest.setActionCode(ContactsRequest.ACTION_GROUP);
+        mActionBarAdapter.initialize(savedState, contactsRequest);
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        if (mActionBarAdapter != null) {
+            mActionBarAdapter.onSaveInstanceState(outState);
+        }
+        outState.putParcelable(KEY_GROUP_URI, mGroupUri);
+        outState.putBoolean(KEY_IS_EDIT_MODE, mIsEditMode);
+        outState.putParcelable(KEY_GROUP_METADATA, mGroupMetadata);
+    }
+
+    // Invoked with results from the ContactSaveService
+    @Override
+    protected void onNewIntent(Intent newIntent) {
+        if (ContactsDrawerActivity.ACTION_CREATE_GROUP.equals(newIntent.getAction())) {
+            super.onNewIntent(newIntent);
+            return;
+        }
+        if (isDeleteAction(newIntent.getAction())) {
+            toast(R.string.groupDeletedToast);
+            setResult(RESULT_OK);
+            finish();
+        } else if (isSaveAction(newIntent.getAction())) {
+            final Uri groupUri = newIntent.getData();
+            if (groupUri == null) {
+                setResultCanceledAndFinish(R.string.groupSavedErrorToast);
+                return;
+            }
+            if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "Received group URI " + groupUri);
+
+            mGroupUri = groupUri;
+
+            toast(getToastMessageForSaveAction(newIntent.getAction()));
+
+            if (mIsEditMode) {
+                // If we're removing group members one at a time, don't reload the fragment so
+                // the user can continue to remove group members one by one
+                if (getGroupCount() == 1) {
+                    // If we're deleting the last group member, exit edit mode
+                    onBackPressed();
+                }
+            } else if (!ACTION_REMOVE_FROM_GROUP.equals(newIntent.getAction())) {
+                replaceGroupMembersFragment();
+                invalidateOptionsMenu();
+            }
+        }
+    }
+
+    private static boolean isDeleteAction(String action) {
+        return ACTION_DELETE_GROUP.equals(action);
+    }
+
+    private static boolean isSaveAction(String action) {
+        return ACTION_UPDATE_GROUP.equals(action)
+                || ACTION_ADD_TO_GROUP.equals(action)
+                || ACTION_REMOVE_FROM_GROUP.equals(action);
+    }
+
+    private static int getToastMessageForSaveAction(String action) {
+        if (ACTION_UPDATE_GROUP.equals(action)) return R.string.groupUpdatedToast;
+        if (ACTION_ADD_TO_GROUP.equals(action)) return R.string.groupMembersAddedToast;
+        if (ACTION_REMOVE_FROM_GROUP.equals(action)) return R.string.groupMembersRemovedToast;
+        throw new IllegalArgumentException("Unhanded contact save action " + action);
+    }
+
+    private int getGroupCount() {
+        return mMembersFragment != null && mMembersFragment.getAdapter() != null
+                ? mMembersFragment.getAdapter().getCount() : -1;
+    }
+
+    private void replaceGroupMembersFragment() {
+        mMembersFragment = GroupMembersFragment.newInstance(mGroupUri);
+        mMembersFragment.setListener(this);
+        final FragmentTransaction transaction = getFragmentManager().beginTransaction();
+        addGroupsAndFiltersFragments(transaction);
+        transaction.replace(R.id.fragment_container_inner, mMembersFragment, TAG_GROUP_MEMBERS)
+                .commitAllowingStateLoss();
+        if (mGroupMetadata != null && mGroupMetadata.editable) {
+            mMembersFragment.setCheckBoxListListener(this);
+        }
+    }
+
+    @Override
+    protected void onGroupMenuItemClicked(long groupId, String title) {
+        if (mGroupMetadata.groupId != groupId) {
+            super.onGroupMenuItemClicked(groupId, title);
+        }
+    }
+
+    @Override
+    protected boolean shouldFinish() {
+        return true;
+    }
+
+    @Override
+    protected void launchFindDuplicates() {
+        super.launchFindDuplicates();
+        finish();
+    }
+
+    public boolean isEditMode() {
+        return mIsEditMode;
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        if (mGroupMetadata == null) {
+            // Hide menu options until metadata is fully loaded
+            return false;
+        }
+        super.onCreateOptionsMenu(menu);
+        getMenuInflater().inflate(R.menu.view_group, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onPrepareOptionsMenu(Menu menu) {
+        final boolean isSelectionMode = mActionBarAdapter.isSelectionMode();
+        final boolean isGroupEditable = mGroupMetadata != null && mGroupMetadata.editable;
+        final boolean isGroupReadOnly = mGroupMetadata != null && mGroupMetadata.readOnly;
+
+        setVisible(menu, R.id.menu_add, isGroupEditable && !isSelectionMode);
+        setVisible(menu, R.id.menu_rename_group, !isGroupReadOnly && !isSelectionMode);
+        setVisible(menu, R.id.menu_delete_group, !isGroupReadOnly && !isSelectionMode);
+        setVisible(menu, R.id.menu_edit_group, isGroupEditable && !mIsEditMode && !isSelectionMode
+                && !isGroupEmpty());
+        setVisible(menu, R.id.menu_remove_from_group, isGroupEditable && isSelectionMode &&
+                !mIsEditMode);
+
+        return true;
+    }
+
+    private boolean isGroupEmpty() {
+        return mMembersFragment != null && mMembersFragment.getAdapter() != null &&
+                mMembersFragment.getAdapter().isEmpty();
+    }
+
+    private static void setVisible(Menu menu, int id, boolean visible) {
+        final MenuItem menuItem = menu.findItem(id);
+        if (menuItem != null) {
+            menuItem.setVisible(visible);
+        }
+    }
+
+    public void startGroupAddMemberActivity() {
+        startActivityForResult(GroupUtil.createPickMemberIntent(mGroupMetadata,
+                mMembersFragment.getMemberContactIds()), RESULT_GROUP_ADD_MEMBER);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case android.R.id.home: {
+                onBackPressed();
+                return true;
+            }
+            case R.id.menu_add: {
+                startGroupAddMemberActivity();
+                return true;
+            }
+            case R.id.menu_rename_group: {
+                GroupNameEditDialogFragment.showUpdateDialog(
+                        getFragmentManager(), TAG_GROUP_NAME_EDIT_DIALOG, mGroupMetadata.groupName);
+                return true;
+            }
+            case R.id.menu_delete_group: {
+                deleteGroup();
+                return true;
+            }
+            case R.id.menu_edit_group: {
+                if (mMembersFragment == null) {
+                    return false;
+                }
+                mIsEditMode = true;
+                mActionBarAdapter.setSelectionMode(true);
+                mMembersFragment.displayDeleteButtons(true);
+                return true;
+            }
+            case R.id.menu_remove_from_group: {
+                if (mMembersFragment == null) {
+                    return false;
+                }
+                logListEvent();
+                removeSelectedContacts();
+                return true;
+            }
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    private void deleteGroup() {
+        if (mMembersFragment.getMemberCount() == 0) {
+            final Intent intent = ContactSaveService.createGroupDeletionIntent(
+                    this, mGroupMetadata.groupId,
+                    GroupMembersActivity.class, ACTION_DELETE_GROUP);
+            startService(intent);
+        } else {
+            GroupDeletionDialogFragment.show(getFragmentManager(), mGroupMetadata.groupId,
+                    mGroupMetadata.groupName, /* endActivity */ false, ACTION_DELETE_GROUP);
+        }
+    }
+
+    private void logListEvent() {
+        Logger.logListEvent(
+                ListEvent.ActionType.REMOVE_LABEL,
+                mMembersFragment.getListType(),
+                mMembersFragment.getAdapter().getCount(),
+                /* clickedIndex */ -1,
+                mMembersFragment.getAdapter().getSelectedContactIdsArray().length);
+    }
+
+    private void removeSelectedContacts() {
+        final long[] contactIds = mMembersFragment.getAdapter().getSelectedContactIdsArray();
+        new UpdateGroupMembersAsyncTask(UpdateGroupMembersAsyncTask.TYPE_REMOVE,
+                this, contactIds, mGroupMetadata.groupId, mGroupMetadata.accountName,
+                mGroupMetadata.accountType).execute();
+
+        mActionBarAdapter.setSelectionMode(false);
+    }
+
+    @Override
+    public void onBackPressed() {
+        if (!isSafeToCommitTransactions()) {
+            return;
+        }
+        if (mDrawer.isDrawerOpen(GravityCompat.START)) {
+            mDrawer.closeDrawer(GravityCompat.START);
+        } else if (mIsEditMode) {
+            mIsEditMode = false;
+            mActionBarAdapter.setSelectionMode(false);
+            if (mMembersFragment != null) {
+                mMembersFragment.displayDeleteButtons(false);
+            }
+        } else if (mActionBarAdapter.isSelectionMode()) {
+            mActionBarAdapter.setSelectionMode(false);
+            if (mMembersFragment != null) {
+                mMembersFragment.displayCheckBoxes(false);
+            }
+        } else if (mActionBarAdapter.isSearchMode()) {
+            mActionBarAdapter.setSearchMode(false);
+        } else {
+            switchToAllContacts();
+            super.onBackPressed();
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == RESULT_GROUP_ADD_MEMBER && resultCode == RESULT_OK && data != null) {
+            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,
+                    this, contactIds, mGroupMetadata.groupId, mGroupMetadata.accountName,
+                    mGroupMetadata.accountType).execute();
+        }
+    }
+
+    private void setResultCanceledAndFinish(int resId) {
+        toast(resId);
+        setResult(RESULT_CANCELED);
+        finish();
+    }
+
+    private void toast(int resId) {
+        if (resId >= 0) {
+            Toast.makeText(this, resId, Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    // ActionBarAdapter callbacks
+
+    @Override
+    public void onAction(int action) {
+        switch (action) {
+            case ActionBarAdapter.Listener.Action.START_SELECTION_MODE:
+                if (mMembersFragment != null) {
+                    if (mIsEditMode) {
+                        mMembersFragment.displayDeleteButtons(true);
+                        mActionBarAdapter.setActionBarTitle(getString(R.string.title_edit_group));
+                    } else {
+                        mMembersFragment.displayCheckBoxes(true);
+                    }
+                }
+                invalidateOptionsMenu();
+                showFabWithAnimation(/* showFabWithAnimation = */ false);
+                break;
+            case ActionBarAdapter.Listener.Action.STOP_SEARCH_AND_SELECTION_MODE:
+                mActionBarAdapter.setSearchMode(false);
+                if (mMembersFragment != null) {
+                    if (mIsEditMode) {
+                        mMembersFragment.displayDeleteButtons(false);
+                    } else {
+                        mMembersFragment.displayCheckBoxes(false);
+                    }
+                }
+                invalidateOptionsMenu();
+                showFabWithAnimation(/* showFabWithAnimation */ true);
+                break;
+            case ActionBarAdapter.Listener.Action.BEGIN_STOPPING_SEARCH_AND_SELECTION_MODE:
+                showFabWithAnimation(/* showFabWithAnimation */ true);
+                break;
+        }
+    }
+
+    private void showFabWithAnimation(boolean showFab) {
+        // TODO: b/28497108
+    }
+
+    @Override
+    public void onSelectedTabChanged() {
+    }
+
+    @Override
+    public void onUpButtonPressed() {
+        onBackPressed();
+    }
+
+    // MultiSelect checkbox callbacks
+
+    @Override
+    public void onStartDisplayingCheckBoxes() {
+        mActionBarAdapter.setSelectionMode(true);
+    }
+
+    @Override
+    public void onSelectedContactIdsChanged() {
+        if (mIsEditMode) {
+            mActionBarAdapter.setActionBarTitle(getString(R.string.title_edit_group));
+        } else {
+            mActionBarAdapter.setSelectionCount(mMembersFragment.getSelectedContactIds().size());
+        }
+    }
+
+    @Override
+    public void onStopDisplayingCheckBoxes() {
+        mActionBarAdapter.setSelectionMode(false);
+    }
+
+    // GroupNameEditDialogFragment.Listener callbacks
+
+    @Override
+    public void onGroupNameEdit(String groupName, boolean isInsert) {
+        if (isInsert) {
+            super.onGroupNameEdit(groupName, isInsert);
+            return;
+        }
+        startService(ContactSaveService.createGroupRenameIntent(this,
+                mGroupMetadata.groupId, groupName, GroupMembersActivity.class,
+                ACTION_UPDATE_GROUP));
+    }
+
+    @Override
+    public void onGroupNameEditCancelled() {
+    }
+
+    // GroupMembersFragment callbacks
+
+    @Override
+    public void onGroupMetadataLoaded(GroupMetadata groupMetadata) {
+        mGroupMetadata = groupMetadata;
+        updateGroupMenu(mGroupMetadata);
+        setTitle(mGroupMetadata.groupName);
+        invalidateOptionsMenu();
+    }
+
+    @Override
+    public void onGroupMetadataLoadFailed() {
+        setResultCanceledAndFinish(R.string.groupLoadErrorToast);
+    }
+
+    @Override
+    protected GroupMetadata getGroupMetadata() {
+        return mGroupMetadata;
+    }
+
+    @Override
+    public void onGroupMemberListItemClicked(int position, Uri contactLookupUri) {
+        final int count = mMembersFragment.getAdapter().getCount();
+        Logger.logListEvent(ListEvent.ActionType.CLICK, ListEvent.ListType.GROUP, count,
+                /* clickedIndex */ position, /* numSelected */ 0);
+        final Intent intent = ImplicitIntentsUtil.composeQuickContactIntent(
+                contactLookupUri, QuickContactActivity.MODE_FULLY_EXPANDED);
+        intent.putExtra(QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE, ScreenType.LIST_GROUP);
+        startActivity(intent);
+    }
+
+    @Override
+    public void onGroupMemberListItemDeleted(int position, long contactId) {
+        final long[] contactIds = new long[1];
+        contactIds[0] = contactId;
+        new UpdateGroupMembersAsyncTask(UpdateGroupMembersAsyncTask.TYPE_REMOVE,
+                this, contactIds, mGroupMetadata.groupId, mGroupMetadata.accountName,
+                mGroupMetadata.accountType).execute();
+    }
+}
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
new file mode 100644
index 0000000..8a0ae1b
--- /dev/null
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -0,0 +1,1509 @@
+/*
+ * 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.activities;
+
+import android.accounts.Account;
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.content.ActivityNotFoundException;
+import android.content.ContentUris;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.graphics.Rect;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Parcelable;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Intents;
+import android.provider.ContactsContract.ProviderStatus;
+import android.provider.ContactsContract.QuickContact;
+import android.support.v13.app.FragmentPagerAdapter;
+import android.support.v4.view.GravityCompat;
+import android.support.v4.view.PagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.text.TextUtils;
+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.SubMenu;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityEvent;
+import android.widget.ImageButton;
+import android.widget.Toast;
+
+import com.android.contacts.ContactSaveService;
+import com.android.contacts.ContactsDrawerActivity;
+import com.android.contacts.R;
+import com.android.contacts.activities.ActionBarAdapter.TabState;
+import com.android.contacts.common.activity.RequestPermissionsActivity;
+import com.android.contacts.common.compat.CompatUtils;
+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.DirectoryListLoader;
+import com.android.contacts.common.list.ProviderStatusWatcher;
+import com.android.contacts.common.list.ProviderStatusWatcher.ProviderStatusListener;
+import com.android.contacts.common.list.ViewPagerTabs;
+import com.android.contacts.common.logging.ListEvent;
+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.account.AccountWithDataSet;
+import com.android.contacts.common.model.account.GoogleAccountType;
+import com.android.contacts.common.util.Constants;
+import com.android.contacts.common.util.ImplicitIntentsUtil;
+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.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.DefaultContactBrowseListFragment.FeatureHighlightCallback;
+import com.android.contacts.list.MultiSelectContactsListFragment.OnCheckBoxListActionListener;
+import com.android.contacts.list.OnContactBrowserActionListener;
+import com.android.contacts.list.OnContactsUnavailableActionListener;
+import com.android.contacts.quickcontact.QuickContactActivity;
+import com.android.contacts.util.DialogManager;
+import com.android.contacts.util.SharedPreferenceUtil;
+import com.google.android.libraries.material.featurehighlight.FeatureHighlight;
+
+import java.util.List;
+import java.util.Locale;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * Displays a list to browse contacts.
+ */
+public class PeopleActivity extends ContactsDrawerActivity implements
+        View.OnCreateContextMenuListener,
+        View.OnClickListener,
+        ActionBarAdapter.Listener,
+        DialogManager.DialogShowingViewActivity,
+        ContactListFilterController.ContactListFilterListener,
+        ProviderStatusListener,
+        MultiContactDeleteListener,
+        DefaultContactBrowseListFragment.FeatureHighlightCallback {
+
+    private static final String TAG = "PeopleActivity";
+
+    private static final String ENABLE_DEBUG_OPTIONS_HIDDEN_CODE = "debug debug!";
+
+    private static final int ACTIVITY_REQUEST_CODE_SHARE = 0;
+
+    private final DialogManager mDialogManager = new DialogManager(this);
+
+    private ContactsIntentResolver mIntentResolver;
+    private ContactsRequest mRequest;
+
+    private ActionBarAdapter mActionBarAdapter;
+    private List<AccountWithDataSet> mWritableAccounts;
+    private FloatingActionButtonController mFloatingActionButtonController;
+    private View mFloatingActionButtonContainer;
+    private boolean wasLastFabAnimationScaleIn = false;
+
+    private ContactsUnavailableFragment mContactsUnavailableFragment;
+    private ProviderStatusWatcher mProviderStatusWatcher;
+    private Integer mProviderStatus;
+
+    private boolean mOptionsMenuContactsAvailable;
+
+    /**
+     * Showing a list of Contacts. Also used for showing search results in search mode.
+     */
+    private DefaultContactBrowseListFragment mAllFragment;
+
+    /** ViewPager for swipe */
+    private ViewPager mTabPager;
+    private ViewPagerTabs mViewPagerTabs;
+    private TabPagerAdapter mTabPagerAdapter;
+    private String[] mTabTitles;
+    private final TabPagerListener mTabPagerListener = new TabPagerListener();
+
+    private boolean mEnableDebugMenuOptions;
+
+    /**
+     * 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;
+
+    /** Sequential ID assigned to each instance; used for logging */
+    private final int mInstanceId;
+    private static final AtomicInteger sNextInstanceId = new AtomicInteger();
+
+    public PeopleActivity() {
+        mInstanceId = sNextInstanceId.getAndIncrement();
+        mIntentResolver = new ContactsIntentResolver(this);
+        mProviderStatusWatcher = ProviderStatusWatcher.getInstance(this);
+    }
+
+    @Override
+    public String toString() {
+        // Shown on logcat
+        return String.format("%s@%d", getClass().getSimpleName(), mInstanceId);
+    }
+
+    public boolean areContactsAvailable() {
+        return (mProviderStatus != null) && mProviderStatus.equals(ProviderStatus.STATUS_NORMAL);
+    }
+
+    /**
+     * 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");
+        }
+        super.onCreate(savedState);
+
+        if (RequestPermissionsActivity.startPermissionActivity(this)) {
+            return;
+        }
+
+        if (!processIntent(false)) {
+            finish();
+            return;
+        }
+        mContactListFilterController = ContactListFilterController.getInstance(this);
+        mContactListFilterController.checkFilterValidity(false);
+        mContactListFilterController.addListener(this);
+
+        mProviderStatusWatcher.addListener(this);
+
+        mIsRecreatedInstance = (savedState != null);
+
+        // Use FILTER_TYPE_ALL_ACCOUNTS filter if the activity is not a re-created one.
+        // This is useful when user upgrades app while an account filter or a custom filter was
+        // stored in sharedPreference in a previous version of Contacts app.
+        final ContactListFilter filter = mIsRecreatedInstance
+                ? mContactListFilterController.getFilter() : createContactsFilter();
+        persistFilterIfNeeded(filter);
+
+        createViewsAndFragments(savedState);
+
+        if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) {
+            Log.d(Constants.PERFORMANCE_TAG, "PeopleActivity.onCreate finish");
+        }
+        getWindow().setBackgroundDrawable(null);
+    }
+
+    private void maybeShowHamburgerFeatureHighlight() {
+        if (!mActionBarAdapter.isSearchMode() && !mActionBarAdapter.isSelectionMode()
+                && SharedPreferenceUtil.getShouldShowHamburgerPromo(this)) {
+            final FeatureHighlight hamburgerFeatureHighlight =
+                    mActionBarAdapter.getHamburgerFeatureHighlight();
+            if (hamburgerFeatureHighlight != null) {
+                hamburgerFeatureHighlight.show(this);
+                SharedPreferenceUtil.setHamburgerPromoDisplayedBefore(this);
+            }
+        }
+    }
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        if (ContactsDrawerActivity.ACTION_CREATE_GROUP.equals(intent.getAction())) {
+            super.onNewIntent(intent);
+            return;
+        }
+
+        setIntent(intent);
+        if (!processIntent(true)) {
+            finish();
+            return;
+        }
+        mActionBarAdapter.initialize(null, mRequest);
+
+        mContactListFilterController.checkFilterValidity(false);
+
+        // Re-configure fragments.
+        configureFragments(true /* from request */);
+        initializeFabVisibility();
+        invalidateOptionsMenuIfNeeded();
+    }
+
+    /**
+     * Resolve the intent and initialize {@link #mRequest}, and launch another activity if redirect
+     * is needed.
+     *
+     * @param forNewIntent set true if it's called from {@link #onNewIntent(Intent)}.
+     * @return {@code true} if {@link PeopleActivity} should continue running.  {@code false}
+     *         if it shouldn't, in which case the caller should finish() itself and shouldn't do
+     *         farther initialization.
+     */
+    private boolean processIntent(boolean forNewIntent) {
+        // Extract relevant information from the intent
+        mRequest = mIntentResolver.resolveIntent(getIntent());
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, this + " processIntent: forNewIntent=" + forNewIntent
+                    + " intent=" + getIntent() + " request=" + mRequest);
+        }
+        if (!mRequest.isValid()) {
+            setResult(RESULT_CANCELED);
+            return false;
+        }
+
+        switch (mRequest.getActionCode()) {
+            case 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;
+            }
+            case ContactsRequest.ACTION_INSERT_GROUP: {
+                onCreateGroupMenuItemClicked();
+                return true;
+            }
+        }
+        return true;
+    }
+
+    private void createViewsAndFragments(Bundle savedState) {
+        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();
+
+        mTabTitles = new String[TabState.COUNT];
+        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 differently.
+        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, mToolbar, /* attachToRoot = */ false);
+            mViewPagerTabs = landscapeViewPagerTabs;
+        } else {
+            mViewPagerTabs = portraitViewPagerTabs;
+        }
+        mViewPagerTabs.setViewPager(mTabPager);
+
+        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.
+        mAllFragment = (DefaultContactBrowseListFragment)
+                fragmentManager.findFragmentByTag(ALL_TAG);
+
+        if (mAllFragment == null) {
+            mAllFragment = new DefaultContactBrowseListFragment();
+            mAllFragment.setAnimateOnLoad(true);
+            transaction.add(R.id.tab_pager, mAllFragment, ALL_TAG);
+        }
+
+        mAllFragment.setFeatureHighlightCallback(this);
+        mAllFragment.setOnContactListActionListener(new ContactBrowserActionListener());
+        mAllFragment.setCheckBoxListListener(new CheckBoxListListener());
+        mAllFragment.setListType(mContactListFilterController.getFilterListType());
+
+        // Hide all fragments for now.  We adjust visibility when we get onSelectedTabChanged()
+        // from ActionBarAdapter.
+        transaction.hide(mAllFragment);
+
+        transaction.commitAllowingStateLoss();
+        fragmentManager.executePendingTransactions();
+
+        mActionBarAdapter = new ActionBarAdapter(this, this, getSupportActionBar(),
+                portraitViewPagerTabs, landscapeViewPagerTabs, mToolbar);
+        mActionBarAdapter.initialize(savedState, mRequest);
+
+        // 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);
+        mFloatingActionButtonController = new FloatingActionButtonController(this,
+                mFloatingActionButtonContainer, floatingActionButton);
+        initializeFabVisibility();
+
+        invalidateOptionsMenuIfNeeded();
+    }
+
+    @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);
+        }
+        super.onStart();
+    }
+
+    @Override
+    protected void onPause() {
+        mOptionsMenuContactsAvailable = false;
+        mProviderStatusWatcher.stop();
+        super.onPause();
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+
+        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);
+        }
+        // Current tab may have changed since the last onSaveInstanceState().  Make sure
+        // the actual contents match the tab.
+        updateFragmentsVisibility();
+        maybeShowHamburgerFeatureHighlight();
+    }
+
+    @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);
+        }
+
+        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 = createContactsFilter();
+                    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.ALL;
+                    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, /* persistent */ 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()
+                || !shouldShowFabForAccount();
+        mFloatingActionButtonContainer.setVisibility(hideFab ? View.GONE : View.VISIBLE);
+        mFloatingActionButtonController.resetIn();
+        wasLastFabAnimationScaleIn = !hideFab;
+    }
+
+    private boolean shouldShowFabForAccount() {
+        return isCurrentAccountFilterWritable()
+                || isAllContactsFilter(mContactListFilterController.getFilter());
+    }
+
+    private boolean isCurrentAccountFilterWritable() {
+        final ContactListFilter currentFilter = mContactListFilterController.getFilter();
+        final AccountWithDataSet accountOfCurrentFilter = new AccountWithDataSet(
+                currentFilter.accountName, currentFilter.accountType, currentFilter.dataSet);
+        return accountOfCurrentFilter.isLocalAccount()
+                || (mWritableAccounts != null
+                && mWritableAccounts.contains(accountOfCurrentFilter));
+    }
+
+    private void showFabWithAnimation(boolean showFab) {
+        if (mFloatingActionButtonContainer == null) {
+            return;
+        }
+        if (showFab) {
+            if (!wasLastFabAnimationScaleIn) {
+                mFloatingActionButtonContainer.setVisibility(View.VISIBLE);
+                mFloatingActionButtonController.scaleIn(0);
+            }
+            wasLastFabAnimationScaleIn = true;
+
+        } else {
+            if (wasLastFabAnimationScaleIn) {
+                mFloatingActionButtonContainer.setVisibility(View.VISIBLE);
+                mFloatingActionButtonController.scaleOut();
+            }
+            wasLastFabAnimationScaleIn = false;
+        }
+    }
+
+    @Override
+    public void onContactListFilterChanged() {
+        if (mAllFragment == null || !mAllFragment.isAdded()) {
+            return;
+        }
+
+        setFilterAndUpdateTitle(mContactListFilterController.getFilter());
+        // Scroll to top after filter is changed.
+        mAllFragment.getListView().setSelection(0);
+        showFabWithAnimation(shouldShowFabForAccount());
+
+        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(shouldShowFabForAccount());
+                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.
+                // If not empty, promo should be checked and displayed after reloading. (b/30706521)
+                if (TextUtils.isEmpty(mAllFragment.getQueryString())) {
+                    maybeShowHamburgerFeatureHighlight();
+                }
+                setQueryTextToFragment("");
+                updateFragmentsVisibility();
+                invalidateOptionsMenu();
+                showFabWithAnimation(shouldShowFabForAccount());
+                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(/* showFab */ false);
+        if (!SharedPreferenceUtil.getHamburgerPromoTriggerActionHappenedBefore(this)) {
+            SharedPreferenceUtil.setHamburgerPromoTriggerActionHappenedBefore(this);
+        }
+    }
+
+    @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.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 == 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.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);
+        }
+
+        setFilterAndUpdateTitle(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.
+        setFilterAndUpdateTitle(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 onFiltersLoaded(List<ContactListFilter> accountFilterItems) {
+        super.onFiltersLoaded(accountFilterItems);
+        mWritableAccounts =
+                AccountTypeManager.getInstance(this).getAccounts(/* contactWritableOnly */ true);
+        initializeFabVisibility();
+    }
+
+    @Override
+    public void onProviderStatusChange() {
+        reloadGroupsAndFiltersIfNeeded();
+        updateViewConfiguration(false);
+    }
+
+    private void reloadGroupsAndFiltersIfNeeded() {
+        final int providerStatus = mProviderStatusWatcher.getProviderStatus();
+        final Menu menu = mNavigationView.getMenu();
+        final MenuItem groupsMenuItem = menu.findItem(R.id.nav_groups);
+        final SubMenu subMenu = groupsMenuItem.getSubMenu();
+
+        // Reload groups and filters if provider status changes to "normal" and there's no groups
+        // loaded or just a "Create new..." menu item is in the menu.
+        if (subMenu != null && subMenu.size() <= 1 && providerStatus == ProviderStatus.STATUS_NORMAL
+                && !mProviderStatus.equals(providerStatus)) {
+            loadGroupsAndFilters();
+        }
+    }
+
+    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);
+
+        // 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 ((mProviderStatus.equals(ProviderStatus.STATUS_EMPTY) && hasNonLocalAccount())
+                || 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);
+            }
+        } 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 (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());
+        }
+
+        invalidateOptionsMenuIfNeeded();
+    }
+
+    // Returns true if there are real accounts (not "local" account) in the list of accounts.
+    private boolean hasNonLocalAccount() {
+        final List<AccountWithDataSet> allAccounts =
+                AccountTypeManager.getInstance(this).getAccounts(/* contactWritableOnly */ false);
+        if (allAccounts == null || allAccounts.size() == 0) {
+            return false;
+        }
+        if (allAccounts.size() > 1) {
+            return true;
+        }
+        return !allAccounts.get(0).isLocalAccount();
+    }
+
+    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.
+                QuickContact.showQuickContact(PeopleActivity.this, new Rect(), contactLookupUri,
+                        QuickContactActivity.MODE_FULLY_EXPANDED, null);
+            } else {
+                final Intent intent = ImplicitIntentsUtil.composeQuickContactIntent(
+                        contactLookupUri, QuickContactActivity.MODE_FULLY_EXPANDED);
+                final int previousScreen;
+                if (mAllFragment.isSearchMode()) {
+                    previousScreen = ScreenType.SEARCH;
+                } else {
+                    if (isAllContactsFilter(mContactListFilterController.getFilter())) {
+                        if (position < mAllFragment.getAdapter().getNumberOfFavorites()) {
+                            previousScreen = ScreenType.FAVORITES;
+                        } else {
+                            previousScreen = ScreenType.ALL_CONTACTS;
+                        }
+                    } else {
+                        previousScreen = ScreenType.LIST_ACCOUNT;
+                    }
+                }
+                Logger.logListEvent(ListEvent.ActionType.CLICK,
+                        /* listType */ getListTypeIncludingSearch(),
+                        /* count */ mAllFragment.getAdapter().getCount(),
+                        /* clickedIndex */ position, /* numSelected */ 0);
+                intent.putExtra(QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE, previousScreen);
+                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 = createContactsFilter();
+                setFilterAndUpdateTitle(filter);
+            } else {
+                filter = ContactListFilter.createFilterWithType(
+                        ContactListFilter.FILTER_TYPE_SINGLE_CONTACT);
+                setFilterAndUpdateTitle(filter, /* restoreSelectedUri */ false);
+            }
+            persistFilterIfNeeded(filter);
+        }
+    }
+
+    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.getIntentForAddingGoogleAccount();
+            ImplicitIntentsUtil.startActivityOutsideApp(PeopleActivity.this, intent);
+        }
+
+        @Override
+        public void onImportContactsFromFileAction() {
+            showImportExportDialogFragment();
+        }
+    }
+
+    @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 void invalidateOptionsMenuIfNeeded() {
+        if (isOptionsMenuChanged()) {
+            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;
+        }
+
+        final boolean isSearchOrSelectionMode = mActionBarAdapter.isSearchMode()
+                || mActionBarAdapter.isSelectionMode();
+        makeMenuItemVisible(menu, R.id.menu_search, !isSearchOrSelectionMode);
+
+        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;
+    }
+
+    private void makeMenuItemVisible(Menu menu, int itemId, boolean visible) {
+        final MenuItem item = menu.findItem(itemId);
+        if (item != null) {
+            item.setVisible(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_search: {
+                onSearchRequested();
+                return true;
+            }
+            case R.id.menu_share: {
+                shareSelectedContacts();
+                return true;
+            }
+            case R.id.menu_join: {
+                Logger.logListEvent(ListEvent.ActionType.LINK,
+                        /* listType */ getListTypeIncludingSearch(),
+                        /* count */ mAllFragment.getAdapter().getCount(), /* clickedIndex */ -1,
+                        /* numSelected */ mAllFragment.getAdapter().getSelectedContactIds().size());
+                joinSelectedContacts();
+                return true;
+            }
+            case R.id.menu_delete: {
+                deleteSelectedContacts();
+                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 super.onOptionsItemSelected(item);
+    }
+
+    private void showImportExportDialogFragment(){
+        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);
+        try {
+            startActivityForResult(Intent.createChooser(intent, getResources().getQuantityString(
+                    R.plurals.title_share_via,
+                    /* quantity */ mAllFragment.getSelectedContactIds().size()))
+                    , ACTIVITY_REQUEST_CODE_SHARE);
+        } catch (final ActivityNotFoundException ex) {
+            Toast.makeText(this, R.string.share_error, Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    private void joinSelectedContacts() {
+        final Intent intent = ContactSaveService.createJoinSeveralContactsIntent(
+                this, mAllFragment.getSelectedContactIdsArray());
+        this.startService(intent);
+
+        mActionBarAdapter.setSelectionMode(false);
+    }
+
+    private void deleteSelectedContacts() {
+        ContactMultiDeletionInteraction.start(PeopleActivity.this,
+                mAllFragment.getSelectedContactIds());
+    }
+
+    @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 */ mAllFragment.getAdapter().getCount(), /* clickedIndex */ -1,
+                /* numSelected */ mAllFragment.getSelectedContactIds().size());
+        mActionBarAdapter.setSelectionMode(false);
+    }
+
+    private int getListTypeIncludingSearch() {
+        return mAllFragment.isSearchMode()
+                ? ListEvent.ListType.SEARCH_RESULT : mAllFragment.getListType();
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        switch (requestCode) {
+            // 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);
+                }
+            case ACTIVITY_REQUEST_CODE_SHARE:
+                Logger.logListEvent(ListEvent.ActionType.SHARE,
+                    /* listType */ getListTypeIncludingSearch(),
+                    /* count */ mAllFragment.getAdapter().getCount(), /* clickedIndex */ -1,
+                    /* numSelected */ mAllFragment.getAdapter().getSelectedContactIds().size());
+
+// 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
+
+        // 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);
+                return true;
+            }
+        }
+
+        return super.onKeyDown(keyCode, event);
+    }
+
+    @Override
+    public void onBackPressed() {
+        if (!isSafeToCommitTransactions()) {
+            return;
+        }
+
+        if (mDrawer.isDrawerOpen(GravityCompat.START)) {
+            mDrawer.closeDrawer(GravityCompat.START);
+        } else if (mActionBarAdapter.isSelectionMode()) {
+            mActionBarAdapter.setSelectionMode(false);
+            mAllFragment.displayCheckBoxes(false);
+        } else if (mActionBarAdapter.isSearchMode()) {
+            mActionBarAdapter.setSearchMode(false);
+
+            if (mAllFragment.wasSearchResultClicked()) {
+                mAllFragment.resetSearchResultClicked();
+            } else {
+                Logger.logScreenView(this, ScreenType.SEARCH_EXIT);
+                Logger.logSearchEvent(mAllFragment.createSearchState());
+            }
+        } else if (!isAllContactsFilter(mContactListFilterController.getFilter())) {
+            switchToAllContacts();
+        } else {
+            super.onBackPressed();
+        }
+    }
+
+    @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);
+        }
+    }
+
+    @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();
+        }
+    }
+
+    @Override
+    public DialogManager getDialogManager() {
+        return mDialogManager;
+    }
+
+    @Override
+    public void onClick(View view) {
+        switch (view.getId()) {
+            case R.id.floating_action_button:
+                onFabClicked();
+                break;
+            default:
+                Log.wtf(TAG, "Unexpected onClick event from " + view);
+        }
+    }
+
+    public void onFabClicked() {
+        final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
+        final Bundle extras = getIntent().getExtras();
+        if (extras != null) {
+            final ContactListFilter filter = mContactListFilterController.getFilter();
+            // 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) && !isDeviceContactsFilter(filter)) {
+                final Account account = new Account(filter.accountName, filter.accountType);
+                extras.putParcelable(Intents.Insert.EXTRA_ACCOUNT, account);
+                extras.putString(Intents.Insert.EXTRA_DATA_SET, filter.dataSet);
+            }
+            intent.putExtras(extras);
+        }
+        try {
+            ImplicitIntentsUtil.startActivityInApp(PeopleActivity.this, intent);
+        } catch (ActivityNotFoundException ex) {
+            Toast.makeText(PeopleActivity.this, R.string.missing_app,
+                    Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    /**
+     * Returns the tab position adjusted for the text direction.
+     */
+    private int getTabPositionForTextDirection(int position) {
+        if (isRTL()) {
+            return TabState.COUNT - 1 - position;
+        }
+        return position;
+    }
+
+    private void setFilterAndUpdateTitle(ContactListFilter filter) {
+        setFilterAndUpdateTitle(filter, true);
+    }
+
+    private void setFilterAndUpdateTitle(ContactListFilter filter, boolean restoreSelectedUri) {
+        mAllFragment.setFilter(filter, restoreSelectedUri);
+
+        mAllFragment.setListType(mContactListFilterController.getFilterListType());
+
+        updateFilterMenu(filter);
+
+        if (getSupportActionBar() != null) {
+            String actionBarTitle;
+            if (filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS) {
+                actionBarTitle = getString(R.string.account_phone);
+            } else if (!TextUtils.isEmpty(filter.accountName)) {
+                actionBarTitle = getActionBarTitleForAccount(filter);
+            } else {
+                actionBarTitle = getString(R.string.contactsList);
+            }
+            getSupportActionBar().setTitle(actionBarTitle);
+            if (CompatUtils.isNCompatible()) {
+                this.setTitle(actionBarTitle);
+                getWindow().getDecorView()
+                        .sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
+            }
+        }
+    }
+
+    private String getActionBarTitleForAccount(ContactListFilter filter) {
+        if (GoogleAccountType.ACCOUNT_TYPE.equals(filter.accountType)) {
+            return getString(R.string.title_from_google);
+        }
+        return getString(R.string.title_from_other_accounts, filter.accountName);
+    }
+
+    // Persist filter only when it's of the type FILTER_TYPE_ALL_ACCOUNTS.
+    private void persistFilterIfNeeded(ContactListFilter filter) {
+        mContactListFilterController.setContactListFilter(filter,
+                /* persistent */ isAllContactsFilter(filter));
+    }
+
+    private boolean isAllContactsFilter(ContactListFilter filter) {
+        return filter != null && filter.isContactsFilterType();
+    }
+
+    private boolean isDeviceContactsFilter(ContactListFilter filter) {
+        return filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS;
+    }
+
+    @Override
+    protected boolean shouldFinish() {
+        return false;
+    }
+
+    @Override
+    protected ContactListFilter getContactListFilter() {
+        return mContactListFilterController.getFilter();
+    }
+
+    @Override
+    public void onLoadFinishedCallback() {
+        maybeShowHamburgerFeatureHighlight();
+    }
+}
diff --git a/src/com/android/contacts/activities/ShowOrCreateActivity.java b/src/com/android/contacts/activities/ShowOrCreateActivity.java
new file mode 100755
index 0000000..6a516ad
--- /dev/null
+++ b/src/com/android/contacts/activities/ShowOrCreateActivity.java
@@ -0,0 +1,264 @@
+/*
+ * 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.activities;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.ComponentName;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Intents;
+import android.provider.ContactsContract.PhoneLookup;
+import android.provider.ContactsContract.RawContacts;
+import android.telecom.PhoneAccount;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.ContactsActivity;
+import com.android.contacts.R;
+import com.android.contacts.common.activity.RequestPermissionsActivity;
+import com.android.contacts.common.util.ImplicitIntentsUtil;
+import com.android.contacts.util.NotifyingAsyncQueryHandler;
+
+/**
+ * Handle several edge cases around showing or possibly creating contacts in
+ * connected with a specific E-mail address or phone number. Will search based
+ * on incoming {@link Intent#getData()} as described by
+ * {@link Intents#SHOW_OR_CREATE_CONTACT}.
+ * <ul>
+ * <li>If no matching contacts found, will prompt user with dialog to add to a
+ * contact, then will use {@link Intent#ACTION_INSERT_OR_EDIT} to let create new
+ * contact or edit new data into an existing one.
+ * <li>If one matching contact found, directly show {@link Intent#ACTION_VIEW}
+ * that specific contact.
+ * <li>If more than one matching found, show list of matching contacts using
+ * {@link Intent#ACTION_SEARCH}.
+ * </ul>
+ */
+public final class ShowOrCreateActivity extends ContactsActivity
+        implements NotifyingAsyncQueryHandler.AsyncQueryListener {
+    static final String TAG = "ShowOrCreateActivity";
+    static final boolean LOGD = false;
+
+    static final String[] PHONES_PROJECTION = new String[] {
+        PhoneLookup._ID,
+        PhoneLookup.LOOKUP_KEY,
+    };
+
+    static final String[] CONTACTS_PROJECTION = new String[] {
+        Email.CONTACT_ID,
+        Email.LOOKUP_KEY,
+    };
+
+    static final int CONTACT_ID_INDEX = 0;
+    static final int LOOKUP_KEY_INDEX = 1;
+
+    static final int CREATE_CONTACT_DIALOG = 1;
+
+    static final int QUERY_TOKEN = 42;
+
+    private NotifyingAsyncQueryHandler mQueryHandler;
+
+    private Bundle mCreateExtras;
+    private String mCreateDescrip;
+    private boolean mCreateForce;
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        if (RequestPermissionsActivity.startPermissionActivity(this)) {
+            return;
+        }
+
+        // Create handler if doesn't exist, otherwise cancel any running
+        if (mQueryHandler == null) {
+            mQueryHandler = new NotifyingAsyncQueryHandler(this, this);
+        } else {
+            mQueryHandler.cancelOperation(QUERY_TOKEN);
+        }
+
+        final Intent intent = getIntent();
+        final Uri data = intent.getData();
+
+        // Unpack scheme and target data from intent
+        String scheme = null;
+        String ssp = null;
+        if (data != null) {
+            scheme = data.getScheme();
+            ssp = data.getSchemeSpecificPart();
+        }
+
+        // Build set of extras for possible use when creating contact
+        mCreateExtras = new Bundle();
+        Bundle originalExtras = intent.getExtras();
+        if (originalExtras != null) {
+            mCreateExtras.putAll(originalExtras);
+        }
+
+        // Read possible extra with specific title
+        mCreateDescrip = intent.getStringExtra(Intents.EXTRA_CREATE_DESCRIPTION);
+        if (mCreateDescrip == null) {
+            mCreateDescrip = ssp;
+        }
+
+        // Allow caller to bypass dialog prompt
+        mCreateForce = intent.getBooleanExtra(Intents.EXTRA_FORCE_CREATE, false);
+
+        // Handle specific query request
+        if (ContactsUtils.SCHEME_MAILTO.equals(scheme)) {
+            mCreateExtras.putString(Intents.Insert.EMAIL, ssp);
+
+            Uri uri = Uri.withAppendedPath(Email.CONTENT_FILTER_URI, Uri.encode(ssp));
+            mQueryHandler.startQuery(QUERY_TOKEN, null, uri, CONTACTS_PROJECTION, null, null, null);
+
+        } else if (PhoneAccount.SCHEME_TEL.equals(scheme)) {
+            mCreateExtras.putString(Intents.Insert.PHONE, ssp);
+
+            Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, ssp);
+            mQueryHandler.startQuery(QUERY_TOKEN, null, uri, PHONES_PROJECTION, null, null, null);
+
+        } else {
+            Log.w(TAG, "Invalid intent:" + getIntent());
+            finish();
+        }
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        if (mQueryHandler != null) {
+            mQueryHandler.cancelOperation(QUERY_TOKEN);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void onQueryComplete(int token, Object cookie, Cursor cursor) {
+        if (cursor == null) {
+            // Bail when problem running query in background
+            finish();
+            return;
+        }
+
+        // Count contacts found by query
+        int count = 0;
+        long contactId = -1;
+        String lookupKey = null;
+        try {
+            count = cursor.getCount();
+            if (count == 1 && cursor.moveToFirst()) {
+                // Try reading ID if only one contact returned
+                contactId = cursor.getLong(CONTACT_ID_INDEX);
+                lookupKey = cursor.getString(LOOKUP_KEY_INDEX);
+            }
+        } finally {
+            cursor.close();
+        }
+
+        if (count == 1 && contactId != -1 && !TextUtils.isEmpty(lookupKey)) {
+            // If we only found one item, jump right to viewing it
+            final Uri contactUri = Contacts.getLookupUri(contactId, lookupKey);
+            final Intent viewIntent = new Intent(Intent.ACTION_VIEW, contactUri);
+            ImplicitIntentsUtil.startActivityInApp(this, viewIntent);
+            finish();
+
+        } else if (count > 1) {
+            // If more than one, show pick list
+            Intent listIntent = new Intent(Intent.ACTION_SEARCH);
+            listIntent.setComponent(new ComponentName(this, PeopleActivity.class));
+            listIntent.putExtras(mCreateExtras);
+            startActivity(listIntent);
+            finish();
+
+        } else {
+            // No matching contacts found
+            if (mCreateForce) {
+                // Forced to create new contact
+                Intent createIntent = new Intent(Intent.ACTION_INSERT, RawContacts.CONTENT_URI);
+                createIntent.putExtras(mCreateExtras);
+                createIntent.setType(RawContacts.CONTENT_TYPE);
+
+                ImplicitIntentsUtil.startActivityInApp(this, createIntent);
+                finish();
+
+            } else {
+                showDialog(CREATE_CONTACT_DIALOG);
+            }
+        }
+    }
+
+    @Override
+    protected Dialog onCreateDialog(int id) {
+        switch(id) {
+	    case CREATE_CONTACT_DIALOG:
+                // Prompt user to insert or edit contact
+                final Intent createIntent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
+                createIntent.putExtras(mCreateExtras);
+                createIntent.setType(RawContacts.CONTENT_ITEM_TYPE);
+
+                final CharSequence message = getResources().getString(
+                        R.string.add_contact_dlg_message_fmt, mCreateDescrip);
+
+                return new AlertDialog.Builder(this)
+                        .setMessage(message)
+                        .setPositiveButton(android.R.string.ok,
+                                new IntentClickListener(this, createIntent))
+                        .setNegativeButton(android.R.string.cancel,
+                                new IntentClickListener(this, null))
+                        .setOnCancelListener(new DialogInterface.OnCancelListener() {
+                                @Override
+                                public void onCancel(DialogInterface dialog) {
+                                    finish(); // Close the activity.
+                                }})
+                        .create();
+        }
+	return super.onCreateDialog(id);
+    }
+
+    /**
+     * Listener for {@link DialogInterface} that launches a given {@link Intent}
+     * when clicked. When clicked, this also closes the parent using
+     * {@link Activity#finish()}.
+     */
+    private static class IntentClickListener implements DialogInterface.OnClickListener {
+        private Activity mParent;
+        private Intent mIntent;
+
+        /**
+         * @param parent {@link Activity} to use for launching target.
+         * @param intent Target {@link Intent} to launch when clicked.
+         */
+        public IntentClickListener(Activity parent, Intent intent) {
+            mParent = parent;
+            mIntent = intent;
+        }
+
+        public void onClick(DialogInterface dialog, int which) {
+            if (mIntent != null) {
+                ImplicitIntentsUtil.startActivityInApp(mParent, mIntent);
+            }
+            mParent.finish();
+        }
+    }
+}
diff --git a/src/com/android/contacts/compat/AggregationSuggestionsCompat.java b/src/com/android/contacts/compat/AggregationSuggestionsCompat.java
new file mode 100644
index 0000000..aa15f70
--- /dev/null
+++ b/src/com/android/contacts/compat/AggregationSuggestionsCompat.java
@@ -0,0 +1,98 @@
+/*
+ * 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 java.util.ArrayList;
+
+/**
+ * This class contains Builder class extracted from ContactsContract, and it became visible in API
+ * level 23. We need maintain this class and keep it synced with ContactsContract.
+ */
+public class AggregationSuggestionsCompat {
+
+    /**
+     * Used to specify what kind of data is supplied for the suggestion query.
+     */
+    public static final String PARAMETER_MATCH_NAME = "name";
+
+    /**
+     * A convenience builder for aggregation suggestion content URIs.
+     */
+    public static final class Builder {
+        private long mContactId;
+        private final ArrayList<String> mValues = new ArrayList<String>();
+        private int mLimit;
+
+        /**
+         * Optional existing contact ID.  If it is not provided, the search
+         * will be based exclusively on the values supplied with {@link #addNameParameter}.
+         *
+         * @param contactId contact to find aggregation suggestions for
+         * @return This Builder object to allow for chaining of calls to builder methods
+         */
+        public Builder setContactId(long contactId) {
+            this.mContactId = contactId;
+            return this;
+        }
+
+        /**
+         * Add a name to be used when searching for aggregation suggestions.
+         *
+         * @param name name to find aggregation suggestions for
+         * @return This Builder object to allow for chaining of calls to builder methods
+         */
+        public Builder addNameParameter(String name) {
+            mValues.add(name);
+            return this;
+        }
+
+        /**
+         * Sets the Maximum number of suggested aggregations that should be returned.
+         * @param limit The maximum number of suggested aggregations
+         *
+         * @return This Builder object to allow for chaining of calls to builder methods
+         */
+        public Builder setLimit(int limit) {
+            mLimit = limit;
+            return this;
+        }
+
+        /**
+         * Combine all of the options that have been set and return a new {@link Uri}
+         * object for fetching aggregation suggestions.
+         */
+        public Uri build() {
+            android.net.Uri.Builder builder = ContactsContract.Contacts.CONTENT_URI.buildUpon();
+            builder.appendEncodedPath(String.valueOf(mContactId));
+            builder.appendPath(ContactsContract.Contacts.AggregationSuggestions.CONTENT_DIRECTORY);
+            if (mLimit != 0) {
+                builder.appendQueryParameter("limit", String.valueOf(mLimit));
+            }
+
+            int count = mValues.size();
+            for (int i = 0; i < count; i++) {
+                builder.appendQueryParameter("query", PARAMETER_MATCH_NAME
+                        + ":" + mValues.get(i));
+            }
+
+            return builder.build();
+        }
+    }
+}
diff --git a/src/com/android/contacts/compat/EdgeEffectCompat.java b/src/com/android/contacts/compat/EdgeEffectCompat.java
new file mode 100644
index 0000000..92999a0
--- /dev/null
+++ b/src/com/android/contacts/compat/EdgeEffectCompat.java
@@ -0,0 +1,39 @@
+/*
+ * 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.widget.EdgeEffect;
+import com.android.contacts.common.compat.CompatUtils;
+
+/**
+ * Compatibility class for {@link android.widget.EdgeEffect}
+ * The android.support.v4.widget.EdgeEffectCompat doesn't support customized color, so we write
+ * our own and keep using EdgeEffect to customize color.
+ */
+public class EdgeEffectCompat {
+    /**
+     * Compatibility method for {@link EdgeEffect#onPull(float, float)}, which is only available
+     * on Lollipop+.
+     */
+    public static void onPull(EdgeEffect edgeEffect, float deltaDistance, float displacement) {
+        if (CompatUtils.isLollipopCompatible()) {
+            edgeEffect.onPull(deltaDistance, displacement);
+        } else {
+            edgeEffect.onPull(deltaDistance);
+        }
+    }
+}
diff --git a/src/com/android/contacts/compat/PinnedPositionsCompat.java b/src/com/android/contacts/compat/PinnedPositionsCompat.java
new file mode 100644
index 0000000..044ef20
--- /dev/null
+++ b/src/com/android/contacts/compat/PinnedPositionsCompat.java
@@ -0,0 +1,56 @@
+/*
+ * 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.provider.ContactsContract;
+import android.provider.ContactsContract.PinnedPositions;
+
+import com.android.contacts.common.compat.CompatUtils;
+
+/**
+ * Compatibility class for {@link android.provider.ContactsContract.PinnedPositions}
+ */
+public class PinnedPositionsCompat {
+    /**
+     * Not instantiable.
+     */
+    private PinnedPositionsCompat() {
+    }
+
+    /**
+     * copied from android.provider.ContactsContract.PinnedPositions#UNDEMOTE_METHOD
+     */
+    private static final String UNDEMOTE_METHOD = "undemote";
+
+    /**
+     * Compatibility method for {@link android.provider.ContactsContract.PinnedPositions#undemote}
+     */
+    public static void undemote(ContentResolver contentResolver, long contactId) {
+        if (contentResolver == null) {
+            return;
+        }
+        if (CompatUtils.isLollipopCompatible()) {
+            PinnedPositions.undemote(contentResolver, contactId);
+        } else {
+            // copied from android.provider.ContactsContract.PinnedPositions.undemote()
+            contentResolver.call(ContactsContract.AUTHORITY_URI, UNDEMOTE_METHOD,
+                    String.valueOf(contactId), null);
+        }
+    }
+
+}
diff --git a/src/com/android/contacts/datepicker/DatePicker.java b/src/com/android/contacts/datepicker/DatePicker.java
new file mode 100644
index 0000000..c6708a1
--- /dev/null
+++ b/src/com/android/contacts/datepicker/DatePicker.java
@@ -0,0 +1,438 @@
+/*
+ * 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.datepicker;
+
+import android.animation.LayoutTransition;
+import android.content.Context;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.text.format.DateFormat;
+import android.util.AttributeSet;
+import android.util.SparseArray;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.NumberPicker;
+import android.widget.NumberPicker.OnValueChangeListener;
+
+import com.android.contacts.R;
+
+import java.text.DateFormatSymbols;
+import java.util.Calendar;
+import java.util.Locale;
+
+/**
+ * This is a fork of the standard Android DatePicker that additionally allows toggling the year
+ * on/off.
+ *
+ * A view for selecting a month / year / day based on a calendar like layout.
+ *
+ * <p>See the <a href="{@docRoot}resources/tutorials/views/hello-datepicker.html">Date Picker
+ * tutorial</a>.</p>
+ *
+ * For a dialog using this view, see {@link android.app.DatePickerDialog}.
+ */
+public class DatePicker extends FrameLayout {
+    /** Magic year that represents "no year" */
+    public static int NO_YEAR = 0;
+
+    private static final int DEFAULT_START_YEAR = 1900;
+    private static final int DEFAULT_END_YEAR = 2100;
+    private static final TwoDigitFormatter sTwoDigitFormatter = new TwoDigitFormatter();
+
+    /* UI Components */
+    private final LinearLayout mPickerContainer;
+    private final CheckBox mYearToggle;
+    private final NumberPicker mDayPicker;
+    private final NumberPicker mMonthPicker;
+    private final NumberPicker mYearPicker;
+
+    /**
+     * How we notify users the date has changed.
+     */
+    private OnDateChangedListener mOnDateChangedListener;
+
+    private int mDay;
+    private int mMonth;
+    private int mYear;
+    private boolean mYearOptional;
+    private boolean mHasYear;
+
+    /**
+     * The callback used to indicate the user changes the date.
+     */
+    public interface OnDateChangedListener {
+
+        /**
+         * @param view The view associated with this listener.
+         * @param year The year that was set or {@link DatePicker#NO_YEAR} if no year was set
+         * @param monthOfYear The month that was set (0-11) for compatibility
+         *  with {@link java.util.Calendar}.
+         * @param dayOfMonth The day of the month that was set.
+         */
+        void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth);
+    }
+
+    public DatePicker(Context context) {
+        this(context, null);
+    }
+
+    public DatePicker(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public DatePicker(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+
+        LayoutInflater inflater = (LayoutInflater) context.getSystemService(
+                Context.LAYOUT_INFLATER_SERVICE);
+        inflater.inflate(R.layout.date_picker, this, true);
+
+        mPickerContainer = (LinearLayout) findViewById(R.id.parent);
+        mDayPicker = (NumberPicker) findViewById(R.id.day);
+        mDayPicker.setFormatter(sTwoDigitFormatter);
+        mDayPicker.setOnLongPressUpdateInterval(100);
+        mDayPicker.setOnValueChangedListener(new OnValueChangeListener() {
+            @Override
+            public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
+                mDay = newVal;
+                notifyDateChanged();
+            }
+        });
+        mMonthPicker = (NumberPicker) findViewById(R.id.month);
+        mMonthPicker.setFormatter(sTwoDigitFormatter);
+        DateFormatSymbols dfs = new DateFormatSymbols();
+        String[] months = dfs.getShortMonths();
+
+        /*
+         * If the user is in a locale where the month names are numeric,
+         * use just the number instead of the "month" character for
+         * consistency with the other fields.
+         */
+        if (months[0].startsWith("1")) {
+            for (int i = 0; i < months.length; i++) {
+                months[i] = String.valueOf(i + 1);
+            }
+            mMonthPicker.setMinValue(1);
+            mMonthPicker.setMaxValue(12);
+        } else {
+            mMonthPicker.setMinValue(1);
+            mMonthPicker.setMaxValue(12);
+            mMonthPicker.setDisplayedValues(months);
+        }
+
+        mMonthPicker.setOnLongPressUpdateInterval(200);
+        mMonthPicker.setOnValueChangedListener(new OnValueChangeListener() {
+            @Override
+            public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
+
+                /* We display the month 1-12 but store it 0-11 so always
+                 * subtract by one to ensure our internal state is always 0-11
+                 */
+                mMonth = newVal - 1;
+                // Adjust max day of the month
+                adjustMaxDay();
+                notifyDateChanged();
+                updateDaySpinner();
+            }
+        });
+        mYearPicker = (NumberPicker) findViewById(R.id.year);
+        mYearPicker.setOnLongPressUpdateInterval(100);
+        mYearPicker.setOnValueChangedListener(new OnValueChangeListener() {
+            @Override
+            public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
+                mYear = newVal;
+                // Adjust max day for leap years if needed
+                adjustMaxDay();
+                notifyDateChanged();
+                updateDaySpinner();
+            }
+        });
+        mYearPicker.setMinValue(DEFAULT_START_YEAR);
+        mYearPicker.setMaxValue(DEFAULT_END_YEAR);
+
+        mYearToggle = (CheckBox) findViewById(R.id.yearToggle);
+        mYearToggle.setOnCheckedChangeListener(new OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                mHasYear = isChecked;
+                adjustMaxDay();
+                notifyDateChanged();
+                updateSpinners();
+            }
+        });
+
+        // initialize to current date
+        Calendar cal = Calendar.getInstance();
+        init(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), null);
+
+        // re-order the number pickers to match the current date format
+        reorderPickers();
+
+        mPickerContainer.setLayoutTransition(new LayoutTransition());
+        if (!isEnabled()) {
+            setEnabled(false);
+        }
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        super.setEnabled(enabled);
+        mDayPicker.setEnabled(enabled);
+        mMonthPicker.setEnabled(enabled);
+        mYearPicker.setEnabled(enabled);
+    }
+
+    private void reorderPickers() {
+        // We use numeric spinners for year and day, but textual months. Ask icu4c what
+        // order the user's locale uses for that combination. http://b/7207103.
+        String skeleton = mHasYear ? "yyyyMMMdd" : "MMMdd";
+        String pattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), skeleton);
+        char[] order = ICU.getDateFormatOrder(pattern);
+
+        /* Remove the 3 pickers from their parent and then add them back in the
+         * required order.
+         */
+        mPickerContainer.removeAllViews();
+        for (char field : order) {
+            if (field == 'd') {
+                mPickerContainer.addView(mDayPicker);
+            } else if (field == 'M') {
+                mPickerContainer.addView(mMonthPicker);
+            } else {
+                // Either 'y' or '\u0000' depending on whether we're showing a year.
+                // If we're not showing a year, it doesn't matter where we put it,
+                // but the rest of this class assumes that it will be present (but GONE).
+                mPickerContainer.addView(mYearPicker);
+            }
+        }
+    }
+
+    public void updateDate(int year, int monthOfYear, int dayOfMonth) {
+        if (mYear != year || mMonth != monthOfYear || mDay != dayOfMonth) {
+            mYear = (mYearOptional && year == NO_YEAR) ? getCurrentYear() : year;
+            mMonth = monthOfYear;
+            mDay = dayOfMonth;
+            updateSpinners();
+            reorderPickers();
+            notifyDateChanged();
+        }
+    }
+
+    private int getCurrentYear() {
+        return Calendar.getInstance().get(Calendar.YEAR);
+    }
+
+    private static class SavedState extends BaseSavedState {
+
+        private final int mYear;
+        private final int mMonth;
+        private final int mDay;
+        private final boolean mHasYear;
+        private final boolean mYearOptional;
+
+        /**
+         * Constructor called from {@link DatePicker#onSaveInstanceState()}
+         */
+        private SavedState(Parcelable superState, int year, int month, int day, boolean hasYear,
+                boolean yearOptional) {
+            super(superState);
+            mYear = year;
+            mMonth = month;
+            mDay = day;
+            mHasYear = hasYear;
+            mYearOptional = yearOptional;
+        }
+
+        /**
+         * Constructor called from {@link #CREATOR}
+         */
+        private SavedState(Parcel in) {
+            super(in);
+            mYear = in.readInt();
+            mMonth = in.readInt();
+            mDay = in.readInt();
+            mHasYear = in.readInt() != 0;
+            mYearOptional = in.readInt() != 0;
+        }
+
+        public int getYear() {
+            return mYear;
+        }
+
+        public int getMonth() {
+            return mMonth;
+        }
+
+        public int getDay() {
+            return mDay;
+        }
+
+        public boolean hasYear() {
+            return mHasYear;
+        }
+
+        public boolean isYearOptional() {
+            return mYearOptional;
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            super.writeToParcel(dest, flags);
+            dest.writeInt(mYear);
+            dest.writeInt(mMonth);
+            dest.writeInt(mDay);
+            dest.writeInt(mHasYear ? 1 : 0);
+            dest.writeInt(mYearOptional ? 1 : 0);
+        }
+
+        @SuppressWarnings("unused")
+        public static final Parcelable.Creator<SavedState> CREATOR =
+                new Creator<SavedState>() {
+
+                    @Override
+                    public SavedState createFromParcel(Parcel in) {
+                        return new SavedState(in);
+                    }
+
+                    @Override
+                    public SavedState[] newArray(int size) {
+                        return new SavedState[size];
+                    }
+                };
+    }
+
+
+    /**
+     * Override so we are in complete control of save / restore for this widget.
+     */
+    @Override
+    protected void dispatchRestoreInstanceState(SparseArray<Parcelable> container) {
+        dispatchThawSelfOnly(container);
+    }
+
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        Parcelable superState = super.onSaveInstanceState();
+
+        return new SavedState(superState, mYear, mMonth, mDay, mHasYear, mYearOptional);
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Parcelable state) {
+        SavedState ss = (SavedState) state;
+        super.onRestoreInstanceState(ss.getSuperState());
+        mYear = ss.getYear();
+        mMonth = ss.getMonth();
+        mDay = ss.getDay();
+        mHasYear = ss.hasYear();
+        mYearOptional = ss.isYearOptional();
+        updateSpinners();
+    }
+
+    /**
+     * Initialize the state.
+     * @param year The initial year.
+     * @param monthOfYear The initial month.
+     * @param dayOfMonth The initial day of the month.
+     * @param onDateChangedListener How user is notified date is changed by user, can be null.
+     */
+    public void init(int year, int monthOfYear, int dayOfMonth,
+            OnDateChangedListener onDateChangedListener) {
+        init(year, monthOfYear, dayOfMonth, false, onDateChangedListener);
+    }
+
+    /**
+     * Initialize the state.
+     * @param year The initial year or {@link #NO_YEAR} if no year has been specified
+     * @param monthOfYear The initial month.
+     * @param dayOfMonth The initial day of the month.
+     * @param yearOptional True if the user can toggle the year
+     * @param onDateChangedListener How user is notified date is changed by user, can be null.
+     */
+    public void init(int year, int monthOfYear, int dayOfMonth, boolean yearOptional,
+            OnDateChangedListener onDateChangedListener) {
+        mYear = (yearOptional && year == NO_YEAR) ? getCurrentYear() : year;
+        mMonth = monthOfYear;
+        mDay = dayOfMonth;
+        mYearOptional = yearOptional;
+        mHasYear = yearOptional ? (year != NO_YEAR) : true;
+        mOnDateChangedListener = onDateChangedListener;
+        updateSpinners();
+    }
+
+    private void updateSpinners() {
+        updateDaySpinner();
+        mYearToggle.setChecked(mHasYear);
+        mYearToggle.setVisibility(mYearOptional ? View.VISIBLE : View.GONE);
+        mYearPicker.setValue(mYear);
+        mYearPicker.setVisibility(mHasYear ? View.VISIBLE : View.GONE);
+
+        /* The month display uses 1-12 but our internal state stores it
+         * 0-11 so add one when setting the display.
+         */
+        mMonthPicker.setValue(mMonth + 1);
+    }
+
+    private void updateDaySpinner() {
+        Calendar cal = Calendar.getInstance();
+        // if year was not set, use 2000 as it was a leap year
+        cal.set(mHasYear ? mYear : 2000, mMonth, 1);
+        int max = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        mDayPicker.setMinValue(1);
+        mDayPicker.setMaxValue(max);
+        mDayPicker.setValue(mDay);
+    }
+
+    public int getYear() {
+        return (mYearOptional && !mHasYear) ? NO_YEAR : mYear;
+    }
+
+    public boolean isYearOptional() {
+        return mYearOptional;
+    }
+
+    public int getMonth() {
+        return mMonth;
+    }
+
+    public int getDayOfMonth() {
+        return mDay;
+    }
+
+    private void adjustMaxDay(){
+        Calendar cal = Calendar.getInstance();
+        // if year was not set, use 2000 as it was a leap year
+        cal.set(Calendar.YEAR, mHasYear ? mYear : 2000);
+        cal.set(Calendar.MONTH, mMonth);
+        int max = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        if (mDay > max) {
+            mDay = max;
+        }
+    }
+
+    private void notifyDateChanged() {
+        if (mOnDateChangedListener != null) {
+            int year = (mYearOptional && !mHasYear) ? NO_YEAR : mYear;
+            mOnDateChangedListener.onDateChanged(DatePicker.this, year, mMonth, mDay);
+        }
+    }
+}
diff --git a/src/com/android/contacts/datepicker/DatePickerDialog.java b/src/com/android/contacts/datepicker/DatePickerDialog.java
new file mode 100644
index 0000000..1ae1e61
--- /dev/null
+++ b/src/com/android/contacts/datepicker/DatePickerDialog.java
@@ -0,0 +1,223 @@
+/*
+ * 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.datepicker;
+
+// This is a fork of the standard Android DatePicker that additionally allows toggling the year
+// on/off.
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import com.android.contacts.R;
+import com.android.contacts.common.util.DateUtils;
+import com.android.contacts.datepicker.DatePicker.OnDateChangedListener;
+
+import java.text.DateFormat;
+import java.util.Calendar;
+
+/**
+ * A simple dialog containing an {@link DatePicker}.
+ *
+ * <p>See the <a href="{@docRoot}resources/tutorials/views/hello-datepicker.html">Date Picker
+ * tutorial</a>.</p>
+ */
+public class DatePickerDialog extends AlertDialog implements OnClickListener,
+        OnDateChangedListener {
+
+    /** Magic year that represents "no year" */
+    public static int NO_YEAR = DatePicker.NO_YEAR;
+
+    private static final String YEAR = "year";
+    private static final String MONTH = "month";
+    private static final String DAY = "day";
+    private static final String YEAR_OPTIONAL = "year_optional";
+
+    private final DatePicker mDatePicker;
+    private final OnDateSetListener mCallBack;
+    private final DateFormat mTitleDateFormat;
+    private final DateFormat mTitleNoYearDateFormat;
+
+    private int mInitialYear;
+    private int mInitialMonth;
+    private int mInitialDay;
+
+    /**
+     * The callback used to indicate the user is done filling in the date.
+     */
+    public interface OnDateSetListener {
+        /**
+         * @param view The view associated with this listener.
+         * @param year The year that was set or {@link DatePickerDialog#NO_YEAR} if the user has
+         *  not specified a year
+         * @param monthOfYear The month that was set (0-11) for compatibility
+         *  with {@link java.util.Calendar}.
+         * @param dayOfMonth The day of the month that was set.
+         */
+        void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth);
+    }
+
+    /**
+     * @param context The context the dialog is to run in.
+     * @param callBack How the parent is notified that the date is set.
+     * @param year The initial year of the dialog
+     * @param monthOfYear The initial month of the dialog.
+     * @param dayOfMonth The initial day of the dialog.
+     */
+    public DatePickerDialog(Context context,
+            OnDateSetListener callBack,
+            int year,
+            int monthOfYear,
+            int dayOfMonth) {
+        this(context, callBack, year, monthOfYear, dayOfMonth, false);
+    }
+
+    /**
+     * @param context The context the dialog is to run in.
+     * @param callBack How the parent is notified that the date is set.
+     * @param year The initial year of the dialog or {@link DatePickerDialog#NO_YEAR} if no year
+     *  has been specified
+     * @param monthOfYear The initial month of the dialog.
+     * @param dayOfMonth The initial day of the dialog.
+     * @param yearOptional Whether the year can be toggled by the user
+     */
+    public DatePickerDialog(Context context,
+            OnDateSetListener callBack,
+            int year,
+            int monthOfYear,
+            int dayOfMonth,
+            boolean yearOptional) {
+        // Don't pass a theme id. Instead use the default alert dialog theme.
+        this(context, /* themeId = */ -1, callBack, year, monthOfYear, dayOfMonth,
+                yearOptional);
+    }
+
+    /**
+     * @param context The context the dialog is to run in.
+     * @param theme the theme to apply to this dialog
+     * @param callBack How the parent is notified that the date is set.
+     * @param year The initial year of the dialog or {@link DatePickerDialog#NO_YEAR} if no year
+     *  has been specified
+     * @param monthOfYear The initial month of the dialog.
+     * @param dayOfMonth The initial day of the dialog.
+     */
+    public DatePickerDialog(Context context,
+            int theme,
+            OnDateSetListener callBack,
+            int year,
+            int monthOfYear,
+            int dayOfMonth) {
+        this(context, theme, callBack, year, monthOfYear, dayOfMonth, false);
+    }
+
+    /**
+     * @param context The context the dialog is to run in.
+     * @param theme the theme to apply to this dialog
+     * @param callBack How the parent is notified that the date is set.
+     * @param year The initial year of the dialog or {@link DatePickerDialog#NO_YEAR} if no
+     *  year has been specified.
+     * @param monthOfYear The initial month of the dialog.
+     * @param dayOfMonth The initial day of the dialog.
+     * @param yearOptional Whether the year can be toggled by the user
+     */
+    public DatePickerDialog(Context context,
+            int theme,
+            OnDateSetListener callBack,
+            int year,
+            int monthOfYear,
+            int dayOfMonth,
+            boolean yearOptional) {
+        super(context, theme);
+
+        mCallBack = callBack;
+        mInitialYear = year;
+        mInitialMonth = monthOfYear;
+        mInitialDay = dayOfMonth;
+
+        mTitleDateFormat = DateFormat.getDateInstance(DateFormat.FULL);
+        mTitleNoYearDateFormat = DateUtils.getLocalizedDateFormatWithoutYear(getContext());
+        updateTitle(mInitialYear, mInitialMonth, mInitialDay);
+
+        setButton(BUTTON_POSITIVE, context.getText(R.string.date_time_set),
+                this);
+        setButton(BUTTON_NEGATIVE, context.getText(android.R.string.cancel),
+                (OnClickListener) null);
+
+        LayoutInflater inflater =
+                (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        View view = inflater.inflate(R.layout.date_picker_dialog, null);
+        setView(view);
+        mDatePicker = (DatePicker) view.findViewById(R.id.datePicker);
+        mDatePicker.init(mInitialYear, mInitialMonth, mInitialDay, yearOptional, this);
+    }
+
+    @Override
+    public void onClick(DialogInterface dialog, int which) {
+        if (mCallBack != null) {
+            mDatePicker.clearFocus();
+            mCallBack.onDateSet(mDatePicker, mDatePicker.getYear(),
+                    mDatePicker.getMonth(), mDatePicker.getDayOfMonth());
+        }
+    }
+
+    @Override
+    public void onDateChanged(DatePicker view, int year, int month, int day) {
+        updateTitle(year, month, day);
+    }
+
+    public void updateDate(int year, int monthOfYear, int dayOfMonth) {
+        mInitialYear = year;
+        mInitialMonth = monthOfYear;
+        mInitialDay = dayOfMonth;
+        mDatePicker.updateDate(year, monthOfYear, dayOfMonth);
+    }
+
+    private void updateTitle(int year, int month, int day) {
+        final Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.YEAR, year);
+        calendar.set(Calendar.MONTH, month);
+        calendar.set(Calendar.DAY_OF_MONTH, day);
+        final DateFormat dateFormat =
+                year == NO_YEAR ? mTitleNoYearDateFormat : mTitleDateFormat;
+        setTitle(dateFormat.format(calendar.getTime()));
+    }
+
+    @Override
+    public Bundle onSaveInstanceState() {
+        Bundle state = super.onSaveInstanceState();
+        state.putInt(YEAR, mDatePicker.getYear());
+        state.putInt(MONTH, mDatePicker.getMonth());
+        state.putInt(DAY, mDatePicker.getDayOfMonth());
+        state.putBoolean(YEAR_OPTIONAL, mDatePicker.isYearOptional());
+        return state;
+    }
+
+    @Override
+    public void onRestoreInstanceState(Bundle savedInstanceState) {
+        super.onRestoreInstanceState(savedInstanceState);
+        int year = savedInstanceState.getInt(YEAR);
+        int month = savedInstanceState.getInt(MONTH);
+        int day = savedInstanceState.getInt(DAY);
+        boolean yearOptional = savedInstanceState.getBoolean(YEAR_OPTIONAL);
+        mDatePicker.init(year, month, day, yearOptional, this);
+        updateTitle(year, month, day);
+    }
+}
diff --git a/src/com/android/contacts/datepicker/ICU.java b/src/com/android/contacts/datepicker/ICU.java
new file mode 100644
index 0000000..229fda6
--- /dev/null
+++ b/src/com/android/contacts/datepicker/ICU.java
@@ -0,0 +1,51 @@
+package com.android.contacts.datepicker;
+
+public class ICU {
+
+    /**
+     * This method is directly copied from {@link libcore.icu.ICU}. The method is simple enough
+     * that it probably won't change.
+     */
+    public static char[] getDateFormatOrder(String pattern) {
+        char[] result = new char[3];
+        int resultIndex = 0;
+        boolean sawDay = false;
+        boolean sawMonth = false;
+        boolean sawYear = false;
+
+        for (int i = 0; i < pattern.length(); ++i) {
+            char ch = pattern.charAt(i);
+            if (ch == 'd' || ch == 'L' || ch == 'M' || ch == 'y') {
+                if (ch == 'd' && !sawDay) {
+                    result[resultIndex++] = 'd';
+                    sawDay = true;
+                } else if ((ch == 'L' || ch == 'M') && !sawMonth) {
+                    result[resultIndex++] = 'M';
+                    sawMonth = true;
+                } else if ((ch == 'y') && !sawYear) {
+                    result[resultIndex++] = 'y';
+                    sawYear = true;
+                }
+            } else if (ch == 'G') {
+                // Ignore the era specifier, if present.
+            } else if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
+                throw new IllegalArgumentException("Bad pattern character '"
+                        + ch + "' in " + pattern);
+            } else if (ch == '\'') {
+                if (i < pattern.length() - 1 && pattern.charAt(i + 1) == '\'') {
+                    ++i;
+                } else {
+                    i = pattern.indexOf('\'', i + 1);
+                    if (i == -1) {
+                        throw new IllegalArgumentException("Bad quoting in " + pattern);
+                    }
+                    ++i;
+                }
+            } else {
+                // Ignore spaces and punctuation.
+            }
+        }
+        return result;
+    }
+
+}
diff --git a/src/com/android/contacts/datepicker/TwoDigitFormatter.java b/src/com/android/contacts/datepicker/TwoDigitFormatter.java
new file mode 100644
index 0000000..7e03f28
--- /dev/null
+++ b/src/com/android/contacts/datepicker/TwoDigitFormatter.java
@@ -0,0 +1,55 @@
+package com.android.contacts.datepicker;
+
+import android.widget.NumberPicker;
+
+import java.text.DecimalFormatSymbols;
+import java.util.Locale;
+
+/**
+ * Copy of {@link android.widget.NumberPicker.TwoDigitFormatter}, modified
+ * so that it doesn't use libcore.
+ *
+ * Use a custom NumberPicker formatting callback to use two-digit minutes
+ * strings like "01". Keeping a static formatter etc. is the most efficient
+ * way to do this; it avoids creating temporary objects on every call to
+ * format().
+ */
+public class TwoDigitFormatter implements NumberPicker.Formatter {
+    final StringBuilder mBuilder = new StringBuilder();
+
+    char mZeroDigit;
+    java.util.Formatter mFmt;
+
+    final Object[] mArgs = new Object[1];
+
+    public TwoDigitFormatter() {
+        final Locale locale = Locale.getDefault();
+        init(locale);
+    }
+
+    private void init(Locale locale) {
+        mFmt = createFormatter(locale);
+        mZeroDigit = getZeroDigit(locale);
+    }
+
+    public String format(int value) {
+        final Locale currentLocale = Locale.getDefault();
+        if (mZeroDigit != getZeroDigit(currentLocale)) {
+            init(currentLocale);
+        }
+        mArgs[0] = value;
+        mBuilder.delete(0, mBuilder.length());
+        mFmt.format("%02d", mArgs);
+        return mFmt.toString();
+    }
+
+    private static char getZeroDigit(Locale locale) {
+        // The original TwoDigitFormatter directly referenced LocaleData's value. Instead,
+        // we need to use the public DecimalFormatSymbols API.
+        return DecimalFormatSymbols.getInstance(locale).getZeroDigit();
+    }
+
+    private java.util.Formatter createFormatter(Locale locale) {
+        return new java.util.Formatter(mBuilder, locale);
+    }
+}
diff --git a/src/com/android/contacts/detail/ActionsViewContainer.java b/src/com/android/contacts/detail/ActionsViewContainer.java
new file mode 100644
index 0000000..05382eb
--- /dev/null
+++ b/src/com/android/contacts/detail/ActionsViewContainer.java
@@ -0,0 +1,54 @@
+/*
+ * 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.detail;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.ContextMenu.ContextMenuInfo;
+import android.widget.AdapterView;
+import android.widget.LinearLayout;
+import android.widget.ListView;
+
+/**
+ * Custom {@link LinearLayout} which remembers its position in the {@link ListView}. Should be
+ * used for action touch targets in {@link ContactDetailFragment}.
+ */
+/* package */ class ActionsViewContainer extends LinearLayout {
+
+    private ContextMenuInfo mContextMenuInfo;
+
+    public ActionsViewContainer(Context context) {
+        super(context);
+    }
+
+    public ActionsViewContainer(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public ActionsViewContainer(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    public void setPosition(int position) {
+        mContextMenuInfo = new AdapterView.AdapterContextMenuInfo(this, position, -1);
+    }
+
+    @Override
+    public ContextMenuInfo getContextMenuInfo() {
+        return mContextMenuInfo;
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/detail/ContactDisplayUtils.java b/src/com/android/contacts/detail/ContactDisplayUtils.java
new file mode 100644
index 0000000..85e6026
--- /dev/null
+++ b/src/com/android/contacts/detail/ContactDisplayUtils.java
@@ -0,0 +1,388 @@
+/*
+ * 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.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;
+import android.content.res.Resources;
+import android.content.res.Resources.NotFoundException;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.provider.ContactsContract.DisplayNameSources;
+import android.text.BidiFormatter;
+import android.text.Html;
+import android.text.TextDirectionHeuristics;
+import android.text.TextUtils;
+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 java.util.List;
+
+/**
+ * This class contains utility methods to bind high-level contact details
+ * (meaning name, phonetic name, job, and attribution) from a
+ * {@link Contact} data object to appropriate {@link View}s.
+ */
+public class ContactDisplayUtils {
+    private static final String TAG = "ContactDisplayUtils";
+    private static BidiFormatter sBidiFormatter = BidiFormatter.getInstance();
+
+    /**
+     * Returns the display name of the contact, using the current display order setting.
+     * Returns res/string/missing_name if there is no display name.
+     */
+    public static CharSequence getDisplayName(Context context, Contact contactData) {
+        ContactsPreferences prefs = new ContactsPreferences(context);
+        final CharSequence displayName = contactData.getDisplayName();
+        if (prefs.getDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
+            if (!TextUtils.isEmpty(displayName)) {
+                if (contactData.getDisplayNameSource() == DisplayNameSources.PHONE) {
+                    return sBidiFormatter.unicodeWrap(
+                            displayName.toString(), TextDirectionHeuristics.LTR);
+                }
+                return displayName;
+            }
+        } else {
+            final CharSequence altDisplayName = contactData.getAltDisplayName();
+            if (!TextUtils.isEmpty(altDisplayName)) {
+                return altDisplayName;
+            }
+        }
+        return context.getResources().getString(R.string.missing_name);
+    }
+
+    /**
+     * Returns the phonetic name of the contact or null if there isn't one.
+     */
+    public static String getPhoneticName(Context context, Contact contactData) {
+        String phoneticName = contactData.getPhoneticName();
+        if (!TextUtils.isEmpty(phoneticName)) {
+            return phoneticName;
+        }
+        return null;
+    }
+
+    /**
+     * Returns the attribution string for the contact, which may specify the contact directory that
+     * the contact came from. Returns null if there is none applicable.
+     */
+    public static String getAttribution(Context context, Contact contactData) {
+        if (contactData.isDirectoryEntry()) {
+            String directoryDisplayName = contactData.getDirectoryDisplayName();
+            String directoryType = contactData.getDirectoryType();
+            final String displayName;
+            if (!TextUtils.isEmpty(directoryDisplayName)) {
+                displayName = directoryDisplayName;
+            } else if (!TextUtils.isEmpty(directoryType)) {
+                displayName = directoryType;
+            } else {
+                return null;
+            }
+            return context.getString(R.string.contact_directory_description, displayName);
+        }
+        return null;
+    }
+
+    /**
+     * Returns the organization of the contact. If several organizations are given,
+     * the first one is used. Returns null if not applicable.
+     */
+    public static String getCompany(Context context, Contact contactData) {
+        final boolean displayNameIsOrganization = contactData.getDisplayNameSource()
+                == DisplayNameSources.ORGANIZATION;
+        for (RawContact rawContact : contactData.getRawContacts()) {
+            for (DataItem dataItem : Iterables.filter(
+                    rawContact.getDataItems(), OrganizationDataItem.class)) {
+                OrganizationDataItem organization = (OrganizationDataItem) dataItem;
+                final String company = organization.getCompany();
+                final String title = organization.getTitle();
+                final String combined;
+                // We need to show company and title in a combined string. However, if the
+                // DisplayName is already the organization, it mirrors company or (if company
+                // is empty title). Make sure we don't show what's already shown as DisplayName
+                if (TextUtils.isEmpty(company)) {
+                    combined = displayNameIsOrganization ? null : title;
+                } else {
+                    if (TextUtils.isEmpty(title)) {
+                        combined = displayNameIsOrganization ? null : company;
+                    } else {
+                        if (displayNameIsOrganization) {
+                            combined = title;
+                        } else {
+                            combined = context.getString(
+                                    R.string.organization_company_and_title,
+                                    company, title);
+                        }
+                    }
+                }
+
+                if (!TextUtils.isEmpty(combined)) {
+                    return combined;
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 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;
+            starredMenuItem.setIcon(resId);
+            starredMenuItem.setChecked(isStarred);
+            starredMenuItem.setTitle(isStarred ? R.string.menu_removeStar : R.string.menu_addStar);
+        } else {
+            starredMenuItem.setVisible(false);
+        }
+    }
+
+    /**
+     * Sets the display name of this contact to the given {@link TextView}. If
+     * there is none, then set the view to gone.
+     */
+    public static void setDisplayName(Context context, Contact contactData, TextView textView) {
+        if (textView == null) {
+            return;
+        }
+        setDataOrHideIfNone(getDisplayName(context, contactData), textView);
+    }
+
+    /**
+     * Sets the company and job title of this contact to the given {@link TextView}. If
+     * there is none, then set the view to gone.
+     */
+    public static void setCompanyName(Context context, Contact contactData, TextView textView) {
+        if (textView == null) {
+            return;
+        }
+        setDataOrHideIfNone(getCompany(context, contactData), textView);
+    }
+
+    /**
+     * Sets the phonetic name of this contact to the given {@link TextView}. If
+     * there is none, then set the view to gone.
+     */
+    public static void setPhoneticName(Context context, Contact contactData, TextView textView) {
+        if (textView == null) {
+            return;
+        }
+        setDataOrHideIfNone(getPhoneticName(context, contactData), textView);
+    }
+
+    /**
+     * Sets the attribution contact to the given {@link TextView}. If
+     * there is none, then set the view to gone.
+     */
+    public static void setAttribution(Context context, Contact contactData, TextView textView) {
+        if (textView == null) {
+            return;
+        }
+        setDataOrHideIfNone(getAttribution(context, contactData), textView);
+    }
+
+    /**
+     * Helper function to display the given text in the {@link TextView} or
+     * hides the {@link TextView} if the text is empty or null.
+     */
+    private static void setDataOrHideIfNone(CharSequence textToDisplay, TextView textView) {
+        if (!TextUtils.isEmpty(textToDisplay)) {
+            textView.setText(textToDisplay);
+            textView.setVisibility(View.VISIBLE);
+        } else {
+            textView.setText(null);
+            textView.setVisibility(View.GONE);
+        }
+    }
+
+    private static Html.ImageGetter sImageGetter;
+
+    public static Html.ImageGetter getImageGetter(Context context) {
+        if (sImageGetter == null) {
+            sImageGetter = new DefaultImageGetter(context.getPackageManager());
+        }
+        return sImageGetter;
+    }
+
+    /** Fetcher for images from resources to be included in HTML text. */
+    private static class DefaultImageGetter implements Html.ImageGetter {
+        /** The scheme used to load resources. */
+        private static final String RES_SCHEME = "res";
+
+        private final PackageManager mPackageManager;
+
+        public DefaultImageGetter(PackageManager packageManager) {
+            mPackageManager = packageManager;
+        }
+
+        @Override
+        public Drawable getDrawable(String source) {
+            // Returning null means that a default image will be used.
+            Uri uri;
+            try {
+                uri = Uri.parse(source);
+            } catch (Throwable e) {
+                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);
+                return null;
+            }
+            // The URI authority represents the package name.
+            String packageName = uri.getAuthority();
+
+            Resources resources = getResourcesForResourceName(packageName);
+            if (resources == null) {
+                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);
+                return null;
+            }
+
+            final String name = pathSegments.get(0);
+            final int resId = resources.getIdentifier(name, "drawable", packageName);
+
+            if (resId == 0) {
+                // Use the default image icon in this case.
+                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);
+                return null;
+            }
+        }
+
+        /** Returns the drawable associated with the given id. */
+        private Drawable getResourceDrawable(Resources resources, int resId)
+                throws NotFoundException {
+            Drawable drawable = resources.getDrawable(resId);
+            drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
+            return drawable;
+        }
+
+        /** Returns the {@link Resources} of the package of the given resource name. */
+        private Resources getResourcesForResourceName(String packageName) {
+            try {
+                return mPackageManager.getResourcesForApplication(packageName);
+            } catch (NameNotFoundException e) {
+                Log.d(TAG, "Could not find package: " + packageName);
+                return null;
+            }
+        }
+    }
+
+    /**
+     * Sets an alpha value on the view.
+     */
+    public static void setAlphaOnViewBackground(View view, float alpha) {
+        if (view != null) {
+            // Convert alpha layer to a black background HEX color with an alpha value for better
+            // performance (i.e. use setBackgroundColor() instead of setAlpha())
+            view.setBackgroundColor((int) (MoreMath.clamp(alpha, 0.0f, 1.0f) * 255) << 24);
+        }
+    }
+
+    /**
+     * Returns the top coordinate of the first item in the {@link ListView}. If the first item
+     * in the {@link ListView} is not visible or there are no children in the list, then return
+     * Integer.MIN_VALUE. Note that the returned value will be <= 0 because the first item in the
+     * list cannot have a positive offset.
+     */
+    public static int getFirstListItemOffset(ListView listView) {
+        if (listView == null || listView.getChildCount() == 0 ||
+                listView.getFirstVisiblePosition() != 0) {
+            return Integer.MIN_VALUE;
+        }
+        return listView.getChildAt(0).getTop();
+    }
+
+    /**
+     * Tries to scroll the first item in the list to the given offset (this can be a no-op if the
+     * list is already in the correct position).
+     * @param listView that should be scrolled
+     * @param offset which should be <= 0
+     */
+    public static void requestToMoveToOffset(ListView listView, int offset) {
+        // We try to offset the list if the first item in the list is showing (which is presumed
+        // to have a larger height than the desired offset). If the first item in the list is not
+        // visible, then we simply do not scroll the list at all (since it can get complicated to
+        // compute how many items in the list will equal the given offset). Potentially
+        // some animation elsewhere will make the transition smoother for the user to compensate
+        // for this simplification.
+        if (listView == null || listView.getChildCount() == 0 ||
+                listView.getFirstVisiblePosition() != 0 || offset > 0) {
+            return;
+        }
+
+        // As an optimization, check if the first item is already at the given offset.
+        if (listView.getChildAt(0).getTop() == offset) {
+            return;
+        }
+
+        listView.setSelectionFromTop(0, offset);
+    }
+}
diff --git a/src/com/android/contacts/detail/PhotoSelectionHandler.java b/src/com/android/contacts/detail/PhotoSelectionHandler.java
new file mode 100644
index 0000000..d2e5763
--- /dev/null
+++ b/src/com/android/contacts/detail/PhotoSelectionHandler.java
@@ -0,0 +1,387 @@
+/*
+ * 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.detail;
+
+import android.app.Activity;
+import android.content.ActivityNotFoundException;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.DisplayPhoto;
+import android.provider.ContactsContract.RawContacts;
+import android.provider.MediaStore;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.ListPopupWindow;
+import android.widget.PopupWindow.OnDismissListener;
+import android.widget.Toast;
+
+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.util.ContactPhotoUtils;
+import com.android.contacts.util.UiClosables;
+
+import java.io.FileNotFoundException;
+import java.util.List;
+
+/**
+ * Handles displaying a photo selection popup for a given photo view and dealing with the results
+ * that come back.
+ */
+public abstract class PhotoSelectionHandler implements OnClickListener {
+
+    private static final String TAG = PhotoSelectionHandler.class.getSimpleName();
+
+    private static final int REQUEST_CODE_CAMERA_WITH_DATA = 1001;
+    private static final int REQUEST_CODE_PHOTO_PICKED_WITH_DATA = 1002;
+    private static final int REQUEST_CROP_PHOTO = 1003;
+
+    // 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.
+    private static final int mDefaultPhotoDim = 720;
+
+    protected final Context mContext;
+    private final View mChangeAnchorView;
+    private final int mPhotoMode;
+    private final int mPhotoPickSize;
+    private final Uri mCroppedPhotoUri;
+    private final Uri mTempPhotoUri;
+    private final RawContactDeltaList mState;
+    private final boolean mIsDirectoryContact;
+    private ListPopupWindow mPopup;
+
+    public PhotoSelectionHandler(Context context, View changeAnchorView, int photoMode,
+            boolean isDirectoryContact, RawContactDeltaList state) {
+        mContext = context;
+        mChangeAnchorView = changeAnchorView;
+        mPhotoMode = photoMode;
+        mTempPhotoUri = ContactPhotoUtils.generateTempImageUri(context);
+        mCroppedPhotoUri = ContactPhotoUtils.generateTempCroppedImageUri(mContext);
+        mIsDirectoryContact = isDirectoryContact;
+        mState = state;
+        mPhotoPickSize = getPhotoPickSize();
+    }
+
+    public void destroy() {
+        UiClosables.closeQuietly(mPopup);
+    }
+
+    public abstract PhotoActionListener getListener();
+
+    @Override
+    public void onClick(View v) {
+        final PhotoActionListener listener = getListener();
+        if (listener != null) {
+            if (getWritableEntityIndex() != -1) {
+                mPopup = PhotoActionPopup.createPopupMenu(
+                        mContext, mChangeAnchorView, listener, mPhotoMode);
+                mPopup.setOnDismissListener(new OnDismissListener() {
+                    @Override
+                    public void onDismiss() {
+                        listener.onPhotoSelectionDismissed();
+                    }
+                });
+                mPopup.show();
+            }
+        }
+    }
+
+    /**
+     * Attempts to handle the given activity result.  Returns whether this handler was able to
+     * process the result successfully.
+     * @param requestCode The request code.
+     * @param resultCode The result code.
+     * @param data The intent that was returned.
+     * @return Whether the handler was able to process the result.
+     */
+    public boolean handlePhotoActivityResult(int requestCode, int resultCode, Intent data) {
+        final PhotoActionListener listener = getListener();
+        if (resultCode == Activity.RESULT_OK) {
+            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;
+                    }
+
+                    try {
+                        // delete the original temporary photo if it exists
+                        mContext.getContentResolver().delete(mTempPhotoUri, null, null);
+                        listener.onPhotoSelected(uri);
+                        return true;
+                    } catch (FileNotFoundException e) {
+                        return false;
+                    }
+                }
+
+                // Photo was successfully taken or selected from gallery, now crop it.
+                case REQUEST_CODE_PHOTO_PICKED_WITH_DATA:
+                case REQUEST_CODE_CAMERA_WITH_DATA:
+                    final Uri uri;
+                    boolean isWritable = false;
+                    if (data != null && data.getData() != null) {
+                        uri = data.getData();
+                    } else {
+                        uri = listener.getCurrentPhotoUri();
+                        isWritable = true;
+                    }
+                    final Uri toCrop;
+                    if (isWritable) {
+                        // Since this uri belongs to our file provider, we know that it is writable
+                        // by us. This means that we don't have to save it into another temporary
+                        // location just to be able to crop it.
+                        toCrop = uri;
+                    } else {
+                        toCrop = mTempPhotoUri;
+                        try {
+                            if (!ContactPhotoUtils.savePhotoFromUriToUri(mContext, uri,
+                                            toCrop, false)) {
+                                return false;
+                            }
+                        } catch (SecurityException e) {
+                            Log.d(TAG, "Did not have read-access to uri : " + uri);
+                            return false;
+                        }
+                    }
+
+                    doCropPhoto(toCrop, mCroppedPhotoUri);
+                    return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Return the index of the first entity in the contact data that belongs to a contact-writable
+     * account, or -1 if no such entity exists.
+     */
+    private int getWritableEntityIndex() {
+        // Directory entries are non-writable.
+        if (mIsDirectoryContact) return -1;
+        return mState.indexOfFirstWritableRawContact(mContext);
+    }
+
+    /**
+     * Return the raw-contact id of the first entity in the contact data that belongs to a
+     * contact-writable account, or -1 if no such entity exists.
+     */
+    protected long getWritableEntityId() {
+        int index = getWritableEntityIndex();
+        if (index == -1) return -1;
+        return mState.get(index).getValues().getId();
+    }
+
+    /**
+     * Utility method to retrieve the entity delta for attaching the given bitmap to the contact.
+     * This will attach the photo to the first contact-writable account that provided data to the
+     * contact.  It is the caller's responsibility to apply the delta.
+     * @return An entity delta list that can be applied to associate the bitmap with the contact,
+     *     or null if the photo could not be parsed or none of the accounts associated with the
+     *     contact are writable.
+     */
+    public RawContactDeltaList getDeltaForAttachingPhotoToContact() {
+        // Find the first writable entity.
+        int writableEntityIndex = getWritableEntityIndex();
+        if (writableEntityIndex != -1) {
+            // We are guaranteed to have contact data if we have a writable entity index.
+            final RawContactDelta delta = mState.get(writableEntityIndex);
+
+            // Need to find the right account so that EntityModifier knows which fields to add
+            final ContentValues entityValues = delta.getValues().getCompleteValues();
+            final String type = entityValues.getAsString(RawContacts.ACCOUNT_TYPE);
+            final String dataSet = entityValues.getAsString(RawContacts.DATA_SET);
+            final AccountType accountType = AccountTypeManager.getInstance(mContext).getAccountType(
+                        type, dataSet);
+
+            final ValuesDelta child = RawContactModifier.ensureKindExists(
+                    delta, accountType, Photo.CONTENT_ITEM_TYPE);
+            child.setFromTemplate(false);
+            child.setSuperPrimary(true);
+
+            return mState;
+        }
+        return null;
+    }
+
+    /** Used by subclasses to delegate to their enclosing Activity or Fragment. */
+    protected abstract void startPhotoActivity(Intent intent, int requestCode, Uri photoUri);
+
+    /**
+     * Sends a newly acquired photo to Gallery for cropping
+     */
+    private void doCropPhoto(Uri inputUri, Uri outputUri) {
+        final Intent intent = getCropImageIntent(inputUri, outputUri);
+        if (!hasIntentHandler(intent)) {
+            try {
+                getListener().onPhotoSelected(inputUri);
+            } catch (FileNotFoundException e) {
+                Log.e(TAG, "Cannot save uncropped photo", e);
+                Toast.makeText(mContext, R.string.contactPhotoSavedErrorToast,
+                        Toast.LENGTH_LONG).show();
+            }
+            return;
+        }
+        try {
+            // Launch gallery to crop the photo
+            startPhotoActivity(intent, REQUEST_CROP_PHOTO, inputUri);
+        } catch (Exception e) {
+            Log.e(TAG, "Cannot crop image", e);
+            Toast.makeText(mContext, R.string.photoPickerNotFoundText, Toast.LENGTH_LONG).show();
+        }
+    }
+
+    /**
+     * Should initiate an activity to take a photo using the camera.
+     * @param photoFile The file path that will be used to store the photo.  This is generally
+     *     what should be returned by
+     *     {@link PhotoSelectionHandler.PhotoActionListener#getCurrentPhotoFile()}.
+     */
+    private void startTakePhotoActivity(Uri photoUri) {
+        final Intent intent = getTakePhotoIntent(photoUri);
+        startPhotoActivity(intent, REQUEST_CODE_CAMERA_WITH_DATA, photoUri);
+    }
+
+    /**
+     * Should initiate an activity pick a photo from the gallery.
+     * @param photoFile The temporary file that the cropped image is written to before being
+     *     stored by the content-provider.
+     *     {@link PhotoSelectionHandler#handlePhotoActivityResult(int, int, Intent)}.
+     */
+    private void startPickFromGalleryActivity(Uri photoUri) {
+        final Intent intent = getPhotoPickIntent(photoUri);
+        startPhotoActivity(intent, REQUEST_CODE_PHOTO_PICKED_WITH_DATA, photoUri);
+    }
+
+    private int getPhotoPickSize() {
+        if (mPhotoDim != 0) {
+            return mPhotoDim;
+        }
+
+        // Note that this URI is safe to call on the UI thread.
+        Cursor c = mContext.getContentResolver().query(DisplayPhoto.CONTENT_MAX_DIMENSIONS_URI,
+                new String[]{DisplayPhoto.DISPLAY_MAX_DIM}, null, null, null);
+        if (c != null) {
+            try {
+                if (c.moveToFirst()) {
+                    mPhotoDim = c.getInt(0);
+                }
+            } finally {
+                c.close();
+            }
+        }
+        return mPhotoDim != 0 ? mPhotoDim : mDefaultPhotoDim;
+    }
+
+    /**
+     * Constructs an intent for capturing a photo and storing it in a temporary output uri.
+     */
+    private Intent getTakePhotoIntent(Uri outputUri) {
+        final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE, null);
+        ContactPhotoUtils.addPhotoPickerExtras(intent, outputUri);
+        return intent;
+    }
+
+    /**
+     * Constructs an intent for picking a photo from Gallery, and returning the bitmap.
+     */
+    private Intent getPhotoPickIntent(Uri outputUri) {
+        final Intent intent = new Intent(Intent.ACTION_PICK, null);
+        intent.setType("image/*");
+        ContactPhotoUtils.addPhotoPickerExtras(intent, outputUri);
+        return intent;
+    }
+
+    private boolean hasIntentHandler(Intent intent) {
+        final List<ResolveInfo> resolveInfo = mContext.getPackageManager()
+                .queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
+        return resolveInfo != null && resolveInfo.size() > 0;
+    }
+
+    /**
+     * Constructs an intent for image cropping.
+     */
+    private Intent getCropImageIntent(Uri inputUri, Uri outputUri) {
+        Intent intent = new Intent("com.android.camera.action.CROP");
+        intent.setDataAndType(inputUri, "image/*");
+        ContactPhotoUtils.addPhotoPickerExtras(intent, outputUri);
+        ContactPhotoUtils.addCropExtras(intent, mPhotoPickSize);
+        return intent;
+    }
+
+    public abstract class PhotoActionListener implements PhotoActionPopup.Listener {
+        @Override
+        public void onRemovePictureChosen() {
+            // No default implementation.
+        }
+
+        @Override
+        public void onTakePhotoChosen() {
+            try {
+                // Launch camera to take photo for selected contact
+                startTakePhotoActivity(mTempPhotoUri);
+            } catch (ActivityNotFoundException e) {
+                Toast.makeText(
+                        mContext, R.string.photoPickerNotFoundText, Toast.LENGTH_LONG).show();
+            }
+        }
+
+        @Override
+        public void onPickFromGalleryChosen() {
+            try {
+                // Launch picker to choose photo for selected contact
+                startPickFromGalleryActivity(mTempPhotoUri);
+            } catch (ActivityNotFoundException e) {
+                Toast.makeText(
+                        mContext, R.string.photoPickerNotFoundText, Toast.LENGTH_LONG).show();
+            }
+        }
+
+        /**
+         * Called when the user has completed selection of a photo.
+         * @throws FileNotFoundException
+         */
+        public abstract void onPhotoSelected(Uri uri) throws FileNotFoundException;
+
+        /**
+         * Gets the current photo file that is being interacted with.  It is the activity or
+         * fragment's responsibility to maintain this in saved state, since this handler instance
+         * will not survive rotation.
+         */
+        public abstract Uri getCurrentPhotoUri();
+
+        /**
+         * Called when the photo selection dialog is dismissed.
+         */
+        public abstract void onPhotoSelectionDismissed();
+    }
+}
diff --git a/src/com/android/contacts/editor/AccountsChangedBroadcastReceiver.java b/src/com/android/contacts/editor/AccountsChangedBroadcastReceiver.java
new file mode 100644
index 0000000..55300d5
--- /dev/null
+++ b/src/com/android/contacts/editor/AccountsChangedBroadcastReceiver.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.editor;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.contacts.R;
+import com.android.contacts.common.model.AccountTypeManager;
+import com.android.contacts.common.model.account.AccountWithDataSet;
+
+import java.util.List;
+
+/**
+ * This class is to fix the bug that no prompt is seen for multiple accounts while creating new
+ * contacts. By registering a BroadcastReceiver statically, we detect the changes of accounts by
+ * receiving the message "android.accounts.LOGIN_ACCOUNTS_CHANGED". If the BroadcastReceiver gets
+ * this message, it will get the default account from the SharedPreference and compare current
+ * accounts with the default account. At last, it will renew the default account in the
+ * SharedPreference if necessary.
+ */
+public class AccountsChangedBroadcastReceiver extends BroadcastReceiver {
+    final String TAG = "AccountsChanged";
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        Context appContext = context.getApplicationContext();
+        final ContactEditorUtils contactEditorUtils = ContactEditorUtils.getInstance(appContext);
+        final String defaultAccountKey = appContext.getResources().getString(
+                R.string.contact_editor_default_account_key);
+        final SharedPreferences pref = appContext.getSharedPreferences(
+                appContext.getPackageName(), Context.MODE_PRIVATE);
+        final String defaultAccountString = pref.getString(defaultAccountKey, null);
+
+        if (!TextUtils.isEmpty(defaultAccountString)) {
+            AccountWithDataSet defaultAccount;
+            try {
+                defaultAccount = AccountWithDataSet.unstringify(defaultAccountString);
+            } catch (IllegalArgumentException e) {
+                Log.e(TAG, "Invalid string in SharedPreference", e);
+                contactEditorUtils.saveDefaultAndAllAccounts(null);
+                return;
+            }
+
+            final AccountTypeManager accountTypeManager = AccountTypeManager.getInstance(
+                    appContext);
+            final List<AccountWithDataSet> accounts = accountTypeManager.getAccounts(true);
+            // Delete default account pref if it has been deleted.
+            if (accounts == null || accounts.size() < 1 || !accounts.contains(defaultAccount)) {
+                contactEditorUtils.saveDefaultAndAllAccounts(null);
+            }
+        }
+    }
+}
diff --git a/src/com/android/contacts/editor/AggregationSuggestionEngine.java b/src/com/android/contacts/editor/AggregationSuggestionEngine.java
new file mode 100644
index 0000000..6447ff4
--- /dev/null
+++ b/src/com/android/contacts/editor/AggregationSuggestionEngine.java
@@ -0,0 +1,496 @@
+/*
+ * 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.ContentResolver;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Build;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Message;
+import android.os.Process;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+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.Contacts;
+import android.provider.ContactsContract.Contacts.AggregationSuggestions;
+import android.provider.ContactsContract.Contacts.AggregationSuggestions.Builder;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.RawContacts;
+import android.text.TextUtils;
+
+import com.android.contacts.common.model.ValuesDelta;
+import com.android.contacts.compat.AggregationSuggestionsCompat;
+import com.google.common.collect.Lists;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 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 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]" : "");
+        }
+    }
+
+    private final class SuggestionContentObserver extends ContentObserver {
+        private SuggestionContentObserver(Handler handler) {
+            super(handler);
+        }
+
+        @Override
+        public void onChange(boolean selfChange) {
+            scheduleSuggestionLookup();
+        }
+    }
+
+    private static final int MESSAGE_RESET = 0;
+    private static final int MESSAGE_NAME_CHANGE = 1;
+    private static final int MESSAGE_DATA_CURSOR = 2;
+
+    private static final long SUGGESTION_LOOKUP_DELAY_MILLIS = 300;
+
+    private final Context mContext;
+
+    private long[] mSuggestedContactIds = new long[0];
+
+    private Handler mMainHandler;
+    private Handler mHandler;
+    private long mContactId;
+    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);
+        mContext = context.getApplicationContext();
+        mMainHandler = new Handler() {
+            @Override
+            public void handleMessage(Message msg) {
+                AggregationSuggestionEngine.this.deliverNotification((Cursor) msg.obj);
+            }
+        };
+    }
+
+    protected Handler getHandler() {
+        if (mHandler == null) {
+            mHandler = new Handler(getLooper()) {
+                @Override
+                public void handleMessage(Message msg) {
+                    AggregationSuggestionEngine.this.handleMessage(msg);
+                }
+            };
+        }
+        return mHandler;
+    }
+
+    public void setContactId(long contactId) {
+        if (contactId != mContactId) {
+            mContactId = contactId;
+            reset();
+        }
+    }
+
+    public void setSuggestionsLimit(int suggestionsLimit) {
+        mSuggestionsLimit = suggestionsLimit;
+    }
+
+    public void setPruneInvisibleContacts (boolean pruneInvisibleContacts) {
+        mPruneInvisibleContacts = pruneInvisibleContacts;
+    }
+
+    public void setListener(Listener listener) {
+        mListener = listener;
+    }
+
+    @Override
+    public boolean quit() {
+        if (mDataCursor != null) {
+            mDataCursor.close();
+        }
+        mDataCursor = null;
+        if (mContentObserver != null) {
+            mContext.getContentResolver().unregisterContentObserver(mContentObserver);
+            mContentObserver = null;
+        }
+        return super.quit();
+    }
+
+    public void reset() {
+        Handler handler = getHandler();
+        handler.removeMessages(MESSAGE_NAME_CHANGE);
+        handler.sendEmptyMessage(MESSAGE_RESET);
+    }
+
+    public void onNameChange(ValuesDelta values) {
+        mSuggestionsUri = buildAggregationSuggestionUri(values);
+        if (mSuggestionsUri != null) {
+            if (mContentObserver == null) {
+                mContentObserver = new SuggestionContentObserver(getHandler());
+                mContext.getContentResolver().registerContentObserver(
+                        Contacts.CONTENT_URI, true, mContentObserver);
+            }
+        } else if (mContentObserver != null) {
+            mContext.getContentResolver().unregisterContentObserver(mContentObserver);
+            mContentObserver = null;
+        }
+        scheduleSuggestionLookup();
+    }
+
+    protected void scheduleSuggestionLookup() {
+        Handler handler = getHandler();
+        handler.removeMessages(MESSAGE_NAME_CHANGE);
+
+        if (mSuggestionsUri == null) {
+            return;
+        }
+
+        Message msg = handler.obtainMessage(MESSAGE_NAME_CHANGE, mSuggestionsUri);
+        handler.sendMessageDelayed(msg, SUGGESTION_LOOKUP_DELAY_MILLIS);
+    }
+
+    private Uri buildAggregationSuggestionUri(ValuesDelta values) {
+        StringBuilder nameSb = new StringBuilder();
+        appendValue(nameSb, values, StructuredName.PREFIX);
+        appendValue(nameSb, values, StructuredName.GIVEN_NAME);
+        appendValue(nameSb, values, StructuredName.MIDDLE_NAME);
+        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);
+        appendValue(phoneticNameSb, values, StructuredName.PHONETIC_GIVEN_NAME);
+
+        if (nameSb.length() == 0 && phoneticNameSb.length() == 0) {
+            return null;
+        }
+
+        // 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)
+                    .setContactId(mContactId);
+            if (nameSb.length() != 0) {
+                uriBuilder.addNameParameter(nameSb.toString());
+            }
+            if (phoneticNameSb.length() != 0) {
+                uriBuilder.addNameParameter(phoneticNameSb.toString());
+            }
+            return uriBuilder.build();
+        }
+
+        // For previous SDKs, use the backup plan.
+        final AggregationSuggestionsCompat.Builder uriBuilder =
+                new AggregationSuggestionsCompat.Builder()
+                .setLimit(mSuggestionsLimit)
+                .setContactId(mContactId);
+        if (nameSb.length() != 0) {
+            uriBuilder.addNameParameter(nameSb.toString());
+        }
+        if (phoneticNameSb.length() != 0) {
+            uriBuilder.addNameParameter(phoneticNameSb.toString());
+        }
+        return uriBuilder.build();
+    }
+
+    private void appendValue(StringBuilder sb, ValuesDelta values, String column) {
+        String value = values.getAsString(column);
+        if (!TextUtils.isEmpty(value)) {
+            if (sb.length() > 0) {
+                sb.append(' ');
+            }
+            sb.append(value);
+        }
+    }
+
+    protected void handleMessage(Message msg) {
+        switch (msg.what) {
+            case MESSAGE_RESET:
+                mSuggestedContactIds = new long[0];
+                break;
+            case MESSAGE_NAME_CHANGE:
+                loadAggregationSuggestions((Uri) msg.obj);
+                break;
+        }
+    }
+
+    private static final class DataQuery {
+
+        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 (";
+
+        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
+        };
+
+        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;
+    }
+
+    private void loadAggregationSuggestions(Uri uri) {
+        ContentResolver contentResolver = mContext.getContentResolver();
+        Cursor cursor = contentResolver.query(uri, new String[]{Contacts._ID}, null, null, null);
+        if (cursor == null) {
+            return;
+        }
+        try {
+            // If a new request is pending, chuck the result of the previous request
+            if (getHandler().hasMessages(MESSAGE_NAME_CHANGE)) {
+                return;
+            }
+
+            boolean changed = updateSuggestedContactIds(cursor);
+            if (!changed) {
+                return;
+            }
+
+            StringBuilder sb = new StringBuilder(DataQuery.SELECTION_PREFIX);
+            int count = mSuggestedContactIds.length;
+            for (int i = 0; i < count; i++) {
+                if (i > 0) {
+                    sb.append(',');
+                }
+                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));
+            }
+        } finally {
+            cursor.close();
+        }
+    }
+
+    private boolean updateSuggestedContactIds(final Cursor cursor) {
+        final int count = cursor.getCount();
+        boolean changed = count != mSuggestedContactIds.length;
+        final ArrayList<Long> newIds = new ArrayList<Long>(count);
+        while (cursor.moveToNext()) {
+            final long contactId = cursor.getLong(0);
+            if (!changed &&
+                    Arrays.binarySearch(mSuggestedContactIds, contactId) < 0) {
+                changed = true;
+            }
+            newIds.add(contactId);
+        }
+
+        if (changed) {
+            mSuggestedContactIds = new long[newIds.size()];
+            int i = 0;
+            for (final Long newId : newIds) {
+                mSuggestedContactIds[i++] = newId;
+            }
+            Arrays.sort(mSuggestedContactIds);
+        }
+
+        return changed;
+    }
+
+    protected void deliverNotification(Cursor dataCursor) {
+        if (mDataCursor != null) {
+            mDataCursor.close();
+        }
+        mDataCursor = dataCursor;
+        if (mListener != null) {
+            mListener.onAggregationSuggestionChange();
+        }
+    }
+
+    public int getSuggestedContactCount() {
+        return mDataCursor != null ? mDataCursor.getCount() : 0;
+    }
+
+    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();
+            }
+
+        }
+
+        ArrayList<Suggestion> list = Lists.newArrayList();
+        if (mDataCursor != null) {
+            Suggestion suggestion = null;
+            long currentContactId = -1;
+            mDataCursor.moveToPosition(-1);
+            while (mDataCursor.moveToNext()) {
+                long contactId = mDataCursor.getLong(DataQuery.CONTACT_ID);
+                if (mPruneInvisibleContacts && !visibleContacts.contains(contactId)) {
+                    continue;
+                }
+                if (contactId != currentContactId) {
+                    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;
+                }
+
+                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);
+                if (Phone.CONTENT_ITEM_TYPE.equals(mimetype)) {
+                    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);
+                    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);
+                    if (!TextUtils.isEmpty(data)) {
+                        suggestion.nickname = 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;
+                    }
+                }
+            }
+        }
+        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
new file mode 100644
index 0000000..5a3da00
--- /dev/null
+++ b/src/com/android/contacts/editor/AggregationSuggestionView.java
@@ -0,0 +1,160 @@
+/*
+ * 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.graphics.BitmapFactory;
+import android.net.Uri;
+import android.provider.ContactsContract.Contacts;
+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.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.
+ */
+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.
+         */
+        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);
+    }
+
+    private Listener mListener;
+    private long mContactId;
+    private String mLookupKey;
+    private List<RawContact> mRawContacts = Lists.newArrayList();
+    private boolean mNewContact;
+
+    public AggregationSuggestionView(Context context) {
+        super(context);
+    }
+
+    public AggregationSuggestionView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public AggregationSuggestionView(Context context, AttributeSet attrs, int defStyle) {
+        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));
+        }
+
+        TextView name = (TextView) findViewById(R.id.aggregation_suggestion_name);
+        name.setText(suggestion.name);
+
+        TextView data = (TextView) findViewById(R.id.aggregation_suggestion_data);
+        String dataText = null;
+        if (suggestion.nickname != null) {
+            dataText = suggestion.nickname;
+        } else if (suggestion.emailAddress != null) {
+            dataText = suggestion.emailAddress;
+        } else if (suggestion.phoneNumber != null) {
+            dataText = suggestion.phoneNumber;
+            // Phone numbers should always be in LTR mode.
+            data.setTextDirection(View.TEXT_DIRECTION_LTR);
+        }
+        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);
+            }
+            return true;
+        }
+        return false;
+    }
+}
diff --git a/src/com/android/contacts/editor/BaseRawContactEditorView.java b/src/com/android/contacts/editor/BaseRawContactEditorView.java
new file mode 100644
index 0000000..e99af61
--- /dev/null
+++ b/src/com/android/contacts/editor/BaseRawContactEditorView.java
@@ -0,0 +1,217 @@
+/*
+ * 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
new file mode 100644
index 0000000..ba5f9fa
--- /dev/null
+++ b/src/com/android/contacts/editor/CancelEditDialogFragment.java
@@ -0,0 +1,72 @@
+/*
+ * 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;
+
+/**
+ * Asks the user whether to cancel editing the contact.
+ */
+public class CancelEditDialogFragment extends DialogFragment {
+
+    private static final String TAG = "cancelEditor";
+
+    /**
+     * Shows a {@link CancelEditDialogFragment} after setting the given Fragment as the
+     * target of the dialog.
+     */
+    public static void show(ContactEditorBaseFragment fragment) {
+        final CancelEditDialogFragment dialog = new CancelEditDialogFragment();
+        dialog.setTargetFragment(fragment, 0);
+        dialog.show(fragment.getFragmentManager(), TAG);
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        return new AlertDialog.Builder(getActivity())
+                .setIconAttribute(android.R.attr.alertDialogIcon)
+                .setMessage(R.string.cancel_confirmation_dialog_message)
+                .setPositiveButton(R.string.cancel_confirmation_dialog_cancel_editing_button,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialogInterface, int which) {
+                                final Listener targetListener = (Listener) getTargetFragment();
+                                targetListener.onCancelEditConfirmed();
+                            }
+                        }
+                )
+                .setNegativeButton(R.string.cancel_confirmation_dialog_keep_editing_button, null)
+                .create();
+    }
+
+    /**
+     * Callbacks for {@link CancelEditDialogFragment} hosts.
+     */
+    public interface Listener {
+
+        /**
+         * Invoked when the user confirms that they want to cancel editing the contact.
+         */
+        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
new file mode 100644
index 0000000..1d7fa46
--- /dev/null
+++ b/src/com/android/contacts/editor/CompactContactEditorFragment.java
@@ -0,0 +1,321 @@
+/*
+ * 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() {
+        final Activity activity = getActivity();
+        if (activity == null || activity.isFinishing()) {
+            return;
+        }
+        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
new file mode 100644
index 0000000..7e5ff11
--- /dev/null
+++ b/src/com/android/contacts/editor/CompactKindSectionView.java
@@ -0,0 +1,601 @@
+/*
+ * 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
new file mode 100644
index 0000000..899e22a
--- /dev/null
+++ b/src/com/android/contacts/editor/CompactPhotoEditorView.java
@@ -0,0 +1,233 @@
+/*
+ * 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
new file mode 100644
index 0000000..0a8894f
--- /dev/null
+++ b/src/com/android/contacts/editor/CompactPhotoSelectionFragment.java
@@ -0,0 +1,360 @@
+/*
+ * 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
new file mode 100644
index 0000000..ece3829
--- /dev/null
+++ b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
@@ -0,0 +1,1108 @@
+/*
+ * 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
new file mode 100644
index 0000000..d149f16
--- /dev/null
+++ b/src/com/android/contacts/editor/ContactEditorBaseFragment.java
@@ -0,0 +1,1734 @@
+/*
+ * 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 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 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.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.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 com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
+
+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 (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);
+                }
+            });
+        }
+
+        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);
+                    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.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
new file mode 100644
index 0000000..146bc4c
--- /dev/null
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -0,0 +1,655 @@
+/*
+ * 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.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+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.AdapterView;
+import android.widget.LinearLayout;
+import android.widget.ListPopupWindow;
+
+import com.android.contacts.ContactSaveService;
+import com.android.contacts.R;
+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.util.ContactPhotoUtils;
+import com.android.contacts.util.UiClosables;
+
+import java.io.FileNotFoundException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * Contact editor with all fields displayed.
+ */
+public class ContactEditorFragment extends ContactEditorBaseFragment implements
+        RawContactReadOnlyEditorView.Listener {
+
+    private static final String KEY_EXPANDED_EDITORS = "expandedEditors";
+
+    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";
+
+    // Used to store which raw contact editors have been expanded. Keyed on raw contact ids.
+    private HashMap<Long, Boolean> mExpandedEditors = new HashMap<Long, Boolean>();
+
+    /**
+     * The raw contact for which we started "take photo" or "choose photo from gallery" most
+     * recently.  Used to restore {@link #mCurrentPhotoHandler} after orientation change.
+     */
+    private long mRawContactIdRequestingPhoto;
+
+    /**
+     * 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.
+     */
+    private PhotoHandler mCurrentPhotoHandler;
+    private Uri mCurrentPhotoUri;
+    private Bundle mUpdatedPhotos = new Bundle();
+
+    public ContactEditorFragment() {
+    }
+
+    @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;
+    }
+
+    @Override
+    public void onCreate(Bundle savedState) {
+        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);
+            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);
+        }
+    }
+
+    @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) {
+            return;
+        }
+        int editorCount = mContent.getChildCount();
+        for (int i = 0; i < editorCount; i++) {
+            BaseRawContactEditorView editor = (BaseRawContactEditorView) mContent.getChildAt(i);
+            editor.setGroupMetaData(mGroupMetaData);
+        }
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            return revert();
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @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;
+        } else {
+            // Read-only and either no photo or the only photo ==> no options
+            editor.getPhotoEditor().setEditorListener(null);
+            editor.getPhotoEditor().setShowPrimary(false);
+            return;
+        }
+        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);
+
+        // 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;
+        }
+    }
+
+    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) {
+            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);
+                        }
+                    }
+                });
+                popup.show();
+            }
+        });
+    }
+
+    @Override
+    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);
+        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);
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (mStatus == Status.SUB_ACTIVITY) {
+            mStatus = Status.EDITING;
+        }
+
+        // See if the photo selection handler handles this result.
+        if (mCurrentPhotoHandler != null && mCurrentPhotoHandler.handlePhotoActivityResult(
+                requestCode, resultCode, data)) {
+            return;
+        }
+
+        super.onActivityResult(requestCode, resultCode, data);
+    }
+
+    @Override
+    protected void joinAggregate(final long contactId) {
+        final Intent intent = ContactSaveService.createJoinContactsIntent(
+                mContext, mContactIdForJoin, contactId, ContactEditorActivity.class,
+                ContactEditorActivity.ACTION_JOIN_COMPLETED);
+        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);
+    }
+
+    /**
+     * Finds raw contact editor view for the given rawContactId.
+     */
+    @Override
+    protected View getAggregationAnchorView(long rawContactId) {
+        BaseRawContactEditorView editorView = getRawContactEditorView(rawContactId);
+        return editorView == null ? null : editorView.findViewById(R.id.anchor_view);
+    }
+
+    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;
+    }
+
+    /**
+     * 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;
+                }
+            }
+        }
+        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 PhotoActionListener getListener() {
+            return mPhotoEditorListener;
+        }
+
+        @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 final class PhotoEditorListener extends PhotoSelectionHandler.PhotoActionListener
+                implements EditorListener {
+
+            @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.
+            }
+        }
+    }
+}
diff --git a/src/com/android/contacts/editor/ContactEditorUtils.java b/src/com/android/contacts/editor/ContactEditorUtils.java
new file mode 100644
index 0000000..4a06698
--- /dev/null
+++ b/src/com/android/contacts/editor/ContactEditorUtils.java
@@ -0,0 +1,304 @@
+/*
+ * 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.editor;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+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 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 ContactEditorUtils(Context context) {
+        this(context, AccountTypeManager.getInstance(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 synchronized ContactEditorUtils getInstance(Context context) {
+        if (sInstance == null) {
+            sInstance = new ContactEditorUtils(context.getApplicationContext());
+        }
+        return sInstance;
+    }
+
+    @NeededForTesting
+    void cleanupForTest() {
+        mPrefs.edit().remove(mDefaultAccountKey).remove(KEY_KNOWN_ACCOUNTS)
+                .remove(mAnythingSavedKey).apply();
+    }
+
+    @NeededForTesting
+    void removeDefaultAccountForTest() {
+        mPrefs.edit().remove(mDefaultAccountKey).apply();
+    }
+
+    /**
+     * 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}.
+     *
+     * 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".
+     */
+    @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);
+        } else {
+            editor.putString(KEY_KNOWN_ACCOUNTS,
+                    AccountWithDataSet.stringifyList(getWritableAccounts()));
+            editor.putString(mDefaultAccountKey, defaultAccount.stringify());
+        }
+        editor.apply();
+    }
+
+    /**
+     * @return the default account saved with {@link #saveDefaultAndAllAccounts}.
+     *
+     * 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".
+     *
+     * Also note that the returned account may have been removed already.
+     */
+    public AccountWithDataSet getDefaultAccount() {
+        final List<AccountWithDataSet> currentWritableAccounts = getWritableAccounts();
+        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 true if an account still exists.  {@code null} is considered "local only" here,
+     *    so it's valid too.
+     */
+    @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;
+        }
+    }
+
+    /**
+     * @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".)
+     */
+    @NeededForTesting
+    public boolean shouldShowAccountChangedNotification() {
+        final List<AccountWithDataSet> currentWritableAccounts = getWritableAccounts();
+
+        if (currentWritableAccounts.size() == 1) {
+            return false;
+        }
+
+        if (isFirstLaunch()) {
+            return true;
+        }
+
+        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.
+     *
+     * 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}.
+     *
+     * 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.
+     */
+    public AccountWithDataSet getCreatedAccount(int resultCode, Intent resultData) {
+        // Javadoc doesn't say anything about resultCode but that the data intent will be non null
+        // on success.
+        if (resultData == null) return null;
+
+        final String accountType = resultData.getStringExtra(AccountManager.KEY_ACCOUNT_TYPE);
+        final String accountName = resultData.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
+
+        // Just in case
+        if (TextUtils.isEmpty(accountType) || TextUtils.isEmpty(accountName)) return null;
+
+        return new AccountWithDataSet(accountName, accountType, null);
+    }
+}
diff --git a/src/com/android/contacts/editor/Editor.java b/src/com/android/contacts/editor/Editor.java
new file mode 100644
index 0000000..d5c8589
--- /dev/null
+++ b/src/com/android/contacts/editor/Editor.java
@@ -0,0 +1,107 @@
+/*
+ * 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.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;
+
+/**
+ * Generic definition of something that edits a {@link Data} row through an
+ * {@link ValuesDelta} object.
+ */
+public interface Editor {
+
+    public interface EditorListener {
+        /**
+         * Called when the given {@link Editor} is requested to be deleted by the user.
+         */
+        public void onDeleteRequested(Editor editor);
+
+        /**
+         * Called when the given {@link Editor} has a request, for example it
+         * wants to select a photo.
+         */
+        public void onRequest(int request);
+
+        public static final int REQUEST_PICK_PRIMARY_PHOTO = 0;
+        public static final int REQUEST_PICK_PHOTO = 1;
+        public static final int FIELD_CHANGED = 2;
+        public static final int FIELD_TURNED_EMPTY = 3;
+        public static final int FIELD_TURNED_NON_EMPTY = 4;
+
+        // The editor has switched between different representations of the same
+        // data, e.g. from full name to structured name
+        public static final int EDITOR_FORM_CHANGED = 5;
+
+        // Focus has changed inside the editor.
+        public static final int EDITOR_FOCUS_CHANGED = 6;
+    }
+
+    /**
+     * Returns whether or not all the fields are empty in this {@link Editor}.
+     */
+    public boolean isEmpty();
+
+    /**
+     * Prepares this editor for the given {@link ValuesDelta}, which
+     * builds any needed views. Any changes performed by the user will be
+     * written back to that same object.
+     */
+    public void setValues(DataKind kind, ValuesDelta values, RawContactDelta state, boolean readOnly,
+            ViewIdGenerator vig);
+
+    public void setDeletable(boolean deletable);
+
+    /**
+     * Add a specific {@link EditorListener} to this {@link Editor}.
+     */
+    public void setEditorListener(EditorListener listener);
+
+    /**
+     * Called internally when the contents of a specific field have changed,
+     * allowing advanced editors to persist data in a specific way.
+     */
+    public void onFieldChanged(String column, String value);
+
+    /**
+     * Marks the underlying ValuesDelta as deleted, but does not update the view.
+     */
+    public void markDeleted();
+
+    /**
+     * Performs the delete operation for this {@link Editor}, which involves both
+     * marking the underlying ValuesDelta as deleted and updating the view.
+     */
+    public void deleteEditor();
+
+    /**
+     * Clears all fields in this {@link Editor}.
+     */
+    public void clearAllFields();
+
+    /**
+     * Called internally when the user has added a new field.  This
+     * allows the appropriate editor UI to be presented immediately.
+     * For example, if a new "event" is added, a date-picker will
+     * immediately pop up.
+     */
+    public void editNewlyAddedField();
+
+}
diff --git a/src/com/android/contacts/editor/EditorAnimator.java b/src/com/android/contacts/editor/EditorAnimator.java
new file mode 100644
index 0000000..2e17e23
--- /dev/null
+++ b/src/com/android/contacts/editor/EditorAnimator.java
@@ -0,0 +1,280 @@
+/*
+ * 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.editor;
+
+import android.animation.Animator;
+import android.animation.Animator.AnimatorListener;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewParent;
+import android.widget.LinearLayout;
+import android.widget.ScrollView;
+
+import com.android.contacts.util.SchedulingUtils;
+import com.google.common.collect.Lists;
+
+import java.util.List;
+
+/**
+ * Configures animations for typical use-cases
+ */
+public class EditorAnimator {
+    private static EditorAnimator sInstance = new EditorAnimator();
+
+    public static  EditorAnimator getInstance() {
+        return sInstance;
+    }
+
+    /** Private constructor for singleton */
+    private EditorAnimator() { }
+
+    private AnimatorRunner mRunner = new AnimatorRunner();
+
+    public void removeEditorView(final View victim) {
+        mRunner.endOldAnimation();
+        final int offset = victim.getHeight();
+
+        final List<View> viewsToMove = getViewsBelowOf(victim);
+        final List<Animator> animators = Lists.newArrayList();
+
+        // Fade out
+        final ObjectAnimator fadeOutAnimator =
+                ObjectAnimator.ofFloat(victim, View.ALPHA, 1.0f, 0.0f);
+        fadeOutAnimator.setDuration(200);
+        animators.add(fadeOutAnimator);
+
+        // Translations
+        translateViews(animators, viewsToMove, 0.0f, -offset, 100, 200);
+
+        mRunner.run(animators, new AnimatorListenerAdapter() {
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                // Clean up: Remove all the translations
+                for (int i = 0; i < viewsToMove.size(); i++) {
+                    final View view = viewsToMove.get(i);
+                    view.setTranslationY(0.0f);
+                }
+                // Remove our target view (if parent is null, we were run several times by quick
+                // fingers. Just ignore)
+                final ViewGroup victimParent = (ViewGroup) victim.getParent();
+                if (victimParent != null) {
+                    victimParent.removeView(victim);
+                }
+            }
+        });
+    }
+
+    /**
+     * Slides the view into its new height, while simultaneously fading it into view.
+     *
+     * @param target The target view to perform the animation on.
+     * @param previousHeight The previous height of the view before its height was changed.
+     * Needed because the view does not store any state information about its previous height.
+     */
+    public void slideAndFadeIn(final ViewGroup target, final int previousHeight) {
+        mRunner.endOldAnimation();
+        target.setVisibility(View.VISIBLE);
+        target.setAlpha(0.0f);
+        SchedulingUtils.doAfterLayout(target, new Runnable() {
+            @Override
+            public void run() {
+                final int offset = target.getHeight() - previousHeight;
+                final List<Animator> animators = Lists.newArrayList();
+
+                // Translations
+                final List<View> viewsToMove = getViewsBelowOf(target);
+
+                translateViews(animators, viewsToMove, -offset, 0.0f, 0, 200);
+
+                // Fade in
+                final ObjectAnimator fadeInAnimator = ObjectAnimator.ofFloat(
+                        target, View.ALPHA, 0.0f, 1.0f);
+                fadeInAnimator.setDuration(200);
+                fadeInAnimator.setStartDelay(200);
+                animators.add(fadeInAnimator);
+
+                mRunner.run(animators);
+            }
+        });
+    }
+
+    public void showFieldFooter(final View view) {
+        mRunner.endOldAnimation();
+        if (view.getVisibility() == View.VISIBLE) return;
+        // Make the new controls visible and do one layout pass (so that we can measure)
+        view.setVisibility(View.VISIBLE);
+        view.setAlpha(0.0f);
+        SchedulingUtils.doAfterLayout(view, new Runnable() {
+            @Override
+            public void run() {
+                // How many pixels extra do we need?
+                final int offset = view.getHeight();
+
+                final List<Animator> animators = Lists.newArrayList();
+
+                // Translations
+                final List<View> viewsToMove = getViewsBelowOf(view);
+                translateViews(animators, viewsToMove, -offset, 0.0f, 0, 200);
+
+                // Fade in
+                final ObjectAnimator fadeInAnimator = ObjectAnimator.ofFloat(
+                        view, View.ALPHA, 0.0f, 1.0f);
+                fadeInAnimator.setDuration(200);
+                fadeInAnimator.setStartDelay(200);
+                animators.add(fadeInAnimator);
+
+                mRunner.run(animators);
+            }
+        });
+    }
+
+    /**
+     * Smoothly scroll {@param targetView}'s parent ScrollView to the top of {@param targetView}.
+     */
+    public void scrollViewToTop(final View targetView) {
+        final ScrollView scrollView = getParentScrollView(targetView);
+        SchedulingUtils.doAfterLayout(scrollView, new Runnable() {
+            @Override
+            public void run() {
+                ScrollView scrollView = getParentScrollView(targetView);
+                scrollView.smoothScrollTo(0, offsetFromTopOfViewGroup(targetView, scrollView)
+                        + scrollView.getScrollY());
+            }
+        });
+        // Clear the focused element so it doesn't interfere with scrolling.
+        View view = scrollView.findFocus();
+        if (view != null) {
+            view.clearFocus();
+        }
+    }
+
+    public static void placeFocusAtTopOfScreenAfterReLayout(final View view) {
+        // In order for the focus to be placed at the top of the Window, we need
+        // to wait for layout. Otherwise we don't know where the top of the screen is.
+        SchedulingUtils.doAfterLayout(view, new Runnable() {
+            @Override
+            public void run() {
+                EditorAnimator.getParentScrollView(view).clearFocus();
+            }
+        });
+    }
+
+    private int offsetFromTopOfViewGroup(View view, ViewGroup viewGroup) {
+        int viewLocation[] = new int[2];
+        int viewGroupLocation[] = new int[2];
+        viewGroup.getLocationOnScreen(viewGroupLocation);
+        view.getLocationOnScreen(viewLocation);
+        return viewLocation[1] - viewGroupLocation[1];
+    }
+
+    private static ScrollView getParentScrollView(View view) {
+        while (true) {
+            ViewParent parent = view.getParent();
+            if (parent instanceof ScrollView)
+                return (ScrollView) parent;
+            if (!(parent instanceof View))
+                throw new IllegalArgumentException(
+                        "The editor should be contained inside a ScrollView.");
+            view = (View) parent;
+        }
+    }
+
+    /**
+     * Creates a translation-animation for the given views
+     */
+    private static void translateViews(List<Animator> animators, List<View> views, float fromY,
+            float toY, int startDelay, int duration) {
+        for (int i = 0; i < views.size(); i++) {
+            final View child = views.get(i);
+            final ObjectAnimator translateAnimator =
+                    ObjectAnimator.ofFloat(child, View.TRANSLATION_Y, fromY, toY);
+            translateAnimator.setStartDelay(startDelay);
+            translateAnimator.setDuration(duration);
+            animators.add(translateAnimator);
+        }
+    }
+
+    /**
+     * Traverses up the view hierarchy and returns all views physically below this item.
+     *
+     * @return List of views that are below the given view. Empty list if parent of view is null.
+     */
+    private static List<View> getViewsBelowOf(View view) {
+        final ViewGroup victimParent = (ViewGroup) view.getParent();
+        final List<View> result = Lists.newArrayList();
+        if (victimParent != null) {
+            final int index = victimParent.indexOfChild(view);
+            getViewsBelowOfRecursive(result, victimParent, index + 1, view);
+        }
+        return result;
+    }
+
+    private static void getViewsBelowOfRecursive(List<View> result, ViewGroup container,
+            int index, View target) {
+        for (int i = index; i < container.getChildCount(); i++) {
+            View view = container.getChildAt(i);
+            // consider the child view below the target view only if it is physically
+            // below the view on-screen, using half the height of the target view as the
+            // baseline
+            if (view.getY() > (target.getY() + target.getHeight() / 2)) {
+                result.add(view);
+            }
+        }
+
+        final ViewParent parent = container.getParent();
+        if (parent instanceof LinearLayout) {
+            final LinearLayout parentLayout = (LinearLayout) parent;
+            int containerIndex = parentLayout.indexOfChild(container);
+            getViewsBelowOfRecursive(result, parentLayout, containerIndex + 1, target);
+        }
+    }
+
+    /**
+     * Keeps a reference to the last animator, so that we can end that early if the user
+     * quickly pushes buttons. Removes the reference once the animation has finished
+     */
+    /* package */ static class AnimatorRunner extends AnimatorListenerAdapter {
+        private Animator mLastAnimator;
+
+        @Override
+        public void onAnimationEnd(Animator animation) {
+            mLastAnimator = null;
+        }
+
+        public void run(List<Animator> animators) {
+            run(animators, null);
+        }
+
+        public void run(List<Animator> animators, AnimatorListener listener) {
+            final AnimatorSet set = new AnimatorSet();
+            set.playTogether(animators);
+            if (listener != null) set.addListener(listener);
+            set.addListener(this);
+            mLastAnimator = set;
+            set.start();
+        }
+
+        public void endOldAnimation() {
+            if (mLastAnimator != null) {
+                mLastAnimator.end();
+            }
+        }
+    }
+}
diff --git a/src/com/android/contacts/editor/EditorIntents.java b/src/com/android/contacts/editor/EditorIntents.java
new file mode 100644
index 0000000..d87a726
--- /dev/null
+++ b/src/com/android/contacts/editor/EditorIntents.java
@@ -0,0 +1,180 @@
+/*
+ * 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.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 java.util.ArrayList;
+
+/**
+ * Creates Intents to edit contacts.
+ */
+public class EditorIntents {
+
+    private EditorIntents() {
+    }
+
+    /**
+     * Returns an Intent to start the {@link CompactContactEditorActivity} for an
+     * existing contact.
+     */
+    public static Intent createCompactEditContactIntent(Uri contactLookupUri,
+            MaterialPalette materialPalette, long photoId) {
+        final Intent intent = new Intent(Intent.ACTION_EDIT, contactLookupUri);
+        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);
+    }
+
+    /**
+     * 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.
+     */
+    public static Intent createEditOtherContactIntent(Uri contactLookupUri,
+            ArrayList<ContentValues> contentValues) {
+        final Intent intent = new Intent(Intent.ACTION_EDIT, contactLookupUri);
+        intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
+                | Intent.FLAG_ACTIVITY_FORWARD_RESULT);
+        intent.putExtra(ContactEditorFragment.INTENT_EXTRA_ADD_TO_DEFAULT_DIRECTORY, "");
+
+        // Pass on all the data that has been entered so far
+        if (contentValues != null && contentValues.size() != 0) {
+            intent.putParcelableArrayListExtra(ContactsContract.Intents.Insert.DATA, contentValues);
+        }
+        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,
+                    materialPalette.mPrimaryColor);
+            intent.putExtra(ContactEditorBaseFragment.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);
+        }
+    }
+
+    private static void putRawContactDeltaValues(Intent intent,
+            RawContactDeltaList rawContactDeltaList, String displayName, String phoneticName) {
+        // Pass on all the data that has been entered so far
+        if (rawContactDeltaList != null && !rawContactDeltaList.isEmpty()) {
+            ArrayList<ContentValues> contentValues = rawContactDeltaList.get(0).getContentValues();
+            if (contentValues != null && contentValues.size() != 0) {
+                intent.putParcelableArrayListExtra(
+                        ContactsContract.Intents.Insert.DATA, contentValues);
+            }
+        }
+        // Names must be passed separately since they are skipped in RawContactModifier.parseValues
+        if (!TextUtils.isEmpty(displayName)) {
+            intent.putExtra(ContactsContract.Intents.Insert.NAME, displayName);
+        }
+        if (!TextUtils.isEmpty(phoneticName)) {
+            intent.putExtra(ContactsContract.Intents.Insert.PHONETIC_NAME, phoneticName);
+        }
+    }
+}
diff --git a/src/com/android/contacts/editor/EditorUiUtils.java b/src/com/android/contacts/editor/EditorUiUtils.java
new file mode 100644
index 0000000..0a5c765
--- /dev/null
+++ b/src/com/android/contacts/editor/EditorUiUtils.java
@@ -0,0 +1,300 @@
+/*
+ * 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.editor;
+
+import static android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import static android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import static com.android.contacts.common.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.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.Phone;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.CommonDataKinds.Relation;
+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.text.TextUtils;
+import android.util.Pair;
+import android.widget.ImageView;
+
+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.util.ContactPhotoUtils;
+import com.android.contacts.widget.QuickContactImageView;
+
+import com.google.common.collect.Maps;
+
+import java.io.FileNotFoundException;
+import java.util.HashMap;
+
+/**
+ * Utility methods for creating contact editor.
+ */
+@NeededForTesting
+public class EditorUiUtils {
+
+    // Maps DataKind.mimeType to editor view layouts.
+    private static final HashMap<String, Integer> mimetypeLayoutMap = Maps.newHashMap();
+    static {
+        // Generally there should be a layout mapped to each existing DataKind mimetype but lots of
+        // them use the default text_fields_editor_view which we return as default so they don't
+        // need to be mapped.
+        //
+        // Other possible mime mappings are:
+        // DataKind.PSEUDO_MIME_TYPE_DISPLAY_NAME
+        // Nickname.CONTENT_ITEM_TYPE
+        // Email.CONTENT_ITEM_TYPE
+        // StructuredPostal.CONTENT_ITEM_TYPE
+        // Im.CONTENT_ITEM_TYPE
+        // Note.CONTENT_ITEM_TYPE
+        // Organization.CONTENT_ITEM_TYPE
+        // Phone.CONTENT_ITEM_TYPE
+        // SipAddress.CONTENT_ITEM_TYPE
+        // Website.CONTENT_ITEM_TYPE
+        // 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);
+        mimetypeLayoutMap.put(Photo.CONTENT_ITEM_TYPE, -1);
+        mimetypeLayoutMap.put(Event.CONTENT_ITEM_TYPE, R.layout.event_field_editor_view);
+    }
+
+    /**
+     * Fetches a layout for a given mimetype.
+     *
+     * @param mimetype The mime type (e.g. StructuredName.CONTENT_ITEM_TYPE)
+     * @return The layout resource id.
+     */
+    public static int getLayoutResourceId(String mimetype) {
+        final Integer id = mimetypeLayoutMap.get(mimetype);
+        if (id == null) {
+            return R.layout.text_fields_editor_view;
+        }
+        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));
+        }
+        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)
+                || TextUtils.equals(
+                        context.getString(R.string.account_phone), accountTypeDisplayLabel)) {
+            accountTypeDisplayLabel = context.getString(R.string.account_phone);
+        } else if (GoogleAccountType.ACCOUNT_TYPE.equals(accountType.accountType)
+                && accountType.dataSet == null){
+            accountTypeDisplayLabel = context.getString(R.string.google_account_type_format,
+                    accountTypeDisplayLabel);
+        } else {
+            accountTypeDisplayLabel = context.getString(R.string.account_type_format,
+                    accountTypeDisplayLabel);
+        }
+
+        if (TextUtils.isEmpty(accountName)) {
+            return new Pair<>(/* accountName */ null, accountTypeDisplayLabel.toString());
+        }
+
+        return new Pair<>(context.getString(R.string.from_account_format, accountName),
+                accountTypeDisplayLabel.toString());
+    }
+
+    /**
+     * Returns a content description String for the container of the account information
+     * returned by {@link #getAccountInfo}.
+     */
+    public static String getAccountInfoContentDescription(CharSequence accountName,
+            CharSequence accountType) {
+        final StringBuilder builder = new StringBuilder();
+        if (!TextUtils.isEmpty(accountType)) {
+            builder.append(accountType).append('\n');
+        }
+        if (!TextUtils.isEmpty(accountName)) {
+            builder.append(accountName);
+        }
+        return builder.toString();
+    }
+
+    /**
+     * Return an icon that represents {@param mimeType}.
+     */
+    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);
+            case StructuredPostal.CONTENT_ITEM_TYPE:
+                return context.getResources().getDrawable(R.drawable.ic_place_24dp);
+            case SipAddress.CONTENT_ITEM_TYPE:
+                return context.getResources().getDrawable(R.drawable.ic_dialer_sip_black_24dp);
+            case Phone.CONTENT_ITEM_TYPE:
+                return context.getResources().getDrawable(R.drawable.ic_phone_24dp);
+            case Im.CONTENT_ITEM_TYPE:
+                return context.getResources().getDrawable(R.drawable.ic_message_24dp);
+            case Event.CONTENT_ITEM_TYPE:
+                return context.getResources().getDrawable(R.drawable.ic_event_24dp);
+            case Email.CONTENT_ITEM_TYPE:
+                return context.getResources().getDrawable(R.drawable.ic_email_24dp);
+            case Website.CONTENT_ITEM_TYPE:
+                return context.getResources().getDrawable(R.drawable.ic_public_black_24dp);
+            case Photo.CONTENT_ITEM_TYPE:
+                return context.getResources().getDrawable(R.drawable.ic_camera_alt_black_24dp);
+            case GroupMembership.CONTENT_ITEM_TYPE:
+                return context.getResources().getDrawable(R.drawable.ic_menu_label);
+            case Organization.CONTENT_ITEM_TYPE:
+                return context.getResources().getDrawable(R.drawable.ic_business_black_24dp);
+            case Note.CONTENT_ITEM_TYPE:
+                return context.getResources().getDrawable(R.drawable.ic_insert_comment_black_24dp);
+            case Relation.CONTENT_ITEM_TYPE:
+                return context.getResources().getDrawable(
+                        R.drawable.ic_circles_extended_black_24dp);
+            default:
+                return null;
+        }
+    }
+
+    /**
+     * 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
+            if (RingtoneManager.isDefault(pickedUri)) return null; // default ringtone
+        }
+        if (pickedUri == null || RingtoneManager.isDefault(pickedUri)) return null;
+        return pickedUri.toString();
+    }
+
+    /**
+     * 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;
+            return Uri.parse(str);
+        }
+        return RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
+    }
+
+    private static boolean isNewerThanM(int currentVersion) {
+        return currentVersion > Build.VERSION_CODES.M;
+    }
+
+    /** Returns the {@link Photo#PHOTO_FILE_ID} from the given ValuesDelta. */
+    public static Long getPhotoFileId(ValuesDelta valuesDelta) {
+        if (valuesDelta == null) return null;
+        if (valuesDelta.getAfter() == null || valuesDelta.getAfter().get(Photo.PHOTO) == null) {
+            return valuesDelta.getAsLong(Photo.PHOTO_FILE_ID);
+        }
+        return null;
+    }
+
+    /** Binds the full resolution image at the given Uri to the provided ImageView. */
+    static void loadPhoto(ContactPhotoManager contactPhotoManager, ImageView imageView,
+            Uri photoUri) {
+        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.
+            }
+        };
+        contactPhotoManager.loadPhoto(imageView, photoUri, imageView.getWidth(),
+                /* darkTheme =*/ false, /* isCircular =*/ false,
+                /* defaultImageRequest =*/ null, fallbackToPreviousImage);
+    }
+
+    /** Decodes the Bitmap from the photo bytes from the given ValuesDelta. */
+    public static Bitmap getPhotoBitmap(ValuesDelta valuesDelta) {
+        if (valuesDelta == null) return null;
+        final byte[] bytes = valuesDelta.getAsByteArray(Photo.PHOTO);
+        if (bytes == null) return null;
+        return BitmapFactory.decodeByteArray(bytes, /* offset =*/ 0, bytes.length);
+    }
+
+    /** Binds the default avatar to the given ImageView and tints it to match QuickContacts. */
+    public static void setDefaultPhoto(ImageView imageView , Resources resources,
+            MaterialPalette materialPalette) {
+        // Use the default avatar drawable
+        imageView.setImageDrawable(ContactPhotoManager.getDefaultAvatarDrawableForContact(
+                resources, /* hires =*/ false, /* defaultImageRequest =*/ null));
+
+        // Tint it to match the quick contacts
+        if (imageView instanceof QuickContactImageView) {
+            ((QuickContactImageView) imageView).setTint(materialPalette == null
+                    ? getDefaultPrimaryAndSecondaryColors(resources).mPrimaryColor
+                    : materialPalette.mPrimaryColor);
+        }
+    }
+
+    /**  Returns compressed bitmap bytes from the given Uri, scaled to the thumbnail dimensions. */
+    public static byte[] getCompressedThumbnailBitmapBytes(Context context, Uri uri)
+            throws FileNotFoundException {
+        final Bitmap bitmap = ContactPhotoUtils.getBitmapFromUri(context, uri);
+        final int size = ContactsUtils.getThumbnailSize(context);
+        final Bitmap bitmapScaled = Bitmap.createScaledBitmap(
+                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
new file mode 100644
index 0000000..059208e
--- /dev/null
+++ b/src/com/android/contacts/editor/EventFieldEditorView.java
@@ -0,0 +1,287 @@
+/*
+ * 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.Dialog;
+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;
+import android.view.View;
+import android.widget.Button;
+
+import com.android.contacts.R;
+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 java.text.ParsePosition;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Locale;
+
+/**
+ * Editor that allows editing Events using a {@link DatePickerDialog}
+ */
+public class EventFieldEditorView extends LabeledEditorView {
+
+    /**
+     * Default string to show when there is no date selected yet.
+     */
+    private String mNoDateString;
+    private int mPrimaryTextColor;
+    private int mHintTextColor;
+
+    private Button mDateView;
+
+    public EventFieldEditorView(Context context) {
+        super(context);
+    }
+
+    public EventFieldEditorView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public EventFieldEditorView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+
+        Resources resources = getContext().getResources();
+        mPrimaryTextColor = resources.getColor(R.color.primary_text_color);
+        mHintTextColor = resources.getColor(R.color.editor_disabled_text_color);
+        mNoDateString = getContext().getString(R.string.event_edit_field_hint_text);
+
+        mDateView = (Button) findViewById(R.id.date_view);
+        mDateView.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                showDialog(R.id.dialog_event_date_picker);
+            }
+        });
+    }
+
+    @Override
+    public void editNewlyAddedField() {
+        showDialog(R.id.dialog_event_date_picker);
+    }
+
+    @Override
+    protected void requestFocusForFirstEditField() {
+        mDateView.requestFocus();
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        super.setEnabled(enabled);
+
+        mDateView.setEnabled(!isReadOnly() && enabled);
+    }
+
+    @Override
+    public void setValues(DataKind kind, ValuesDelta entry, RawContactDelta state, boolean readOnly,
+            ViewIdGenerator vig) {
+        if (kind.fieldList.size() != 1) throw new IllegalStateException("kind must have 1 field");
+        super.setValues(kind, entry, state, readOnly, vig);
+
+        mDateView.setEnabled(isEnabled() && !readOnly);
+
+        rebuildDateView();
+        updateEmptiness();
+    }
+
+    private void rebuildDateView() {
+        final EditField editField = getKind().fieldList.get(0);
+        final String column = editField.column;
+        String data = DateUtils.formatDate(getContext(), getEntry().getAsString(column),
+                false /*Use the short DateFormat to ensure that it fits inside the EditText*/);
+        if (TextUtils.isEmpty(data)) {
+            mDateView.setText(mNoDateString);
+            mDateView.setTextColor(mHintTextColor);
+            setDeleteButtonVisible(false);
+        } else {
+            mDateView.setText(data);
+            mDateView.setTextColor(mPrimaryTextColor);
+            setDeleteButtonVisible(true);
+        }
+    }
+
+    @Override
+    public boolean isEmpty() {
+        final EditField editField = getKind().fieldList.get(0);
+        final String column = editField.column;
+        return TextUtils.isEmpty(getEntry().getAsString(column));
+    }
+
+    @Override
+    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);
+        }
+    }
+
+    @Override
+    protected EventEditType getType() {
+        return (EventEditType) super.getType();
+    }
+
+    @Override
+    protected void onLabelRebuilt() {
+        // if we changed to a type that requires a year, ensure that it is actually set
+        final String column = getKind().fieldList.get(0).column;
+        final String oldValue = getEntry().getAsString(column);
+        final DataKind kind = getKind();
+
+        final Calendar calendar = Calendar.getInstance(DateUtils.UTC_TIMEZONE, Locale.US);
+        final int defaultYear = calendar.get(Calendar.YEAR);
+
+        // Check whether the year is optional
+        final boolean isYearOptional = getType() != null && getType().isYearOptional();
+
+        if (!isYearOptional && !TextUtils.isEmpty(oldValue)) {
+            final ParsePosition position = new ParsePosition(0);
+            final Date date2 = kind.dateFormatWithoutYear.parse(oldValue, position);
+
+            // Don't understand the date, lets not change it
+            if (date2 == null) return;
+
+            // This value is missing the year. Add it now
+            calendar.setTime(date2);
+            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()));
+            rebuildDateView();
+        }
+    }
+
+    /**
+     * Prepare dialog for entering a date
+     */
+    private Dialog createDatePickerDialog() {
+        final String column = getKind().fieldList.get(0).column;
+        final String oldValue = getEntry().getAsString(column);
+        final DataKind kind = getKind();
+
+        final Calendar calendar = Calendar.getInstance(DateUtils.UTC_TIMEZONE, Locale.US);
+        final int defaultYear = calendar.get(Calendar.YEAR);
+
+        // Check whether the year is optional
+        final boolean isYearOptional = getType().isYearOptional();
+
+        final int oldYear, oldMonth, oldDay;
+
+        if (TextUtils.isEmpty(oldValue)) {
+            // Default to the current date
+            oldYear = defaultYear;
+            oldMonth = calendar.get(Calendar.MONTH);
+            oldDay = calendar.get(Calendar.DAY_OF_MONTH);
+        } else {
+            // Try parsing with year
+            Calendar cal = DateUtils.parseDate(oldValue, false);
+            if (cal != null) {
+                if (DateUtils.isYearSet(cal)) {
+                    oldYear = cal.get(Calendar.YEAR);
+                } else {
+                    //cal.set(Calendar.YEAR, 0);
+                    oldYear = isYearOptional ? DatePickerDialog.NO_YEAR : defaultYear;
+                }
+                oldMonth = cal.get(Calendar.MONTH);
+                oldDay = cal.get(Calendar.DAY_OF_MONTH);
+            } else {
+                return null;
+            }
+        }
+        final OnDateSetListener callBack = new OnDateSetListener() {
+            @Override
+            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
+                if (year == 0 && !isYearOptional) throw new IllegalStateException();
+                final Calendar outCalendar =
+                        Calendar.getInstance(DateUtils.UTC_TIMEZONE, Locale.US);
+
+                // If no year specified, set it to 2000 (we could pick any leap year here).
+                // The format string will ignore that year.
+                // For formats other than Exchange, the time of the day is ignored
+                outCalendar.clear();
+                outCalendar.set(year == DatePickerDialog.NO_YEAR ? 2000 : year, monthOfYear,
+                        dayOfMonth, CommonDateUtils.DEFAULT_HOUR, 0, 0);
+
+                final String resultString;
+                if (year == 0) {
+                    resultString = kind.dateFormatWithoutYear.format(outCalendar.getTime());
+                } else {
+                    resultString = kind.dateFormatWithYear.format(outCalendar.getTime());
+                }
+                onFieldChanged(column, resultString);
+                rebuildDateView();
+            }
+        };
+        final DatePickerDialog resultDialog = new DatePickerDialog(getContext(), callBack,
+                oldYear, oldMonth, oldDay, isYearOptional);
+        return resultDialog;
+    }
+
+    @Override
+    public void clearAllFields() {
+        // Update UI
+        mDateView.setText(mNoDateString);
+        mDateView.setTextColor(mHintTextColor);
+
+        // Update state
+        final String column = getKind().fieldList.get(0).column;
+        onFieldChanged(column, "");
+    }
+
+    /**
+     * Sets the typeColumn of entry as TYPE_BIRTHDAY and calls rebuildValues() to refresh the view.
+     */
+    public void restoreBirthday() {
+        saveValue(getKind().typeColumn, Integer.toString(Event.TYPE_BIRTHDAY));
+        rebuildValues();
+    }
+
+    /**
+     * EventEditType Birthday:
+     * rawValue=3 labelRes=17039911 secondary=false specificMax=1 customColumn=null
+     * mYearOptional=true
+     */
+    public boolean isBirthdayType(){
+        final EventEditType eventType = getType();
+        return eventType.rawValue == Event.TYPE_BIRTHDAY && !eventType.secondary
+                && eventType.specificMax == 1 && eventType.customColumn == null
+                && eventType.isYearOptional();
+    }
+}
diff --git a/src/com/android/contacts/editor/GroupMembershipView.java b/src/com/android/contacts/editor/GroupMembershipView.java
new file mode 100644
index 0000000..d41991c
--- /dev/null
+++ b/src/com/android/contacts/editor/GroupMembershipView.java
@@ -0,0 +1,465 @@
+/*
+ * 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.content.Context;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+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.ArrayAdapter;
+import android.widget.CheckedTextView;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ListPopupWindow;
+import android.widget.ListView;
+import android.widget.TextView;
+
+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.util.UiClosables;
+import com.google.common.base.Objects;
+
+import java.util.ArrayList;
+
+/**
+ * An editor for group membership.  Displays the current group membership list and
+ * brings up a dialog to change it.
+ */
+public class GroupMembershipView extends LinearLayout
+        implements OnClickListener, OnItemClickListener {
+
+    private static final int CREATE_NEW_GROUP_GROUP_ID = 133;
+
+    public static final class GroupSelectionItem {
+        private final long mGroupId;
+        private final String mTitle;
+        private boolean mChecked;
+
+        public GroupSelectionItem(long groupId, String title, boolean checked) {
+            this.mGroupId = groupId;
+            this.mTitle = title;
+            mChecked = checked;
+        }
+
+        public long getGroupId() {
+            return mGroupId;
+        }
+
+        public boolean isChecked() {
+            return mChecked;
+        }
+
+        public void setChecked(boolean checked) {
+            mChecked = checked;
+        }
+
+        @Override
+        public String toString() {
+            return mTitle;
+        }
+    }
+
+    /**
+     * Extends the array adapter to show checkmarks on all but the last list item for
+     * the group membership popup.  Note that this is highly specific to the fact that the
+     * group_membership_list_item.xml is a CheckedTextView object.
+     */
+    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);
+        }
+
+        public boolean getItemIsCheckable(int position) {
+            // Item is checkable if it is NOT the last one in the list
+            return position != getCount()-1;
+        }
+
+        @Override
+        public int getItemViewType(int position) {
+            return getItemIsCheckable(position) ? 0 : 1;
+        }
+
+        @Override
+        public int getViewTypeCount() {
+            return 2;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            final View itemView = super.getView(position, convertView, parent);
+            if (itemView == null) {
+                return null;
+            }
+
+            // Hide the checkable drawable.  This assumes that the item views
+            // are CheckedTextView objects
+            final CheckedTextView checkedTextView = (CheckedTextView)itemView;
+            if (!getItemIsCheckable(position)) {
+                checkedTextView.setCheckMarkDrawable(null);
+            }
+            checkedTextView.setTextColor(mPrimaryTextColor);
+
+            return checkedTextView;
+        }
+
+        public int getNewestGroupPosition() {
+            return mNewestGroupPosition;
+        }
+
+        public void setNewestGroupPosition(int newestGroupPosition) {
+            mNewestGroupPosition = newestGroupPosition;
+        }
+
+    }
+
+    private RawContactDelta mState;
+    private Cursor mGroupMetaData;
+    private boolean mAccountHasGroups;
+    private String mAccountName;
+    private String mAccountType;
+    private String mDataSet;
+    private TextView mGroupList;
+    private GroupMembershipAdapter<GroupSelectionItem> mAdapter;
+    private long mDefaultGroupId;
+    private long mFavoritesGroupId;
+    private ListPopupWindow mPopup;
+    private DataKind mKind;
+    private boolean mDefaultGroupVisibilityKnown;
+    private boolean mDefaultGroupVisible;
+    private boolean mCreatedNewGroup;
+
+    private String mNoGroupString;
+    private int mPrimaryTextColor;
+    private int mHintTextColor;
+
+    public GroupMembershipView(Context context) {
+        super(context);
+    }
+
+    public GroupMembershipView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+        Resources resources = getContext().getResources();
+        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);
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        super.setEnabled(enabled);
+        if (mGroupList != null) {
+            mGroupList.setEnabled(enabled);
+        }
+    }
+
+    public void setKind(DataKind kind) {
+        mKind = kind;
+        final ImageView imageView = (ImageView) findViewById(R.id.kind_icon);
+        imageView.setContentDescription(getResources().getString(kind.titleRes));
+    }
+
+    public void setGroupMetaData(Cursor groupMetaData) {
+        this.mGroupMetaData = groupMetaData;
+        updateView();
+        // Open up the list of groups if a new group was just created.
+        if (mCreatedNewGroup) {
+            mCreatedNewGroup = false;
+            onClick(this); // This causes the popup to open.
+            if (mPopup != null) {
+                // Ensure that the newly created group is checked.
+                final int position = mAdapter.getNewestGroupPosition();
+                ListView listView = mPopup.getListView();
+                if (listView != null && !listView.isItemChecked(position)) {
+                    // Newly created group is not checked, so check it.
+                    listView.setItemChecked(position, true);
+                    onItemClick(listView, null, position, listView.getItemIdAtPosition(position));
+                }
+            }
+        }
+    }
+
+    /** Whether {@link #setGroupMetaData} has been invoked yet. */
+    public boolean wasGroupMetaDataBound() {
+        return mGroupMetaData != null;
+    }
+
+    /**
+     * Return true if the account has groups to edit group membership for contacts
+     * belong to the account.
+     */
+    public boolean accountHasGroups() {
+        return mAccountHasGroups;
+    }
+
+    public void setState(RawContactDelta state) {
+        mState = state;
+        mAccountType = mState.getAccountType();
+        mAccountName = mState.getAccountName();
+        mDataSet = mState.getDataSet();
+        mDefaultGroupVisibilityKnown = false;
+        mCreatedNewGroup = false;
+        updateView();
+    }
+
+    private void updateView() {
+        if (mGroupMetaData == null || mGroupMetaData.isClosed() || mAccountType == null
+                || mAccountName == null) {
+            setVisibility(GONE);
+            return;
+        }
+
+        mFavoritesGroupId = 0;
+        mDefaultGroupId = 0;
+
+        StringBuilder sb = new StringBuilder();
+        mGroupMetaData.moveToPosition(-1);
+        while (mGroupMetaData.moveToNext()) {
+            String accountName = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_NAME);
+            String accountType = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_TYPE);
+            String dataSet = mGroupMetaData.getString(GroupMetaDataLoader.DATA_SET);
+            if (accountName.equals(mAccountName) && accountType.equals(mAccountType)
+                    && Objects.equal(dataSet, mDataSet)) {
+                long groupId = mGroupMetaData.getLong(GroupMetaDataLoader.GROUP_ID);
+                if (!mGroupMetaData.isNull(GroupMetaDataLoader.FAVORITES)
+                        && mGroupMetaData.getInt(GroupMetaDataLoader.FAVORITES) != 0) {
+                    mFavoritesGroupId = groupId;
+                } else if (!mGroupMetaData.isNull(GroupMetaDataLoader.AUTO_ADD)
+                            && mGroupMetaData.getInt(GroupMetaDataLoader.AUTO_ADD) != 0) {
+                    mDefaultGroupId = groupId;
+                } else {
+                    mAccountHasGroups = true;
+                }
+
+                // Exclude favorites from the list - they are handled with special UI (star)
+                // Also exclude the default group.
+                if (groupId != mFavoritesGroupId && groupId != mDefaultGroupId
+                        && hasMembership(groupId)) {
+                    String title = mGroupMetaData.getString(GroupMetaDataLoader.TITLE);
+                    if (!TextUtils.isEmpty(title)) {
+                        if (sb.length() != 0) {
+                            sb.append(", ");
+                        }
+                        sb.append(title);
+                    }
+                }
+            }
+        }
+
+        if (!mAccountHasGroups) {
+            setVisibility(GONE);
+            return;
+        }
+
+        if (mGroupList == null) {
+            mGroupList = (TextView) findViewById(R.id.group_list);
+            mGroupList.setOnClickListener(this);
+        }
+
+        mGroupList.setEnabled(isEnabled());
+        if (sb.length() == 0) {
+            mGroupList.setText(mNoGroupString);
+            mGroupList.setTextColor(mHintTextColor);
+        } else {
+            mGroupList.setText(sb);
+            mGroupList.setTextColor(mPrimaryTextColor);
+        }
+        setVisibility(VISIBLE);
+
+        if (!mDefaultGroupVisibilityKnown) {
+            // Only show the default group (My Contacts) if the contact is NOT in it
+            mDefaultGroupVisible = mDefaultGroupId != 0 && !hasMembership(mDefaultGroupId);
+            mDefaultGroupVisibilityKnown = true;
+        }
+    }
+
+    @Override
+    public void onClick(View v) {
+        if (UiClosables.closeQuietly(mPopup)) {
+            mPopup = null;
+            return;
+        }
+
+        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);
+            String accountType = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_TYPE);
+            String dataSet = mGroupMetaData.getString(GroupMetaDataLoader.DATA_SET);
+            if (accountName.equals(mAccountName) && accountType.equals(mAccountType)
+                    && Objects.equal(dataSet, mDataSet)) {
+                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));
+                }
+            }
+        }
+
+        mAdapter.add(new GroupSelectionItem(CREATE_NEW_GROUP_GROUP_ID,
+                getContext().getString(R.string.create_group_item_label), false));
+
+        mPopup = new ListPopupWindow(getContext(), null);
+        mPopup.setAnchorView(mGroupList);
+        mPopup.setAdapter(mAdapter);
+        mPopup.setModal(true);
+        mPopup.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED);
+        mPopup.show();
+
+        ListView listView = mPopup.getListView();
+        listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
+        listView.setOverScrollMode(OVER_SCROLL_ALWAYS);
+        int count = mAdapter.getCount();
+        for (int i = 0; i < count; i++) {
+            listView.setItemChecked(i, mAdapter.getItem(i).isChecked());
+        }
+
+        listView.setOnItemClickListener(this);
+    }
+
+    @Override
+    protected void onDetachedFromWindow() {
+        super.onDetachedFromWindow();
+        UiClosables.closeQuietly(mPopup);
+        mPopup = null;
+    }
+
+    @Override
+    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+        ListView list = (ListView) parent;
+        int count = mAdapter.getCount();
+
+        if (list.isItemChecked(count - 1)) {
+            list.setItemChecked(count - 1, false);
+            createNewGroup();
+            return;
+        }
+
+        for (int i = 0; i < count; i++) {
+            mAdapter.getItem(i).setChecked(list.isItemChecked(i));
+        }
+
+        // First remove the memberships that have been unchecked
+        ArrayList<ValuesDelta> entries = mState.getMimeEntries(GroupMembership.CONTENT_ITEM_TYPE);
+        if (entries != null) {
+            for (ValuesDelta entry : entries) {
+                if (!entry.isDelete()) {
+                    Long groupId = entry.getGroupRowId();
+                    if (groupId != null && groupId != mFavoritesGroupId
+                            && (groupId != mDefaultGroupId || mDefaultGroupVisible)
+                            && !isGroupChecked(groupId)) {
+                        entry.markDeleted();
+                    }
+                }
+            }
+        }
+
+        // Now add the newly selected items
+        for (int i = 0; i < count; i++) {
+            GroupSelectionItem item = mAdapter.getItem(i);
+            long groupId = item.getGroupId();
+            if (item.isChecked() && !hasMembership(groupId)) {
+                ValuesDelta entry = RawContactModifier.insertChild(mState, mKind);
+                if (entry != null) {
+                    entry.setGroupRowId(groupId);
+                }
+            }
+        }
+
+        updateView();
+    }
+
+    private boolean isGroupChecked(long groupId) {
+        int count = mAdapter.getCount();
+        for (int i = 0; i < count; i++) {
+            GroupSelectionItem item = mAdapter.getItem(i);
+            if (groupId == item.getGroupId()) {
+                return item.isChecked();
+            }
+        }
+        return false;
+    }
+
+    private boolean hasMembership(long groupId) {
+        if (groupId == mDefaultGroupId && mState.isContactInsert()) {
+            return true;
+        }
+
+        ArrayList<ValuesDelta> entries = mState.getMimeEntries(GroupMembership.CONTENT_ITEM_TYPE);
+        if (entries != null) {
+            for (ValuesDelta values : entries) {
+                if (!values.isDelete()) {
+                    Long id = values.getGroupRowId();
+                    if (id != null && id == groupId) {
+                        return true;
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
+    private void createNewGroup() {
+        UiClosables.closeQuietly(mPopup);
+        mPopup = null;
+
+        GroupCreationDialogFragment.show(
+                ((Activity) getContext()).getFragmentManager(),
+                mAccountType,
+                mAccountName,
+                mDataSet,
+                new OnGroupCreatedListener() {
+                    @Override
+                    public void onGroupCreated() {
+                        mCreatedNewGroup = true;
+                    }
+                });
+    }
+
+}
diff --git a/src/com/android/contacts/editor/JoinContactConfirmationDialogFragment.java b/src/com/android/contacts/editor/JoinContactConfirmationDialogFragment.java
new file mode 100644
index 0000000..55a066e
--- /dev/null
+++ b/src/com/android/contacts/editor/JoinContactConfirmationDialogFragment.java
@@ -0,0 +1,86 @@
+/*
+ * 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 android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.DialogInterface;
+import android.os.Bundle;
+
+import com.android.contacts.R;
+
+/**
+ * Shows a dialog asking the user whether to apply pending changes before joining the contact.
+ */
+public class JoinContactConfirmationDialogFragment extends DialogFragment {
+
+    private static final String ARG_JOIN_CONTACT_ID = "joinContactId";
+
+    /**
+     * Callbacks for the host of this dialog fragment.
+     */
+    public interface Listener {
+
+        /**
+         * Invoked after the user confirms they want to save pending changes before
+         * joining the contact.
+         *
+         * @param joinContactId The raw contact ID of the contact to join to.
+         */
+        void onJoinContactConfirmed(long joinContactId);
+    }
+
+    /**
+     * @param joinContactId The raw contact ID of the contact to join to after confirmation.
+     */
+    public static void show(ContactEditorBaseFragment fragment, long joinContactId) {
+        final Bundle args = new Bundle();
+        args.putLong(ARG_JOIN_CONTACT_ID, joinContactId);
+
+        final JoinContactConfirmationDialogFragment dialog = new
+                JoinContactConfirmationDialogFragment();
+        dialog.setTargetFragment(fragment, 0);
+        dialog.setArguments(args);
+        dialog.show(fragment.getFragmentManager(), "joinContactConfirmationDialog");
+    }
+
+    private long mContactId;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mContactId = getArguments().getLong(ARG_JOIN_CONTACT_ID);
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        builder.setMessage(R.string.joinConfirmation);
+        builder.setPositiveButton(R.string.joinConfirmation_positive_button,
+                new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        final Listener targetListener = (Listener) getTargetFragment();
+                        targetListener.onJoinContactConfirmed(mContactId);
+                    }
+                });
+        builder.setNegativeButton(android.R.string.cancel, null);
+        builder.setCancelable(false);
+        return builder.create();
+    }
+}
diff --git a/src/com/android/contacts/editor/JoinSuggestedContactDialogFragment.java b/src/com/android/contacts/editor/JoinSuggestedContactDialogFragment.java
new file mode 100644
index 0000000..4d35332
--- /dev/null
+++ b/src/com/android/contacts/editor/JoinSuggestedContactDialogFragment.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.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
new file mode 100644
index 0000000..7e2899f
--- /dev/null
+++ b/src/com/android/contacts/editor/KindSectionData.java
@@ -0,0 +1,121 @@
+/*
+ * 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.AccountType;
+import com.android.contacts.common.model.account.AccountType.EditField;
+import com.android.contacts.common.model.dataitem.DataKind;
+
+import android.text.TextUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Holder for the multi account raw contact data needed to back an editor input field.
+ */
+public final class KindSectionData {
+
+    private final AccountType mAccountType;
+    private final DataKind mDataKind;
+    private final RawContactDelta mRawContactDelta;
+
+    public KindSectionData(AccountType accountType, DataKind dataKind,
+            RawContactDelta rawContactDelta) {
+        mAccountType = accountType;
+        mDataKind = dataKind;
+        mRawContactDelta = rawContactDelta;
+    }
+
+    public AccountType getAccountType() {
+        return mAccountType;
+    }
+
+    /** Returns all ValuesDeltas for the data kind this section represents.*/
+    public List<ValuesDelta> getValuesDeltas() {
+        final List<ValuesDelta> valuesDeltas = mRawContactDelta.getMimeEntries(mDataKind.mimeType);
+        return valuesDeltas == null ? new ArrayList<ValuesDelta>() : valuesDeltas;
+    }
+
+    /** Returns visible and non deleted ValuesDeltas for the data kind this section represents. */
+    public List<ValuesDelta> getVisibleValuesDeltas() {
+        final ArrayList<ValuesDelta> valuesDeltas = new ArrayList<> ();
+        for (ValuesDelta valuesDelta : getValuesDeltas()) {
+            // Same conditions as KindSectionView#rebuildFromState
+            if (valuesDelta.isVisible() && !valuesDelta.isDelete()) {
+                valuesDeltas.add(valuesDelta);
+            }
+        }
+        return valuesDeltas;
+    }
+
+    /** Returns non-empty ValuesDeltas for the data kind this section represents. */
+    public List<ValuesDelta> getNonEmptyValuesDeltas() {
+        final ArrayList<ValuesDelta> valuesDeltas = new ArrayList<> ();
+        for (ValuesDelta valuesDelta : getValuesDeltas()) {
+            if (!isEmpty(valuesDelta)) {
+                valuesDeltas.add(valuesDelta);
+            }
+        }
+        return valuesDeltas;
+    }
+
+    /** Returns the super primary ValuesDelta for the data kind this section represents. */
+    public ValuesDelta getSuperPrimaryValuesDelta() {
+        for (ValuesDelta valuesDelta : getValuesDeltas()) {
+            if (valuesDelta.isSuperPrimary()) return valuesDelta;
+        }
+        return null;
+    }
+
+    /** Returns the ValuesDelta with the given ID. */
+    public ValuesDelta getValuesDeltaById(Long id) {
+        for (ValuesDelta valuesDelta : getValuesDeltas()) {
+            if (valuesDelta.getId().equals(id)) return valuesDelta;
+        }
+        return null;
+    }
+
+    /** Returns the first non empty ValuesDelta for the data kind this section represents. */
+    public ValuesDelta getFirstNonEmptyValuesDelta() {
+        for (ValuesDelta valuesDelta : getValuesDeltas()) {
+            if (!isEmpty(valuesDelta)) return valuesDelta;
+        }
+        return null;
+    }
+
+    private boolean isEmpty(ValuesDelta valuesDelta) {
+        if (mDataKind.fieldList != null) {
+            for (EditField editField : mDataKind.fieldList) {
+                final String column = editField.column;
+                final String value = valuesDelta.getAsString(column);
+                if (!TextUtils.isEmpty(value)) return false;
+            }
+        }
+        return true;
+    }
+
+    public DataKind getDataKind() {
+        return mDataKind;
+    }
+
+    public RawContactDelta getRawContactDelta() {
+        return mRawContactDelta;
+    }
+}
diff --git a/src/com/android/contacts/editor/KindSectionDataList.java b/src/com/android/contacts/editor/KindSectionDataList.java
new file mode 100644
index 0000000..cb82806
--- /dev/null
+++ b/src/com/android/contacts/editor/KindSectionDataList.java
@@ -0,0 +1,205 @@
+/*
+ * 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
new file mode 100644
index 0000000..dddc6aa
--- /dev/null
+++ b/src/com/android/contacts/editor/KindSectionView.java
@@ -0,0 +1,274 @@
+/*
+ * 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.provider.ContactsContract.Data;
+import android.text.TextUtils;
+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 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 java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Custom view for an entire section of data as segmented by
+ * {@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 interface Listener {
+
+        /**
+         * Invoked when any editor that is displayed in this section view is deleted by the user.
+         */
+        public void onDeleteRequested(Editor editor);
+    }
+
+    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);
+    }
+
+    public KindSectionView(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);
+            }
+        }
+
+        updateEmptyEditors(/* shouldAnimate = */ true);
+    }
+
+    public boolean isReadOnly() {
+        return mReadOnly;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected void onFinishInflate() {
+        setDrawingCacheEnabled(true);
+        setAlwaysDrawnWithCacheEnabled(true);
+
+        mInflater = (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();
+            }
+        }
+    }
+
+    @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);
+        }
+    }
+
+    public void setListener(Listener listener) {
+        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);
+        }
+
+        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;
+
+                createEditorView(entry);
+            }
+        }
+    }
+
+
+    /**
+     * 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());
+        }
+        view.setEnabled(isEnabled());
+        if (view instanceof Editor) {
+            Editor editor = (Editor) view;
+            editor.setDeletable(true);
+            editor.setValues(mKind, entry, mState, mReadOnly, mViewIdGenerator);
+            editor.setEditorListener(this);
+        }
+        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.
+     */
+    public void updateEmptyEditors(boolean shouldAnimate) {
+
+        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);
+                    }
+                }
+            }
+        } 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;
+        } else {
+            final ValuesDelta values = RawContactModifier.insertChild(mState, mKind);
+            final View newField = createEditorView(values);
+            if (shouldAnimate) {
+                newField.setVisibility(View.GONE);
+                EditorAnimator.getInstance().showFieldFooter(newField);
+            }
+        }
+    }
+
+    /**
+     * Returns a list of empty editor views in this section.
+     */
+    private List<View> getEmptyEditors() {
+        List<View> emptyEditorViews = new ArrayList<View>();
+        for (int i = 0; i < mEditors.getChildCount(); i++) {
+            View view = mEditors.getChildAt(i);
+            if (((Editor) view).isEmpty()) {
+                emptyEditorViews.add(view);
+            }
+        }
+        return emptyEditorViews;
+    }
+
+    public int getEditorCount() {
+        return mEditors.getChildCount();
+    }
+
+    public DataKind getKind() {
+        return mKind;
+    }
+}
diff --git a/src/com/android/contacts/editor/LabeledEditorView.java b/src/com/android/contacts/editor/LabeledEditorView.java
new file mode 100644
index 0000000..61c1061
--- /dev/null
+++ b/src/com/android/contacts/editor/LabeledEditorView.java
@@ -0,0 +1,640 @@
+/*
+ * 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.AlertDialog;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnShowListener;
+import android.os.Bundle;
+import android.os.Handler;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.view.inputmethod.EditorInfo;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemSelectedListener;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.Spinner;
+import android.widget.TextView;
+
+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.util.DialogManager;
+import com.android.contacts.util.DialogManager.DialogShowingView;
+
+import java.util.List;
+
+/**
+ * Base class for editors that handles labels and values. Uses
+ * {@link ValuesDelta} to read any existing {@link RawContact} values, and to
+ * correctly write any changes values.
+ */
+public abstract class LabeledEditorView extends LinearLayout implements Editor, DialogShowingView {
+    protected static final String DIALOG_ID_KEY = "dialog_id";
+    private static final int DIALOG_ID_CUSTOM = 1;
+
+    private static final int INPUT_TYPE_CUSTOM = EditorInfo.TYPE_CLASS_TEXT
+            | EditorInfo.TYPE_TEXT_FLAG_CAP_WORDS;
+
+    private Spinner mLabel;
+    private EditTypeAdapter mEditTypeAdapter;
+    private View mDeleteContainer;
+    private ImageView mDelete;
+
+    private DataKind mKind;
+    private ValuesDelta mEntry;
+    private RawContactDelta mState;
+    private boolean mReadOnly;
+    private boolean mWasEmpty = true;
+    private boolean mIsDeletable = true;
+    private boolean mIsAttachedToWindow;
+
+    private EditType mType;
+
+    private ViewIdGenerator mViewIdGenerator;
+    private DialogManager mDialogManager = null;
+    private EditorListener mListener;
+    protected int mMinLineItemHeight;
+
+    /**
+     * A marker in the spinner adapter of the currently selected custom type.
+     */
+    public static final EditType CUSTOM_SELECTION = new EditType(0, 0);
+
+    private OnItemSelectedListener mSpinnerListener = new OnItemSelectedListener() {
+
+        @Override
+        public void onItemSelected(
+                AdapterView<?> parent, View view, int position, long id) {
+            onTypeSelectionChange(position);
+        }
+
+        @Override
+        public void onNothingSelected(AdapterView<?> parent) {
+        }
+    };
+
+    public LabeledEditorView(Context context) {
+        super(context);
+        init(context);
+    }
+
+    public LabeledEditorView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init(context);
+    }
+
+    public LabeledEditorView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        init(context);
+    }
+
+    public Long getRawContactId() {
+        return mState == null ? null : mState.getRawContactId();
+    }
+
+    private void init(Context context) {
+        mMinLineItemHeight = context.getResources().getDimensionPixelSize(
+                R.dimen.editor_min_line_item_height);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected void onFinishInflate() {
+
+        mLabel = (Spinner) findViewById(R.id.spinner);
+        // Turn off the Spinner's own state management. We do this ourselves on rotation
+        mLabel.setId(View.NO_ID);
+        mLabel.setOnItemSelectedListener(mSpinnerListener);
+        ViewSelectedFilter.suppressViewSelectedEvent(mLabel);
+
+        mDelete = (ImageView) findViewById(R.id.delete_button);
+        mDeleteContainer = findViewById(R.id.delete_button_container);
+        mDeleteContainer.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                // defer removal of this button so that the pressed state is visible shortly
+                new Handler().post(new Runnable() {
+                    @Override
+                    public void run() {
+                        // Don't do anything if the view is no longer attached to the window
+                        // (This check is needed because when this {@link Runnable} is executed,
+                        // we can't guarantee the view is still valid.
+                        if (!mIsAttachedToWindow) {
+                            return;
+                        }
+                        // Send the delete request to the listener (which will in turn call
+                        // deleteEditor() on this view if the deletion is valid - i.e. this is not
+                        // the last {@link Editor} in the section).
+                        if (mListener != null) {
+                            mListener.onDeleteRequested(LabeledEditorView.this);
+                        }
+                    }
+                });
+            }
+        });
+
+        setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight(),
+                (int) getResources().getDimension(R.dimen.editor_padding_between_editor_views));
+    }
+
+    @Override
+    protected void onAttachedToWindow() {
+        super.onAttachedToWindow();
+        // Keep track of when the view is attached or detached from the window, so we know it's
+        // safe to remove views (in case the user requests to delete this editor).
+        mIsAttachedToWindow = true;
+    }
+
+    @Override
+    protected void onDetachedFromWindow() {
+        super.onDetachedFromWindow();
+        mIsAttachedToWindow = false;
+    }
+
+    @Override
+    public void markDeleted() {
+        // Keep around in model, but mark as deleted
+        mEntry.markDeleted();
+    }
+
+    @Override
+    public void deleteEditor() {
+        markDeleted();
+
+        // Remove the view
+        EditorAnimator.getInstance().removeEditorView(this);
+    }
+
+    public boolean isReadOnly() {
+        return mReadOnly;
+    }
+
+    public int getBaseline(int row) {
+        if (row == 0 && mLabel != null) {
+            return mLabel.getBaseline();
+        }
+        return -1;
+    }
+
+    /**
+     * Configures the visibility of the type label button and enables or disables it properly.
+     */
+    private void setupLabelButton(boolean shouldExist) {
+        if (shouldExist) {
+            mLabel.setEnabled(!mReadOnly && isEnabled());
+            mLabel.setVisibility(View.VISIBLE);
+        } else {
+            mLabel.setVisibility(View.GONE);
+        }
+    }
+
+    /**
+     * Configures the visibility of the "delete" button and enables or disables it properly.
+     */
+    private void setupDeleteButton() {
+        if (mIsDeletable) {
+            mDeleteContainer.setVisibility(View.VISIBLE);
+            mDelete.setEnabled(!mReadOnly && isEnabled());
+        } else {
+            mDeleteContainer.setVisibility(View.GONE);
+        }
+    }
+
+    public void setDeleteButtonVisible(boolean visible) {
+        if (mIsDeletable) {
+            mDeleteContainer.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
+        }
+    }
+
+    protected void onOptionalFieldVisibilityChange() {
+        if (mListener != null) {
+            mListener.onRequest(EditorListener.EDITOR_FORM_CHANGED);
+        }
+    }
+
+    @Override
+    public void setEditorListener(EditorListener listener) {
+        mListener = listener;
+    }
+
+    protected EditorListener getEditorListener(){
+        return mListener;
+    }
+
+    @Override
+    public void setDeletable(boolean deletable) {
+        mIsDeletable = deletable;
+        setupDeleteButton();
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        super.setEnabled(enabled);
+        mLabel.setEnabled(!mReadOnly && enabled);
+        mDelete.setEnabled(!mReadOnly && enabled);
+    }
+
+    public Spinner getLabel() {
+        return mLabel;
+    }
+
+    public ImageView getDelete() {
+        return mDelete;
+    }
+
+    protected DataKind getKind() {
+        return mKind;
+    }
+
+    protected ValuesDelta getEntry() {
+        return mEntry;
+    }
+
+    protected EditType getType() {
+        return mType;
+    }
+
+    /**
+     * Build the current label state based on selected {@link EditType} and
+     * possible custom label string.
+     */
+    public void rebuildLabel() {
+        mEditTypeAdapter = new EditTypeAdapter(getContext());
+        mLabel.setAdapter(mEditTypeAdapter);
+        if (mEditTypeAdapter.hasCustomSelection()) {
+            mLabel.setSelection(mEditTypeAdapter.getPosition(CUSTOM_SELECTION));
+            mDeleteContainer.setContentDescription(
+                    getContext().getString(R.string.editor_delete_view_description,
+                            mEntry.getAsString(mType.customColumn),
+                            getContext().getString(mKind.titleRes)));
+        } else {
+            if (mType != null) {
+                mLabel.setSelection(mEditTypeAdapter.getPosition(mType));
+                mDeleteContainer.setContentDescription(
+                        getContext().getString(R.string.editor_delete_view_description,
+                                getContext().getString(mType.labelRes),
+                                getContext().getString(mKind.titleRes)));
+            } else {
+                mDeleteContainer.setContentDescription(
+                        getContext().getString(R.string.editor_delete_view_description_short,
+                                getContext().getString(mKind.titleRes)));
+            }
+
+        }
+    }
+
+    @Override
+    public void onFieldChanged(String column, String value) {
+        if (!isFieldChanged(column, value)) {
+            return;
+        }
+
+        // Field changes are saved directly
+        saveValue(column, value);
+
+        // Notify listener if applicable
+        notifyEditorListener();
+    }
+
+    protected void saveValue(String column, String value) {
+        mEntry.put(column, value);
+    }
+
+    /**
+     * Sub classes should call this at the end of {@link #setValues} once they finish changing
+     * isEmpty(). This is needed to fix b/18194655.
+     */
+    protected final void updateEmptiness() {
+        mWasEmpty = isEmpty();
+    }
+
+    protected void notifyEditorListener() {
+        if (mListener != null) {
+            mListener.onRequest(EditorListener.FIELD_CHANGED);
+        }
+
+        boolean isEmpty = isEmpty();
+        if (mWasEmpty != isEmpty) {
+            if (isEmpty) {
+                if (mListener != null) {
+                    mListener.onRequest(EditorListener.FIELD_TURNED_EMPTY);
+                }
+                if (mIsDeletable) mDeleteContainer.setVisibility(View.INVISIBLE);
+            } else {
+                if (mListener != null) {
+                    mListener.onRequest(EditorListener.FIELD_TURNED_NON_EMPTY);
+                }
+                if (mIsDeletable) mDeleteContainer.setVisibility(View.VISIBLE);
+            }
+            mWasEmpty = isEmpty;
+
+            // Update the label text color
+            if (mEditTypeAdapter != null) {
+                mEditTypeAdapter.notifyDataSetChanged();
+            }
+        }
+    }
+
+    protected boolean isFieldChanged(String column, String value) {
+        final String dbValue = mEntry.getAsString(column);
+        // nullable fields (e.g. Middle Name) are usually represented as empty columns,
+        // so lets treat null and empty space equivalently here
+        final String dbValueNoNull = dbValue == null ? "" : dbValue;
+        final String valueNoNull = value == null ? "" : value;
+        return !TextUtils.equals(dbValueNoNull, valueNoNull);
+    }
+
+    protected void rebuildValues() {
+        setValues(mKind, mEntry, mState, mReadOnly, mViewIdGenerator);
+    }
+
+    /**
+     * Prepare this editor using the given {@link DataKind} for defining structure and
+     * {@link ValuesDelta} describing the content to edit. When overriding this, be careful
+     * to call {@link #updateEmptiness} at the end.
+     */
+    @Override
+    public void setValues(DataKind kind, ValuesDelta entry, RawContactDelta state, boolean readOnly,
+            ViewIdGenerator vig) {
+        mKind = kind;
+        mEntry = entry;
+        mState = state;
+        mReadOnly = readOnly;
+        mViewIdGenerator = vig;
+        setId(vig.getId(state, kind, entry, ViewIdGenerator.NO_VIEW_INDEX));
+
+        if (!entry.isVisible()) {
+            // Hide ourselves entirely if deleted
+            setVisibility(View.GONE);
+            return;
+        }
+        setVisibility(View.VISIBLE);
+
+        // Display label selector if multiple types available
+        final boolean hasTypes = RawContactModifier.hasEditTypes(kind);
+        setupLabelButton(hasTypes);
+        mLabel.setEnabled(!readOnly && isEnabled());
+        mLabel.setContentDescription(getContext().getResources().getString(mKind.titleRes));
+
+        mType = RawContactModifier.getCurrentType(entry, kind);
+        rebuildLabel();
+    }
+
+    public ValuesDelta getValues() {
+        return mEntry;
+    }
+
+    /**
+     * Prepare dialog for entering a custom label. The input value is trimmed: white spaces before
+     * and after the input text is removed.
+     * <p>
+     * If the final value is empty, this change request is ignored;
+     * no empty text is allowed in any custom label.
+     */
+    private Dialog createCustomDialog() {
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
+        final LayoutInflater layoutInflater = LayoutInflater.from(builder.getContext());
+        builder.setTitle(R.string.customLabelPickerTitle);
+
+        final View view = layoutInflater.inflate(R.layout.contact_editor_label_name_dialog, null);
+        final EditText editText = (EditText) view.findViewById(R.id.custom_dialog_content);
+        editText.setInputType(INPUT_TYPE_CUSTOM);
+        editText.setSaveEnabled(true);
+
+        builder.setView(view);
+        editText.requestFocus();
+
+        builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                final String customText = editText.getText().toString().trim();
+                if (ContactsUtils.isGraphic(customText)) {
+                    final List<EditType> allTypes =
+                            RawContactModifier.getValidTypes(mState, mKind, null, true, null, true);
+                    mType = null;
+                    for (EditType editType : allTypes) {
+                        if (editType.customColumn != null) {
+                            mType = editType;
+                            break;
+                        }
+                    }
+                    if (mType == null) return;
+
+                    mEntry.put(mKind.typeColumn, mType.rawValue);
+                    mEntry.put(mType.customColumn, customText);
+                    rebuildLabel();
+                    requestFocusForFirstEditField();
+                    onLabelRebuilt();
+                }
+            }
+        });
+
+        builder.setNegativeButton(android.R.string.cancel, null);
+
+        final AlertDialog dialog = builder.create();
+        dialog.setOnShowListener(new OnShowListener() {
+            @Override
+            public void onShow(DialogInterface dialogInterface) {
+                updateCustomDialogOkButtonState(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) {
+                updateCustomDialogOkButtonState(dialog, editText);
+            }
+        });
+        dialog.getWindow().setSoftInputMode(
+                WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
+
+        return dialog;
+    }
+
+    /* package */ void updateCustomDialogOkButtonState(AlertDialog dialog, EditText editText) {
+        final Button okButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
+        okButton.setEnabled(!TextUtils.isEmpty(editText.getText().toString().trim()));
+    }
+
+    /**
+     * Called after the label has changed (either chosen from the list or entered in the Dialog)
+     */
+    protected void onLabelRebuilt() {
+    }
+
+    protected void onTypeSelectionChange(int position) {
+        EditType selected = mEditTypeAdapter.getItem(position);
+        // See if the selection has in fact changed
+        if (mEditTypeAdapter.hasCustomSelection() && selected == CUSTOM_SELECTION) {
+            return;
+        }
+
+        if (mType == selected && mType.customColumn == null) {
+            return;
+        }
+
+        if (selected.customColumn != null) {
+            showDialog(DIALOG_ID_CUSTOM);
+        } else {
+            // User picked type, and we're sure it's ok to actually write the entry.
+            mType = selected;
+            mEntry.put(mKind.typeColumn, mType.rawValue);
+            rebuildLabel();
+            requestFocusForFirstEditField();
+            onLabelRebuilt();
+        }
+    }
+
+    /* package */
+    void showDialog(int bundleDialogId) {
+        Bundle bundle = new Bundle();
+        bundle.putInt(DIALOG_ID_KEY, bundleDialogId);
+        getDialogManager().showDialogInView(this, bundle);
+    }
+
+    private DialogManager getDialogManager() {
+        if (mDialogManager == null) {
+            Context context = getContext();
+            if (!(context instanceof DialogManager.DialogShowingViewActivity)) {
+                throw new IllegalStateException(
+                        "View must be hosted in an Activity that implements " +
+                        "DialogManager.DialogShowingViewActivity");
+            }
+            mDialogManager = ((DialogManager.DialogShowingViewActivity)context).getDialogManager();
+        }
+        return mDialogManager;
+    }
+
+    @Override
+    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 DIALOG_ID_CUSTOM:
+                return createCustomDialog();
+            default:
+                throw new IllegalArgumentException("Invalid dialogId: " + dialogId);
+        }
+    }
+
+    protected abstract void requestFocusForFirstEditField();
+
+    private class EditTypeAdapter extends ArrayAdapter<EditType> {
+        private final LayoutInflater mInflater;
+        private boolean mHasCustomSelection;
+        private int mTextColorHintUnfocused;
+        private int mTextColorDark;
+
+        public EditTypeAdapter(Context context) {
+            super(context, 0);
+            mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+            mTextColorHintUnfocused = context.getResources().getColor(
+                    R.color.editor_disabled_text_color);
+            mTextColorDark = context.getResources().getColor(R.color.primary_text_color);
+
+
+            if (mType != null && mType.customColumn != null) {
+
+                // Use custom label string when present
+                final String customText = mEntry.getAsString(mType.customColumn);
+                if (customText != null) {
+                    add(CUSTOM_SELECTION);
+                    mHasCustomSelection = true;
+                }
+            }
+
+            addAll(RawContactModifier.getValidTypes(mState, mKind, mType, true, null, false));
+        }
+
+        public boolean hasCustomSelection() {
+            return mHasCustomSelection;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            final TextView view = createViewFromResource(
+                    position, convertView, parent, R.layout.edit_simple_spinner_item);
+            // We don't want any background on this view. The background would obscure
+            // the spinner's background.
+            view.setBackground(null);
+            // The text color should be a very light hint color when unfocused and empty. When
+            // focused and empty, use a less light hint color. When non-empty, use a dark non-hint
+            // color.
+            if (!LabeledEditorView.this.isEmpty()) {
+                view.setTextColor(mTextColorDark);
+            } else {
+                view.setTextColor(mTextColorHintUnfocused);
+            }
+            return view;
+        }
+
+        @Override
+        public View getDropDownView(int position, View convertView, ViewGroup parent) {
+            return createViewFromResource(
+                    position, convertView, parent, android.R.layout.simple_spinner_dropdown_item);
+        }
+
+        private TextView createViewFromResource(int position, View convertView, ViewGroup parent,
+                int resource) {
+            TextView textView;
+
+            if (convertView == null) {
+                textView = (TextView) mInflater.inflate(resource, parent, false);
+                textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(
+                        R.dimen.editor_form_text_size));
+                textView.setTextColor(mTextColorDark);
+            } else {
+                textView = (TextView) convertView;
+            }
+
+            EditType type = getItem(position);
+            String text;
+            if (type == CUSTOM_SELECTION) {
+                text = mEntry.getAsString(mType.customColumn);
+            } else {
+                text = getContext().getString(type.labelRes);
+            }
+            textView.setText(text);
+            return textView;
+        }
+    }
+}
diff --git a/src/com/android/contacts/editor/PhoneticNameEditorView.java b/src/com/android/contacts/editor/PhoneticNameEditorView.java
new file mode 100644
index 0000000..420575c
--- /dev/null
+++ b/src/com/android/contacts/editor/PhoneticNameEditorView.java
@@ -0,0 +1,154 @@
+/*
+ * 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/PhotoActionPopup.java b/src/com/android/contacts/editor/PhotoActionPopup.java
new file mode 100644
index 0000000..4f958f4
--- /dev/null
+++ b/src/com/android/contacts/editor/PhotoActionPopup.java
@@ -0,0 +1,166 @@
+/*
+ * 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.view.View;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.ArrayAdapter;
+import android.widget.ListAdapter;
+import android.widget.ListPopupWindow;
+
+import com.android.contacts.R;
+import com.android.contacts.util.PhoneCapabilityTester;
+import com.android.contacts.util.UiClosables;
+
+import java.util.ArrayList;
+
+/**
+ * Shows a popup asking the user what to do for a photo. The result is passed back to the Listener
+ */
+public class PhotoActionPopup {
+    public static final String TAG = "PhotoActionPopup";
+
+    /**
+     * Bitmask flags to specify which actions should be presented to the user.
+     */
+    public static final class Flags {
+        /** If set, show choice to remove photo. */
+        public static final int REMOVE_PHOTO = 2;
+        /** If set, show choices to take a picture with the camera, or pick one from the gallery. */
+        public static final int TAKE_OR_PICK_PHOTO = 4;
+        /**
+         *  If set, modifies the wording in the choices for TAKE_OR_PICK_PHOTO
+         *  to emphasize that the existing photo will be replaced.
+         */
+        public static final int TAKE_OR_PICK_PHOTO_REPLACE_WORDING = 8;
+    }
+
+    /**
+     * Convenient combinations of commonly-used flags (see {@link Flags}).
+     */
+    public static final class Modes {
+        public static final int NO_PHOTO =
+                Flags.TAKE_OR_PICK_PHOTO;
+        public static final int READ_ONLY_PHOTO = 0;
+        public static final int WRITE_ABLE_PHOTO =
+                Flags.REMOVE_PHOTO |
+                Flags.TAKE_OR_PICK_PHOTO |
+                Flags.TAKE_OR_PICK_PHOTO_REPLACE_WORDING;
+        // When the popup represents multiple photos, the REMOVE_PHOTO option doesn't make sense.
+        // The REMOVE_PHOTO option would have to remove all photos. And sometimes some of the
+        // photos are readonly.
+        public static final int MULTIPLE_WRITE_ABLE_PHOTOS =
+                Flags.TAKE_OR_PICK_PHOTO |
+                Flags.TAKE_OR_PICK_PHOTO_REPLACE_WORDING;
+    }
+
+    public static ArrayList<ChoiceListItem> getChoices(Context context, int mode) {
+        // Build choices, depending on the current mode. We assume this Dialog is never called
+        // if there are NO choices (e.g. a read-only picture is already super-primary)
+        final ArrayList<ChoiceListItem> choices = new ArrayList<ChoiceListItem>(4);
+        // Remove
+        if ((mode & Flags.REMOVE_PHOTO) > 0) {
+            choices.add(new ChoiceListItem(ChoiceListItem.ID_REMOVE,
+                    context.getString(R.string.removePhoto)));
+        }
+        // Take photo or pick one from the gallery.  Wording differs if there is already a photo.
+        if ((mode & Flags.TAKE_OR_PICK_PHOTO) > 0) {
+            boolean replace = (mode & Flags.TAKE_OR_PICK_PHOTO_REPLACE_WORDING) > 0;
+            final int takePhotoResId = replace ? R.string.take_new_photo : R.string.take_photo;
+            final String takePhotoString = context.getString(takePhotoResId);
+            final int pickPhotoResId = replace ? R.string.pick_new_photo : R.string.pick_photo;
+            final String pickPhotoString = context.getString(pickPhotoResId);
+            if (PhoneCapabilityTester.isCameraIntentRegistered(context)) {
+                choices.add(new ChoiceListItem(ChoiceListItem.ID_TAKE_PHOTO, takePhotoString));
+            }
+            choices.add(new ChoiceListItem(ChoiceListItem.ID_PICK_PHOTO, pickPhotoString));
+        }
+        return choices;
+    }
+
+    public static ListPopupWindow createPopupMenu(Context context, View anchorView,
+            final Listener listener, int mode) {
+        final ArrayList<ChoiceListItem> choices = getChoices(context, mode);
+
+        final ListAdapter adapter = new ArrayAdapter<ChoiceListItem>(context,
+                R.layout.select_dialog_item, choices);
+
+        final ListPopupWindow listPopupWindow = new ListPopupWindow(context);
+        final OnItemClickListener clickListener = new OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                final ChoiceListItem choice = choices.get(position);
+                switch (choice.getId()) {
+                    case ChoiceListItem.ID_REMOVE:
+                        listener.onRemovePictureChosen();
+                        break;
+                    case ChoiceListItem.ID_TAKE_PHOTO:
+                        listener.onTakePhotoChosen();
+                        break;
+                    case ChoiceListItem.ID_PICK_PHOTO:
+                        listener.onPickFromGalleryChosen();
+                        break;
+                }
+
+                UiClosables.closeQuietly(listPopupWindow);
+            }
+        };
+
+        listPopupWindow.setAnchorView(anchorView);
+        listPopupWindow.setAdapter(adapter);
+        listPopupWindow.setOnItemClickListener(clickListener);
+        listPopupWindow.setModal(true);
+        listPopupWindow.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED);
+        final int minWidth = context.getResources().getDimensionPixelSize(
+                R.dimen.photo_action_popup_min_width);
+        if (anchorView.getWidth() < minWidth) {
+            listPopupWindow.setWidth(minWidth);
+        }
+        return listPopupWindow;
+    }
+
+    public static final class ChoiceListItem {
+        private final int mId;
+        private final String mCaption;
+
+        public static final int ID_TAKE_PHOTO = 1;
+        public static final int ID_PICK_PHOTO = 2;
+        public static final int ID_REMOVE = 3;
+
+        public ChoiceListItem(int id, String caption) {
+            mId = id;
+            mCaption = caption;
+        }
+
+        @Override
+        public String toString() {
+            return mCaption;
+        }
+
+        public int getId() {
+            return mId;
+        }
+    }
+
+    public interface Listener {
+        void onRemovePictureChosen();
+        void onTakePhotoChosen();
+        void onPickFromGalleryChosen();
+    }
+}
diff --git a/src/com/android/contacts/editor/PhotoEditorView.java b/src/com/android/contacts/editor/PhotoEditorView.java
new file mode 100644
index 0000000..f69c935
--- /dev/null
+++ b/src/com/android/contacts/editor/PhotoEditorView.java
@@ -0,0 +1,275 @@
+/*
+ * 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.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.DisplayPhoto;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RadioButton;
+
+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;
+
+/**
+ * Simple editor for {@link Photo}.
+ */
+public class PhotoEditorView extends LinearLayout implements Editor {
+
+    private ImageView mPhotoImageView;
+    private Button mChangeButton;
+    private RadioButton mPrimaryCheckBox;
+
+    private ValuesDelta mEntry;
+    private EditorListener mListener;
+    private ContactPhotoManager mContactPhotoManager;
+
+    private boolean mHasSetPhoto = false;
+
+    public PhotoEditorView(Context context) {
+        super(context);
+    }
+
+    public PhotoEditorView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        super.setEnabled(enabled);
+    }
+
+    @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);
+                    }
+                }
+            });
+        }
+        // Turn off own state management. We do this ourselves on rotation.
+        mPrimaryCheckBox.setSaveEnabled(false);
+        mPrimaryCheckBox.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (mListener != null) {
+                    mListener.onRequest(EditorListener.REQUEST_PICK_PRIMARY_PHOTO);
+                }
+            }
+        });
+    }
+
+    /** {@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.
+     */
+    public void setShowPrimary(boolean showPrimaryCheckBox) {
+        mPrimaryCheckBox.setVisibility(showPrimaryCheckBox ? View.VISIBLE : View.GONE);
+    }
+
+    /**
+     * Return true if a valid {@link Photo} has been set.
+     */
+    public boolean hasSetPhoto() {
+        return mHasSetPhoto;
+    }
+
+    /**
+     * 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);
+        }
+    }
+
+    /**
+     * Bind the {@param photoUri}'s photo to editor's UI. This doesn't affect {@link ValuesDelta}.
+     */
+    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);
+        }
+    }
+
+    /**
+     * 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
new file mode 100644
index 0000000..c2ed3b4
--- /dev/null
+++ b/src/com/android/contacts/editor/PhotoSourceDialogFragment.java
@@ -0,0 +1,104 @@
+/*
+ * 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.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.view.View;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+
+/**
+ * Displays the options for changing the contact photo.
+ */
+public class PhotoSourceDialogFragment extends DialogFragment {
+
+    private static final String ARG_PHOTO_MODE = "photoMode";
+
+    /**
+     * Callbacks for the host of the {@link PhotoSourceDialogFragment}.
+     */
+    public interface Listener {
+        void onRemovePictureChosen();
+        void onTakePhotoChosen();
+        void onPickFromGalleryChosen();
+    }
+
+    public static void show(Activity activity, int photoMode) {
+        if (!(activity instanceof Listener)) {
+            throw new IllegalArgumentException(
+                    "Activity must implement " + Listener.class.getName());
+        }
+        final Bundle args = new Bundle();
+        args.putInt(ARG_PHOTO_MODE, photoMode);
+
+        PhotoSourceDialogFragment dialog = new PhotoSourceDialogFragment();
+        dialog.setArguments(args);
+        dialog.show(activity.getFragmentManager(), "photoSource");
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        // Get the available options for changing the photo
+        final int photoMode = getArguments().getInt(ARG_PHOTO_MODE);
+        final ArrayList<ChoiceListItem> choices =
+                PhotoActionPopup.getChoices(getActivity(), photoMode);
+
+        // Prepare the AlertDialog items and click listener
+        final CharSequence[] items = new CharSequence[choices.size()];
+        for (int i = 0; i < items.length; i++) {
+            items[i] = choices.get(i).toString();
+        }
+        final OnClickListener clickListener = new OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialogInterface, int which) {
+                final Listener listener = (Listener) getActivity();
+                final ChoiceListItem choice = choices.get(which);
+                switch (choice.getId()) {
+                    case ChoiceListItem.ID_REMOVE:
+                        listener.onRemovePictureChosen();
+                        break;
+                    case ChoiceListItem.ID_TAKE_PHOTO:
+                        listener.onTakePhotoChosen();
+                        break;
+                    case ChoiceListItem.ID_PICK_PHOTO:
+                        listener.onPickFromGalleryChosen();
+                        break;
+                }
+                dismiss();
+            }
+        };
+
+        // 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.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/RawContactDeltaComparator.java b/src/com/android/contacts/editor/RawContactDeltaComparator.java
new file mode 100644
index 0000000..1a00c9d
--- /dev/null
+++ b/src/com/android/contacts/editor/RawContactDeltaComparator.java
@@ -0,0 +1,133 @@
+/*
+ * 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 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 java.util.Comparator;
+
+/**
+ * Compares {@link RawContactDelta}s
+ */
+class RawContactDeltaComparator implements Comparator<RawContactDelta> {
+
+    private Context mContext;
+
+    public RawContactDeltaComparator(Context context) {
+        mContext = context;
+    }
+
+    @Override
+    public int compare(RawContactDelta one, RawContactDelta two) {
+        // Check direct equality
+        if (one.equals(two)) {
+            return 0;
+        }
+
+        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
+        String accountType1 = one.getValues().getAsString(RawContacts.ACCOUNT_TYPE);
+        String dataSet1 = one.getValues().getAsString(RawContacts.DATA_SET);
+        final AccountType type1 = accountTypes.getAccountType(accountType1, dataSet1);
+        String accountType2 = two.getValues().getAsString(RawContacts.ACCOUNT_TYPE);
+        String dataSet2 = two.getValues().getAsString(RawContacts.DATA_SET);
+        final AccountType type2 = accountTypes.getAccountType(accountType2, dataSet2);
+
+        // Check read-only. Sort read/write before read-only.
+        if (!type1.areContactsWritable() && type2.areContactsWritable()) {
+            return 1;
+        } else if (type1.areContactsWritable() && !type2.areContactsWritable()) {
+            return -1;
+        }
+
+        // Check account type. Sort Google before non-Google.
+        boolean skipAccountTypeCheck = false;
+        boolean isGoogleAccount1 = type1 instanceof GoogleAccountType;
+        boolean isGoogleAccount2 = type2 instanceof GoogleAccountType;
+        if (isGoogleAccount1 && !isGoogleAccount2) {
+            return -1;
+        } else if (!isGoogleAccount1 && isGoogleAccount2) {
+            return 1;
+        } else if (isGoogleAccount1 && isGoogleAccount2) {
+            skipAccountTypeCheck = true;
+        }
+
+        int value;
+        if (!skipAccountTypeCheck) {
+            // Sort accounts with type before accounts without types.
+            if (type1.accountType != null && type2.accountType == null) {
+                return -1;
+            } else if (type1.accountType == null && type2.accountType != null) {
+                return 1;
+            }
+
+            if (type1.accountType != null && type2.accountType != null) {
+                value = type1.accountType.compareTo(type2.accountType);
+                if (value != 0) {
+                    return value;
+                }
+            }
+
+            // Fall back to data set. Sort accounts with data sets before
+            // those without.
+            if (type1.dataSet != null && type2.dataSet == null) {
+                return -1;
+            } else if (type1.dataSet == null && type2.dataSet != null) {
+                return 1;
+            }
+
+            if (type1.dataSet != null && type2.dataSet != null) {
+                value = type1.dataSet.compareTo(type2.dataSet);
+                if (value != 0) {
+                    return value;
+                }
+            }
+        }
+
+        // Check account name
+        String oneAccount = one.getAccountName();
+        if (oneAccount == null) {
+            oneAccount = "";
+        }
+        String twoAccount = two.getAccountName();
+        if (twoAccount == null) {
+            twoAccount = "";
+        }
+        value = oneAccount.compareTo(twoAccount);
+        if (value != 0) {
+            return value;
+        }
+
+        // Both are in the same account, fall back to contact ID
+        Long oneId = one.getRawContactId();
+        Long twoId = two.getRawContactId();
+        if (oneId == null && twoId == null) {
+            return 0;
+        } else if (oneId == null) {
+            return -1;
+        } else if (twoId == null) {
+            return 1;
+        }
+
+        return Long.compare(oneId, twoId);
+    }
+}
diff --git a/src/com/android/contacts/editor/RawContactEditorView.java b/src/com/android/contacts/editor/RawContactEditorView.java
new file mode 100644
index 0000000..5a4c9db
--- /dev/null
+++ b/src/com/android/contacts/editor/RawContactEditorView.java
@@ -0,0 +1,401 @@
+/*
+ * 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.os.Bundle;
+import android.os.Parcelable;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import android.provider.ContactsContract.CommonDataKinds.Nickname;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.util.AttributeSet;
+import android.util.Pair;
+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.GroupMetaDataLoader;
+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.google.common.base.Objects;
+
+import java.util.ArrayList;
+
+/**
+ * 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.
+ */
+public class RawContactEditorView extends BaseRawContactEditorView {
+    private static final String KEY_SUPER_INSTANCE_STATE = "superInstanceState";
+
+    private LayoutInflater mInflater;
+
+    private StructuredNameEditorView mName;
+    private PhoneticNameEditorView mPhoneticName;
+    private TextFieldsEditorView mNickName;
+
+    private GroupMembershipView mGroupMembershipView;
+
+    private ViewGroup mFields;
+
+    private View mAccountSelector;
+    private TextView mAccountSelectorTypeTextView;
+    private TextView mAccountSelectorNameTextView;
+
+    private View mAccountHeader;
+    private TextView mAccountHeaderTypeTextView;
+    private TextView mAccountHeaderNameTextView;
+    private ImageView mAccountIconImageView;
+
+    private long mRawContactId = -1;
+    private boolean mAutoAddToDefaultGroup = true;
+    private Cursor mGroupMetaData;
+    private DataKind mGroupMembershipKind;
+    private RawContactDelta mState;
+
+    public RawContactEditorView(Context context) {
+        super(context);
+    }
+
+    public RawContactEditorView(Context context, AttributeSet attrs) {
+        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);
+        }
+    }
+
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+
+        mInflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+
+        mName = (StructuredNameEditorView)findViewById(R.id.edit_name);
+        mName.setDeletable(false);
+
+        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);
+    }
+
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        Bundle bundle = new Bundle();
+        // super implementation of onSaveInstanceState returns null
+        bundle.putParcelable(KEY_SUPER_INSTANCE_STATE, super.onSaveInstanceState());
+        return bundle;
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Parcelable state) {
+        if (state instanceof Bundle) {
+            Bundle bundle = (Bundle) state;
+            super.onRestoreInstanceState(bundle.getParcelable(KEY_SUPER_INSTANCE_STATE));
+            return;
+        }
+        super.onRestoreInstanceState(state);
+    }
+
+    /**
+     * 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) {
+
+        mState = state;
+
+        // Remove any existing sections
+        mFields.removeAllViews();
+
+        // Bail if invalid state or account type
+        if (state == null || type == null) return;
+
+        setId(vig.getId(state, null, null, ViewIdGenerator.NO_VIEW_INDEX));
+
+        // 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());
+        }
+
+        // Create editor sections for each possible data kind
+        for (DataKind kind : type.getSortedDataKinds()) {
+            // Skip kind of not editable
+            if (!kind.editable) continue;
+
+            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.
+                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);
+            }
+        }
+
+        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").
+     */
+    private void addToDefaultGroupIfNeeded() {
+        if (!mAutoAddToDefaultGroup || mGroupMetaData == null || mGroupMetaData.isClosed()
+                || mState == null) {
+            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;
+                }
+            }
+        }
+
+        if (!hasGroupMembership) {
+            long defaultGroupId = getDefaultGroupId();
+            if (defaultGroupId != -1) {
+                ValuesDelta entry = RawContactModifier.insertChild(mState, mGroupMembershipKind);
+                if (entry != null) {
+                    entry.setGroupRowId(defaultGroupId);
+                }
+            }
+        }
+    }
+
+    /**
+     * 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;
+                }
+            }
+        }
+        return -1;
+    }
+
+    public StructuredNameEditorView getNameEditor() {
+        return mName;
+    }
+
+    public TextFieldsEditorView getPhoneticNameEditor() {
+        return mPhoneticName;
+    }
+
+    public TextFieldsEditorView getNickNameEditor() {
+        return mNickName;
+    }
+
+    @Override
+    public long getRawContactId() {
+        return mRawContactId;
+    }
+}
diff --git a/src/com/android/contacts/editor/RawContactReadOnlyEditorView.java b/src/com/android/contacts/editor/RawContactReadOnlyEditorView.java
new file mode 100644
index 0000000..6e4c055
--- /dev/null
+++ b/src/com/android/contacts/editor/RawContactReadOnlyEditorView.java
@@ -0,0 +1,266 @@
+/*
+ * 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/SplitContactConfirmationDialogFragment.java b/src/com/android/contacts/editor/SplitContactConfirmationDialogFragment.java
new file mode 100644
index 0000000..f3d0ef4
--- /dev/null
+++ b/src/com/android/contacts/editor/SplitContactConfirmationDialogFragment.java
@@ -0,0 +1,91 @@
+/*
+ * 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.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.app.Fragment;
+import android.content.DialogInterface;
+import android.os.Bundle;
+
+import com.android.contacts.R;
+
+/**
+ * Shows a dialog asking the user whether to split the contact. The result is passed back
+ * to the Fragment that is configured by {@link Fragment#setTargetFragment(Fragment, int)}, which
+ * has to implement {@link SplitContactConfirmationDialogFragment.Listener}.
+ * Does not split the contact itself.
+ */
+public class SplitContactConfirmationDialogFragment extends DialogFragment {
+
+    private static final String ARG_HAS_PENDING_CHANGES = "hasPendingChanges";
+
+    /**
+     * Callbacks for the dialog host.
+     */
+    public interface Listener {
+
+        /**
+         * Invoked after the user has confirmed that they want to proceed with the split.
+         *
+         * @param hasPendingChanges whether there are unsaved changes in the underlying contact
+         *         that should be saved before the split.
+         */
+        void onSplitContactConfirmed(boolean hasPendingChanges);
+    }
+
+    public static void show(ContactEditorBaseFragment fragment, boolean hasPendingChanges) {
+        final Bundle args = new Bundle();
+        args.putBoolean(ARG_HAS_PENDING_CHANGES, hasPendingChanges);
+
+        final SplitContactConfirmationDialogFragment dialog = new
+                SplitContactConfirmationDialogFragment();
+        dialog.setTargetFragment(fragment, 0);
+        dialog.setArguments(args);
+        dialog.show(fragment.getFragmentManager(), "splitContact");
+    }
+
+    private boolean mHasPendingChanges;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mHasPendingChanges = getArguments().getBoolean(ARG_HAS_PENDING_CHANGES);
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        builder.setMessage(mHasPendingChanges
+                ? R.string.splitConfirmationWithPendingChanges
+                : R.string.splitConfirmation);
+        builder.setPositiveButton(mHasPendingChanges
+                ? R.string.splitConfirmationWithPendingChanges_positive_button
+                : R.string.splitConfirmation_positive_button,
+                new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        final Listener targetListener = (Listener) getTargetFragment();
+                        targetListener.onSplitContactConfirmed(mHasPendingChanges);
+                    }
+                });
+        builder.setNegativeButton(android.R.string.cancel, null);
+        builder.setCancelable(false);
+        return builder.create();
+    }
+}
diff --git a/src/com/android/contacts/editor/StructuredNameEditorView.java b/src/com/android/contacts/editor/StructuredNameEditorView.java
new file mode 100644
index 0000000..1a9c693
--- /dev/null
+++ b/src/com/android/contacts/editor/StructuredNameEditorView.java
@@ -0,0 +1,311 @@
+/*
+ * 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 com.android.contacts.R;
+import android.content.ContentValues;
+import android.content.Context;
+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;
+
+/**
+ * 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".
+ */
+public class StructuredNameEditorView extends TextFieldsEditorView {
+
+    private StructuredNameDataItem mSnapshot;
+    private boolean mChanged;
+
+    public StructuredNameEditorView(Context context) {
+        super(context);
+    }
+
+    public StructuredNameEditorView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public StructuredNameEditorView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    @Override
+    public void setValues(DataKind kind, ValuesDelta entry, RawContactDelta state, boolean readOnly,
+            ViewIdGenerator vig) {
+        super.setValues(kind, entry, state, readOnly, vig);
+        if (mSnapshot == null) {
+            mSnapshot = (StructuredNameDataItem) DataItem.createFrom(
+                    new ContentValues(getValues().getCompleteValues()));
+            mChanged = entry.isInsert();
+        } else {
+            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()));
+    }
+
+    @Override
+    public void onFieldChanged(String column, String value) {
+        if (!isFieldChanged(column, value)) {
+            return;
+        }
+
+        // First save the new value for the column.
+        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).
+        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();
+    }
+
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        SavedState state = new SavedState(super.onSaveInstanceState());
+        state.mChanged = mChanged;
+        state.mSnapshot = mSnapshot.getContentValues();
+        return state;
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Parcelable state) {
+        SavedState ss = (SavedState) state;
+        super.onRestoreInstanceState(ss.mSuperState);
+
+        mChanged = ss.mChanged;
+        mSnapshot = (StructuredNameDataItem) DataItem.createFrom(ss.mSnapshot);
+    }
+
+    private static class SavedState implements Parcelable {
+        public boolean mChanged;
+        public ContentValues mSnapshot;
+        public Parcelable mSuperState;
+
+        SavedState(Parcelable superState) {
+            mSuperState = superState;
+        }
+
+        private SavedState(Parcel in) {
+            ClassLoader loader = getClass().getClassLoader();
+            mSuperState = in.readParcelable(loader);
+
+            mChanged = in.readInt() != 0;
+            mSnapshot = in.readParcelable(loader);
+        }
+
+        @Override
+        public void writeToParcel(Parcel out, int flags) {
+            out.writeParcelable(mSuperState, 0);
+
+            out.writeInt(mChanged ? 1 : 0);
+            out.writeParcelable(mSnapshot, 0);
+        }
+
+        @SuppressWarnings({"unused"})
+        public static final Parcelable.Creator<SavedState> CREATOR
+                = new Parcelable.Creator<SavedState>() {
+            @Override
+            public SavedState createFromParcel(Parcel in) {
+                return new SavedState(in);
+            }
+
+            @Override
+            public SavedState[] newArray(int size) {
+                return new SavedState[size];
+            }
+        };
+
+        @Override
+        public int describeContents() {
+            return 0;
+        }
+    }
+}
diff --git a/src/com/android/contacts/editor/SuggestionEditConfirmationDialogFragment.java b/src/com/android/contacts/editor/SuggestionEditConfirmationDialogFragment.java
new file mode 100644
index 0000000..c13d5ea
--- /dev/null
+++ b/src/com/android/contacts/editor/SuggestionEditConfirmationDialogFragment.java
@@ -0,0 +1,63 @@
+/*
+ * 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.net.Uri;
+import android.os.Bundle;
+
+public class SuggestionEditConfirmationDialogFragment extends DialogFragment {
+
+    private static final String ARG_CONTACT_URI = "contactUri";
+
+    public static void show(ContactEditorBaseFragment fragment, Uri contactUri) {
+        final Bundle args = new Bundle();
+        args.putParcelable(ARG_CONTACT_URI, contactUri);
+
+        final SuggestionEditConfirmationDialogFragment dialog = new
+                SuggestionEditConfirmationDialogFragment();
+        dialog.setArguments(args);
+        dialog.setTargetFragment(fragment, 0);
+        dialog.show(fragment.getFragmentManager(), "edit");
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        return new AlertDialog.Builder(getActivity())
+                .setIconAttribute(android.R.attr.alertDialogIcon)
+                .setMessage(R.string.aggregation_suggestion_edit_dialog_message)
+                .setPositiveButton(android.R.string.yes,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int whichButton) {
+                                final ContactEditorBaseFragment targetFragment =
+                                        (ContactEditorBaseFragment) getTargetFragment();
+                                final Uri contactUri =
+                                        getArguments().getParcelable(ARG_CONTACT_URI);
+                                targetFragment.doEditSuggestedContact(contactUri);
+                            }
+                        }
+                )
+                .setNegativeButton(android.R.string.no, null)
+                .create();
+    }
+}
diff --git a/src/com/android/contacts/editor/TextFieldsEditorView.java b/src/com/android/contacts/editor/TextFieldsEditorView.java
new file mode 100644
index 0000000..df201e1
--- /dev/null
+++ b/src/com/android/contacts/editor/TextFieldsEditorView.java
@@ -0,0 +1,437 @@
+/*
+ * 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.graphics.Rect;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.provider.ContactsContract;
+import android.text.Editable;
+import android.text.InputType;
+import android.text.Spannable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.text.style.TtsSpan;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+
+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;
+
+/**
+ * Simple editor that handles labels and any {@link EditField} defined for the
+ * entry. Uses {@link ValuesDelta} to read any existing {@link RawContact} values,
+ * and to correctly write any changes values.
+ */
+public class TextFieldsEditorView extends LabeledEditorView {
+    private static final String TAG = TextFieldsEditorView.class.getSimpleName();
+
+    private EditText[] mFieldEditTexts = null;
+    private ViewGroup mFields = null;
+    private View mExpansionViewContainer;
+    private ImageView mExpansionView;
+    private boolean mHideOptional = true;
+    private boolean mHasShortAndLongForms;
+    private int mMinFieldHeight;
+    private int mPreviousViewHeight;
+    private int mHintTextColorUnfocused;
+
+    public TextFieldsEditorView(Context context) {
+        super(context);
+    }
+
+    public TextFieldsEditorView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public TextFieldsEditorView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+
+        setDrawingCacheEnabled(true);
+        setAlwaysDrawnWithCacheEnabled(true);
+
+        mMinFieldHeight = getContext().getResources().getDimensionPixelSize(
+                R.dimen.editor_min_line_item_height);
+        mFields = (ViewGroup) findViewById(R.id.editors);
+        mHintTextColorUnfocused = getResources().getColor(R.color.editor_disabled_text_color);
+        mExpansionView = (ImageView) findViewById(R.id.expansion_view);
+        mExpansionViewContainer = findViewById(R.id.expansion_view_container);
+        if (mExpansionViewContainer != null) {
+            mExpansionViewContainer.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    mPreviousViewHeight = mFields.getHeight();
+
+                    // Save focus
+                    final View focusedChild = getFocusedChild();
+                    final int focusedViewId = focusedChild == null ? -1 : focusedChild.getId();
+
+                    // Reconfigure GUI
+                    mHideOptional = !mHideOptional;
+                    onOptionalFieldVisibilityChange();
+                    rebuildValues();
+
+                    // Restore focus
+                    View newFocusView = findViewById(focusedViewId);
+                    if (newFocusView == null || newFocusView.getVisibility() == GONE) {
+                        // find first visible child
+                        newFocusView = TextFieldsEditorView.this;
+                    }
+                    newFocusView.requestFocus();
+
+                    EditorAnimator.getInstance().slideAndFadeIn(mFields, mPreviousViewHeight);
+                }
+            });
+        }
+    }
+
+    @Override
+    public void editNewlyAddedField() {
+        // Some editors may have multiple fields (eg: first-name/last-name), but since the user
+        // has not selected a particular one, it is reasonable to simply pick the first.
+        final View editor = mFields.getChildAt(0);
+
+        // Show the soft-keyboard.
+        InputMethodManager imm =
+                (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
+        if (imm != null) {
+            if (!imm.showSoftInput(editor, InputMethodManager.SHOW_IMPLICIT)) {
+                Log.w(TAG, "Failed to show soft input method.");
+            }
+        }
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        super.setEnabled(enabled);
+
+        if (mFieldEditTexts != null) {
+            for (int index = 0; index < mFieldEditTexts.length; index++) {
+                mFieldEditTexts[index].setEnabled(!isReadOnly() && enabled);
+            }
+        }
+        if (mExpansionView != null) {
+            mExpansionView.setEnabled(!isReadOnly() && enabled);
+        }
+    }
+
+    private OnFocusChangeListener mTextFocusChangeListener = new OnFocusChangeListener() {
+        @Override
+        public void onFocusChange(View v, boolean hasFocus) {
+            if (getEditorListener() != null) {
+                getEditorListener().onRequest(EditorListener.EDITOR_FOCUS_CHANGED);
+            }
+            // Rebuild the label spinner using the new colors.
+            rebuildLabel();
+        }
+    };
+
+    /**
+     * 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);
+        mExpansionViewContainer.setVisibility(shouldExist ? View.VISIBLE : View.INVISIBLE);
+    }
+
+    @Override
+    protected void requestFocusForFirstEditField() {
+        if (mFieldEditTexts != null && mFieldEditTexts.length != 0) {
+            EditText firstField = null;
+            boolean anyFieldHasFocus = false;
+            for (EditText editText : mFieldEditTexts) {
+                if (firstField == null && editText.getVisibility() == View.VISIBLE) {
+                    firstField = editText;
+                }
+                if (editText.hasFocus()) {
+                    anyFieldHasFocus = true;
+                    break;
+                }
+            }
+            if (!anyFieldHasFocus && firstField != null) {
+                firstField.requestFocus();
+            }
+        }
+    }
+
+    public void setValue(int field, String value) {
+        mFieldEditTexts[field].setText(value);
+    }
+
+    @Override
+    public void setValues(DataKind kind, ValuesDelta entry, RawContactDelta state, boolean readOnly,
+            ViewIdGenerator vig) {
+        super.setValues(kind, entry, state, readOnly, vig);
+        // Remove edit texts that we currently have
+        if (mFieldEditTexts != null) {
+            for (EditText fieldEditText : mFieldEditTexts) {
+                mFields.removeView(fieldEditText);
+            }
+        }
+        boolean hidePossible = false;
+
+        int fieldCount = kind.fieldList == null ? 0 : kind.fieldList.size();
+        mFieldEditTexts = new EditText[fieldCount];
+        for (int index = 0; index < fieldCount; index++) {
+            final EditField field = kind.fieldList.get(index);
+            final EditText fieldView = new EditText(getContext());
+            fieldView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
+                    LayoutParams.WRAP_CONTENT));
+            fieldView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+                    getResources().getDimension(R.dimen.editor_form_text_size));
+            fieldView.setHintTextColor(mHintTextColorUnfocused);
+            mFieldEditTexts[index] = fieldView;
+            fieldView.setId(vig.getId(state, kind, entry, index));
+            if (field.titleRes > 0) {
+                fieldView.setHint(field.titleRes);
+            }
+            int inputType = field.inputType;
+            fieldView.setInputType(inputType);
+            if (inputType == InputType.TYPE_CLASS_PHONE) {
+                PhoneNumberFormatter.setPhoneNumberFormattingTextWatcher(
+                        getContext(), fieldView, /* formatAfterWatcherSet =*/ false);
+                fieldView.setTextDirection(View.TEXT_DIRECTION_LTR);
+            }
+            fieldView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
+
+            // Set either a minimum line requirement or a minimum height (because {@link TextView}
+            // only takes one or the other at a single time).
+            if (field.minLines > 1) {
+                fieldView.setMinLines(field.minLines);
+            } else {
+                // This needs to be called after setInputType. Otherwise, calling setInputType
+                // will unset this value.
+                fieldView.setMinHeight(mMinFieldHeight);
+            }
+
+            // Show the "next" button in IME to navigate between text fields
+            // TODO: Still need to properly navigate to/from sections without text fields,
+            // See Bug: 5713510
+            fieldView.setImeOptions(EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NO_FULLSCREEN);
+
+            // Read current value from state
+            final String column = field.column;
+            final String value = entry.getAsString(column);
+            if (ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE.equals(kind.mimeType)) {
+                fieldView.setText(PhoneNumberUtilsCompat.createTtsSpannable(value));
+            } else {
+                fieldView.setText(value);
+            }
+
+            // Show the delete button if we have a non-empty value
+            setDeleteButtonVisible(!TextUtils.isEmpty(value));
+
+            // Prepare listener for writing changes
+            fieldView.addTextChangedListener(new TextWatcher() {
+                @Override
+                public void afterTextChanged(Editable s) {
+                    // Trigger event for newly changed value
+                    onFieldChanged(column, s.toString());
+                }
+
+                @Override
+                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+                }
+
+                @Override
+                public void onTextChanged(CharSequence s, int start, int before, int count) {
+                    if (!ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE.equals(
+                            getKind().mimeType) || !(s instanceof Spannable)) {
+                        return;
+                    }
+                    final Spannable spannable = (Spannable) s;
+                    final TtsSpan[] spans = spannable.getSpans(0, s.length(), TtsSpan.class);
+                    for (int i = 0; i < spans.length; i++) {
+                        spannable.removeSpan(spans[i]);
+                    }
+                    PhoneNumberUtilsCompat.addTtsSpan(spannable, 0, s.length());
+                }
+            });
+
+            fieldView.setEnabled(isEnabled() && !readOnly);
+            fieldView.setOnFocusChangeListener(mTextFocusChangeListener);
+
+            if (field.shortForm) {
+                hidePossible = true;
+                mHasShortAndLongForms = true;
+                fieldView.setVisibility(mHideOptional ? View.VISIBLE : View.GONE);
+            } else if (field.longForm) {
+                hidePossible = true;
+                mHasShortAndLongForms = true;
+                fieldView.setVisibility(mHideOptional ? View.GONE : View.VISIBLE);
+            } else {
+                // Hide field when empty and optional value
+                final boolean couldHide = (!ContactsUtils.isGraphic(value) && field.optional);
+                final boolean willHide = (mHideOptional && couldHide);
+                fieldView.setVisibility(willHide ? View.GONE : View.VISIBLE);
+                hidePossible = hidePossible || couldHide;
+            }
+
+            mFields.addView(fieldView);
+        }
+
+        if (mExpansionView != null) {
+            // When hiding fields, place expandable
+            setupExpansionView(hidePossible, mHideOptional);
+            mExpansionView.setEnabled(!readOnly && isEnabled());
+        }
+        updateEmptiness();
+    }
+
+    @Override
+    public boolean isEmpty() {
+        for (int i = 0; i < mFields.getChildCount(); i++) {
+            EditText editText = (EditText) mFields.getChildAt(i);
+            if (!TextUtils.isEmpty(editText.getText())) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Returns true if the editor is currently configured to show optional fields.
+     */
+    public boolean areOptionalFieldsVisible() {
+        return !mHideOptional;
+    }
+
+    public boolean hasShortAndLongForms() {
+        return mHasShortAndLongForms;
+    }
+
+    /**
+     * Populates the bound rectangle with the bounds of the last editor field inside this view.
+     */
+    public void acquireEditorBounds(Rect bounds) {
+        if (mFieldEditTexts != null) {
+            for (int i = mFieldEditTexts.length; --i >= 0;) {
+                EditText editText = mFieldEditTexts[i];
+                if (editText.getVisibility() == View.VISIBLE) {
+                    bounds.set(editText.getLeft(), editText.getTop(), editText.getRight(),
+                            editText.getBottom());
+                    return;
+                }
+            }
+        }
+    }
+
+    /**
+     * Saves the visibility of the child EditTexts, and mHideOptional.
+     */
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        Parcelable superState = super.onSaveInstanceState();
+        SavedState ss = new SavedState(superState);
+
+        ss.mHideOptional = mHideOptional;
+
+        final int numChildren = mFieldEditTexts == null ? 0 : mFieldEditTexts.length;
+        ss.mVisibilities = new int[numChildren];
+        for (int i = 0; i < numChildren; i++) {
+            ss.mVisibilities[i] = mFieldEditTexts[i].getVisibility();
+        }
+
+        return ss;
+    }
+
+    /**
+     * Restores the visibility of the child EditTexts, and mHideOptional.
+     */
+    @Override
+    protected void onRestoreInstanceState(Parcelable state) {
+        SavedState ss = (SavedState) state;
+        super.onRestoreInstanceState(ss.getSuperState());
+
+        mHideOptional = ss.mHideOptional;
+
+        int numChildren = Math.min(mFieldEditTexts == null ? 0 : mFieldEditTexts.length,
+                ss.mVisibilities == null ? 0 : ss.mVisibilities.length);
+        for (int i = 0; i < numChildren; i++) {
+            mFieldEditTexts[i].setVisibility(ss.mVisibilities[i]);
+        }
+    }
+
+    private static class SavedState extends BaseSavedState {
+        public boolean mHideOptional;
+        public int[] mVisibilities;
+
+        SavedState(Parcelable superState) {
+            super(superState);
+        }
+
+        private SavedState(Parcel in) {
+            super(in);
+            mVisibilities = new int[in.readInt()];
+            in.readIntArray(mVisibilities);
+        }
+
+        @Override
+        public void writeToParcel(Parcel out, int flags) {
+            super.writeToParcel(out, flags);
+            out.writeInt(mVisibilities.length);
+            out.writeIntArray(mVisibilities);
+        }
+
+        @SuppressWarnings({"unused", "hiding" })
+        public static final Parcelable.Creator<SavedState> CREATOR
+                = new Parcelable.Creator<SavedState>() {
+            @Override
+            public SavedState createFromParcel(Parcel in) {
+                return new SavedState(in);
+            }
+
+            @Override
+            public SavedState[] newArray(int size) {
+                return new SavedState[size];
+            }
+        };
+    }
+
+    @Override
+    public void clearAllFields() {
+        if (mFieldEditTexts != null) {
+            for (EditText fieldEditText : mFieldEditTexts) {
+                // Update UI (which will trigger a state change through the {@link TextWatcher})
+                fieldEditText.setText("");
+            }
+        }
+    }
+}
diff --git a/src/com/android/contacts/editor/ViewIdGenerator.java b/src/com/android/contacts/editor/ViewIdGenerator.java
new file mode 100644
index 0000000..e7e7948
--- /dev/null
+++ b/src/com/android/contacts/editor/ViewIdGenerator.java
@@ -0,0 +1,131 @@
+/*
+ * 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.os.Bundle;
+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;
+
+/**
+ * A class that provides unique view ids for {@link ContentEditorView}, {@link KindSectionView},
+ * {@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.
+ *
+ * <p>This class is not thread safe.
+ */
+public final class ViewIdGenerator implements Parcelable {
+    private static final int INVALID_VIEW_ID = 0;
+    private static final int INITIAL_VIEW_ID = 1;
+
+    public static final int NO_VIEW_INDEX = -1;
+
+    private int mNextId;
+
+    /**
+     * Used as a map from the "key" of the views to actual ids.  {@link #getId()} generates keys for
+     * the views.
+     */
+    private Bundle mIdMap = new Bundle();
+
+    private static final char KEY_SEPARATOR = '*';
+
+    private final static StringBuilder sWorkStringBuilder = new StringBuilder();
+
+    public ViewIdGenerator() {
+        mNextId = INITIAL_VIEW_ID;
+    }
+
+    /** {@inheritDoc} */
+    public int describeContents() {
+        return 0;
+    }
+
+    /**
+     * Returns an id for a view associated with specified contact field.
+     *
+     * @param entity {@link RawContactDelta} associated with the view
+     * @param kind {@link DataKind} associated with the view, or null if none exists.
+     * @param values {@link ValuesDelta} associated with the view, or null if none exists.
+     * @param viewIndex index of the view in the parent {@link Editor}, if it's a leave view.
+     *     Otherwise, pass {@link #NO_VIEW_INDEX}.
+     */
+    public int getId(RawContactDelta entity, DataKind kind, ValuesDelta values,
+            int viewIndex) {
+        final String k = getMapKey(entity, kind, values, viewIndex);
+
+        int id = mIdMap.getInt(k, INVALID_VIEW_ID);
+        if (id == INVALID_VIEW_ID) {
+            // Make sure the new id won't conflict with auto-generated ids by masking with 0xffff.
+            id = (mNextId++) & 0xFFFF;
+            mIdMap.putInt(k, id);
+        }
+        return id;
+    }
+
+    private static String getMapKey(RawContactDelta entity, DataKind kind, ValuesDelta values,
+            int viewIndex) {
+        sWorkStringBuilder.setLength(0);
+        if (entity != null) {
+            sWorkStringBuilder.append(entity.getValues().getId());
+
+            if (kind != null) {
+                sWorkStringBuilder.append(KEY_SEPARATOR);
+                sWorkStringBuilder.append(kind.mimeType);
+
+                if (values != null) {
+                    sWorkStringBuilder.append(KEY_SEPARATOR);
+                    sWorkStringBuilder.append(values.getId());
+
+                    if (viewIndex != NO_VIEW_INDEX) {
+                        sWorkStringBuilder.append(KEY_SEPARATOR);
+                        sWorkStringBuilder.append(viewIndex);
+                    }
+                }
+            }
+        }
+        return sWorkStringBuilder.toString();
+    }
+
+    /** {@Override} */
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeInt(mNextId);
+        dest.writeBundle(mIdMap);
+    }
+
+    private void readFromParcel(Parcel src) {
+        mNextId = src.readInt();
+        mIdMap = src.readBundle();
+    }
+
+    public static final Parcelable.Creator<ViewIdGenerator> CREATOR =
+            new Parcelable.Creator<ViewIdGenerator>() {
+        public ViewIdGenerator createFromParcel(Parcel in) {
+            final ViewIdGenerator vig = new ViewIdGenerator();
+            vig.readFromParcel(in);
+            return vig;
+        }
+
+        public ViewIdGenerator[] newArray(int size) {
+            return new ViewIdGenerator[size];
+        }
+    };
+}
diff --git a/src/com/android/contacts/editor/ViewSelectedFilter.java b/src/com/android/contacts/editor/ViewSelectedFilter.java
new file mode 100644
index 0000000..85b1a96
--- /dev/null
+++ b/src/com/android/contacts/editor/ViewSelectedFilter.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.editor;
+
+import android.view.View;
+import android.view.View.AccessibilityDelegate;
+import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityEvent;
+
+/**
+ * This is an AccessibilityDelegate that filters out the TYPE_VIEW_SELECTED event.
+ */
+public class ViewSelectedFilter extends AccessibilityDelegate {
+    private View mView; //the view we don't want TYPE_VIEW_SELECTED event to fire.
+
+    private ViewSelectedFilter(View view) {
+        super();
+        mView = view;
+    }
+
+    /**
+     * AccessibilityEvent can only be suppressed at a view's parent, so this function adds the
+     * delegate to the view's parent.
+     * @param view the view whose TYPE_VIEW_SELECTED event should be suppressed.
+     */
+    public static void suppressViewSelectedEvent(View view) {
+        final View parent = (View) view.getParent();
+        parent.setAccessibilityDelegate(new ViewSelectedFilter(view));
+    }
+
+    @Override
+    public boolean onRequestSendAccessibilityEvent(
+            ViewGroup host, View child,AccessibilityEvent event) {
+        if (child == mView && event.getEventType() == AccessibilityEvent.TYPE_VIEW_SELECTED) {
+            return false;
+        }
+        return super.onRequestSendAccessibilityEvent(host, child, event);
+    }
+}
diff --git a/src/com/android/contacts/group/GroupListItem.java b/src/com/android/contacts/group/GroupListItem.java
new file mode 100644
index 0000000..f2359b6
--- /dev/null
+++ b/src/com/android/contacts/group/GroupListItem.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.group;
+
+/**
+ * Meta-data for a contact group.  We load all groups associated with the contact's
+ * constituent accounts.
+ */
+public final class GroupListItem {
+    private final String mAccountName;
+    private final String mAccountType;
+    private final String mDataSet;
+    private final long mGroupId;
+    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, boolean isReadOnly,
+            String systemId) {
+        mAccountName = accountName;
+        mAccountType = accountType;
+        mDataSet = dataSet;
+        mGroupId = groupId;
+        mTitle = title;
+        mIsFirstGroupInAccount = isFirstGroupInAccount;
+        mMemberCount = memberCount;
+        mIsReadOnly = isReadOnly;
+        mSystemId = systemId;
+    }
+
+    public String getAccountName() {
+        return mAccountName;
+    }
+
+    public String getAccountType() {
+        return mAccountType;
+    }
+
+    public String getDataSet() {
+        return mDataSet;
+    }
+
+    public long getGroupId() {
+        return mGroupId;
+    }
+
+    public String getTitle() {
+        return mTitle;
+    }
+
+    public int getMemberCount() {
+        return mMemberCount;
+    }
+
+    public boolean hasMemberCount() {
+        return mMemberCount != -1;
+    }
+
+    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..af1f61e
--- /dev/null
+++ b/src/com/android/contacts/group/GroupMembersAdapter.java
@@ -0,0 +1,190 @@
+/*
+ * 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.common.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.common.R;
+import com.android.contacts.common.list.ContactListItemView;
+import com.android.contacts.common.list.MultiSelectEntryContactListAdapter;
+import com.android.contacts.common.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);
+        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 bindPhoto(final ContactListItemView view, Cursor cursor) {
+        final long photoId = cursor.isNull(GroupMembersQuery.CONTACT_PHOTO_ID)
+                ? 0 : cursor.getLong(GroupMembersQuery.CONTACT_PHOTO_ID);
+        final DefaultImageRequest imageRequest = photoId == 0
+                ? getDefaultImageRequestFromCursor(cursor, GroupMembersQuery.CONTACT_DISPLAY_NAME,
+                        GroupMembersQuery.CONTACT_LOOKUP_KEY)
+                : null;
+        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, getCircularPhotos(),
+                imageRequest);
+    }
+
+    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..769a083
--- /dev/null
+++ b/src/com/android/contacts/group/GroupMembersFragment.java
@@ -0,0 +1,420 @@
+/*
+ * 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.CursorLoader;
+import android.content.Loader;
+import android.database.Cursor;
+import android.database.CursorWrapper;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract.Contacts;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+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 com.android.contacts.GroupMetaDataLoader;
+import com.android.contacts.R;
+import com.android.contacts.activities.GroupMembersActivity;
+import com.android.contacts.common.list.ContactsSectionIndexer;
+import com.android.contacts.common.list.MultiSelectEntryContactListAdapter;
+import com.android.contacts.common.logging.ListEvent.ListType;
+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.group.GroupMembersAdapter.GroupMembersQuery;
+import com.android.contacts.list.MultiSelectContactsListFragment;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/** Displays the members of a group. */
+public class GroupMembersFragment extends MultiSelectContactsListFragment<GroupMembersAdapter>
+        implements MultiSelectEntryContactListAdapter.DeleteContactListener {
+
+    private static final String TAG = "GroupMembers";
+
+    private static final String KEY_GROUP_URI = "groupUri";
+    private static final String KEY_GROUP_METADATA = "groupMetadata";
+
+    private static final String ARG_GROUP_URI = "groupUri";
+
+    private static final int LOADER_GROUP_METADATA = 0;
+
+    /** Callbacks for hosts of {@link GroupMembersFragment}. */
+    public interface GroupMembersListener {
+
+        /** Invoked after group metadata for the passed in group URI has loaded. */
+        void onGroupMetadataLoaded(GroupMetadata groupMetadata);
+
+        /** Invoked if group metadata can't be loaded for the passed in group URI. */
+        void onGroupMetadataLoadFailed();
+
+        /** Invoked when a group member in the list is clicked. */
+        void onGroupMemberListItemClicked(int position, Uri contactLookupUri);
+
+        /** Invoked when a the delete button for a group member in the list is clicked. */
+        void onGroupMemberListItemDeleted(int position, long contactId);
+    }
+
+    /** 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(getActivity(), 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);
+                if (mListener != null) {
+                    mListener.onGroupMetadataLoadFailed();
+                }
+                return;
+            }
+            mGroupMetadata = new GroupMetadata();
+            mGroupMetadata.uri = mGroupUri;
+            mGroupMetadata.accountName = cursor.getString(GroupMetaDataLoader.ACCOUNT_NAME);
+            mGroupMetadata.accountType = cursor.getString(GroupMetaDataLoader.ACCOUNT_TYPE);
+            mGroupMetadata.dataSet = cursor.getString(GroupMetaDataLoader.DATA_SET);
+            mGroupMetadata.groupId = cursor.getLong(GroupMetaDataLoader.GROUP_ID);
+            mGroupMetadata.groupName = cursor.getString(GroupMetaDataLoader.TITLE);
+            mGroupMetadata.readOnly = cursor.getInt(GroupMetaDataLoader.IS_READ_ONLY) == 1;
+
+            final AccountTypeManager accountTypeManager =
+                    AccountTypeManager.getInstance(getActivity());
+            final AccountType accountType = accountTypeManager.getAccountType(
+                    mGroupMetadata.accountType, mGroupMetadata.dataSet);
+            mGroupMetadata.editable = accountType.isGroupMembershipEditable();
+
+            onGroupMetadataLoaded();
+        }
+
+        @Override
+        public void onLoaderReset(Loader<Cursor> loader) {}
+    };
+
+    private Uri mGroupUri;
+
+    private GroupMembersListener mListener;
+
+    private GroupMetadata mGroupMetadata;
+
+    private Set<String> mGroupMemberContactIds = new HashSet();
+
+    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);
+    }
+
+    public void setListener(GroupMembersListener listener) {
+        mListener = listener;
+    }
+
+    public void displayDeleteButtons(boolean displayDeleteButtons) {
+        getAdapter().setDisplayDeleteButtons(displayDeleteButtons);
+    }
+
+    public ArrayList<String> getMemberContactIds() {
+        return  new ArrayList<>(mGroupMemberContactIds);
+    }
+
+    public int getMemberCount() {
+        return mGroupMemberContactIds.size();
+    }
+
+    @Override
+    public void onCreate(Bundle savedState) {
+        super.onCreate(savedState);
+        if (savedState == null) {
+            mGroupUri = getArguments().getParcelable(ARG_GROUP_URI);
+        } else {
+            mGroupUri = savedState.getParcelable(KEY_GROUP_URI);
+            mGroupMetadata = savedState.getParcelable(KEY_GROUP_METADATA);
+        }
+    }
+
+    @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.
+            getActivity().invalidateOptionsMenu();
+        }
+    }
+
+    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);
+        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();
+
+        if (mListener != null) {
+            mListener.onGroupMetadataLoaded(mGroupMetadata);
+        }
+
+        // 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) {
+            try {
+                setCheckBoxListListener((OnCheckBoxListActionListener) getActivity());
+            } catch (ClassCastException e) {
+                throw new ClassCastException(getActivity() + " must implement " +
+                        OnCheckBoxListActionListener.class.getSimpleName());
+            }
+        }
+    }
+
+    @Override
+    protected GroupMembersAdapter createListAdapter() {
+        final GroupMembersAdapter adapter = new GroupMembersAdapter(getContext());
+        adapter.setSectionHeaderDisplayEnabled(true);
+        adapter.setDisplayPhotos(true);
+        adapter.setDeleteContactListener(this);
+        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) {
+                ((GroupMembersActivity) getActivity()).startGroupAddMemberActivity();
+            }
+        });
+        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;
+        }
+        if (mListener != null) {
+            mListener.onGroupMemberListItemClicked(position, uri);
+        }
+    }
+
+    @Override
+    protected boolean onItemLongClick(int position, long id) {
+        final Activity activity = getActivity();
+        if (activity != null && activity instanceof GroupMembersActivity) {
+            if (((GroupMembersActivity) activity).isEditMode()) {
+                return true;
+            }
+        }
+        return super.onItemLongClick(position, id);
+    }
+
+    @Override
+    public void onContactDeleteClicked(int position) {
+        final long contactId = getAdapter().getContactId(position);
+        mListener.onGroupMemberListItemDeleted(position, contactId);
+    }
+}
diff --git a/src/com/android/contacts/group/GroupMetadata.java b/src/com/android/contacts/group/GroupMetadata.java
new file mode 100644
index 0000000..f3dfec24
--- /dev/null
+++ b/src/com/android/contacts/group/GroupMetadata.java
@@ -0,0 +1,106 @@
+/*
+ * 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.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.text.TextUtils;
+
+import com.android.contacts.common.model.account.AccountWithDataSet;
+
+/** Meta data for a contact group. */
+// TODO(wjang): consolidate with com.android.contacts.common.GroupMetaData;
+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];
+        }
+    };
+
+    // TODO(wjang): make them all final and add getters
+    public Uri uri;
+    public String accountName;
+    public String accountType;
+    public String dataSet;
+    public long groupId = -1;
+    public String groupName;
+    public boolean readOnly;
+    public boolean editable;
+
+    public GroupMetadata() {
+    }
+
+    private GroupMetadata(Parcel source) {
+        readFromParcel(source);
+    }
+
+    private void readFromParcel(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;
+        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(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 "GroupMetadata[uri=" + uri +
+                " accountName=" + accountName +
+                " accountType=" + accountType +
+                " dataSet=" + dataSet +
+                " groupId=" + groupId +
+                " groupName=" + groupName +
+                " readOnly=" + readOnly +
+                " editable=" + editable +
+                " isValid=" + isValid() +
+                "]";
+    }
+}
\ 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..235a878
--- /dev/null
+++ b/src/com/android/contacts/group/GroupNameEditDialogFragment.java
@@ -0,0 +1,198 @@
+/*
+ * 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.FragmentManager;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.os.Bundle;
+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.R;
+
+/**
+ * Edits the name of a group.
+ */
+public final class GroupNameEditDialogFragment extends DialogFragment {
+
+    private static final String KEY_IS_INSERT = "isInsert";
+    private static final String KEY_GROUP_NAME = "groupName";
+
+    private static final String ARG_IS_INSERT = "isInsert";
+    private static final String ARG_GROUP_NAME = "groupName";
+
+    /** Callbacks for hosts of the {@link GroupNameEditDialogFragment}. */
+    public interface Listener {
+        void onGroupNameEdit(String groupName, boolean isInsert);
+        void onGroupNameEditCancelled();
+    }
+
+    private boolean mIsInsert;
+    private String mGroupName;
+    private EditText mGroupNameEditText;
+
+    public static void showInsertDialog(FragmentManager fragmentManager, String tag) {
+        showDialog(fragmentManager, tag, /* isInsert */ true, /* groupName */ null);
+    }
+
+    public static void showUpdateDialog(FragmentManager fragmentManager,
+            String tag, String groupName) {
+        showDialog(fragmentManager, tag, /* isInsert */ false, groupName);
+    }
+
+    private static void showDialog(FragmentManager fragmentManager,
+            String tag, boolean isInsert, String groupName) {
+        final Bundle args = new Bundle();
+        args.putBoolean(ARG_IS_INSERT, isInsert);
+        args.putString(ARG_GROUP_NAME, groupName);
+
+        final GroupNameEditDialogFragment dialog = new GroupNameEditDialogFragment();
+        dialog.setArguments(args);
+        dialog.show(fragmentManager, tag);
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        if (savedInstanceState == null) {
+            final Bundle args = getArguments();
+            mIsInsert = args.getBoolean(KEY_IS_INSERT);
+            mGroupName = args.getString(KEY_GROUP_NAME);
+        } else {
+            mIsInsert = savedInstanceState.getBoolean(ARG_IS_INSERT);
+            mGroupName = savedInstanceState.getString(ARG_GROUP_NAME);
+        }
+    }
+
+    @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())
+                .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();
+                    }
+                })
+                .setPositiveButton(android.R.string.ok, new OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        getListener().onGroupNameEdit(getGroupName(), mIsInsert);
+                    }
+                });
+
+        // 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);
+                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()));
+                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) {
+                        createButton.setEnabled(!TextUtils.isEmpty(s));
+                    }
+                });
+            }
+        });
+
+        return alertDialog;
+    }
+
+    @Override
+    public void onCancel(DialogInterface dialog) {
+        super.onCancel(dialog);
+        getListener().onGroupNameEditCancelled();
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putBoolean(KEY_IS_INSERT, mIsInsert);
+        outState.putString(KEY_GROUP_NAME, getGroupName());
+    }
+
+    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 (!(getActivity() instanceof Listener)) {
+            throw new ClassCastException(getActivity() + " must implement " +
+                    Listener.class.getName());
+        }
+        return (Listener) getActivity();
+    }
+
+    private String getGroupName() {
+        return mGroupNameEditText == null || mGroupNameEditText.getText() == null
+                ? null : mGroupNameEditText.getText().toString();
+    }
+}
diff --git a/src/com/android/contacts/group/GroupUtil.java b/src/com/android/contacts/group/GroupUtil.java
new file mode 100644
index 0000000..fd8c03d
--- /dev/null
+++ b/src/com/android/contacts/group/GroupUtil.java
@@ -0,0 +1,222 @@
+/*
+ * 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.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Groups;
+import android.text.TextUtils;
+import android.widget.ImageView;
+
+import com.android.contacts.GroupListLoader;
+import com.android.contacts.activities.GroupMembersActivity;
+import com.android.contacts.common.ContactPhotoManager;
+import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.common.list.ContactsSectionIndexer;
+import com.android.contacts.common.model.account.GoogleAccountType;
+import com.android.contacts.common.testing.NeededForTesting;
+import com.android.contacts.list.UiIntentActions;
+import com.google.common.base.Objects;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Group utility methods.
+ */
+@NeededForTesting
+public final class GroupUtil {
+
+    // System IDs of FFC groups in Google accounts
+    private static final Set<String> FFC_GROUPS =
+            new HashSet(Arrays.asList("Friends", "Family", "Coworkers"));
+
+    public static final String EXTRA_GROUP_NAME = "groupName";
+
+    private GroupUtil() {
+    }
+
+    /** Returns a {@link GroupListItem} read from the given cursor and position. */
+    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 (accountName.equals(previousGroupAccountName) &&
+                    accountType.equals(previousGroupAccountType) &&
+                    Objects.equal(dataSet, previousGroupDataSet)) {
+                isFirstGroupInAccount = false;
+            }
+        }
+
+        return new GroupListItem(accountName, accountType, dataSet, groupId, title,
+                isFirstGroupInAccount, memberCount, isReadOnly, systemId);
+    }
+
+    /**
+     * @param identifier the {@link ContactPhotoManager.DefaultImageRequest#identifier}
+     *         to use for this the group member.
+     */
+    public static void bindPhoto(ContactPhotoManager photoManager, ImageView imageView,
+            long photoId, Uri photoUri, String displayName, String identifier) {
+        if (photoId == 0) {
+            final DefaultImageRequest defaultImageRequest = photoUri == null
+                    ? new DefaultImageRequest(displayName, identifier,
+                            /* circularPhotos */ true)
+                    : null;
+            photoManager.loadDirectoryPhoto(imageView, photoUri, /* darkTheme */ false,
+                        /* isCircular */ true, defaultImageRequest);
+        } else {
+            photoManager.loadThumbnail(imageView, photoId, /* darkTheme */ false,
+                        /* isCircular */ true, /* defaultImageRequest */ null);
+        }
+    }
+
+    /** Returns an Intent to view the details of the group identified by the given URI. */
+    public static Intent createViewGroupIntent(Context context, Uri groupUri, String title) {
+        final Intent intent = new Intent(context, GroupMembersActivity.class);
+        intent.setAction(Intent.ACTION_VIEW);
+        intent.setData(groupUri);
+        intent.putExtra(EXTRA_GROUP_NAME, title);
+        return intent;
+    }
+
+    /** Returns an Intent to view the details of the group identified by the given ID. */
+    public static Intent createViewGroupIntent(Context context, long groupId, String title) {
+        return createViewGroupIntent(context,
+                ContentUris.withAppendedId(Groups.CONTENT_URI, groupId), title);
+    }
+
+    /** Returns an Intent to pick contacts to add to a group. */
+    public static Intent createPickMemberIntent(
+            GroupMetadata groupMetadata, ArrayList<String> memberContactIds) {
+        final Intent intent = new Intent(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;
+    }
+
+    /**
+     * Returns true if it's an empty and read-only group of a Google account and the system ID of
+     * the group is one of "Friends", "Family" and "Coworkers".
+     */
+    public static boolean isEmptyFFCGroup(GroupListItem groupListItem) {
+        return GoogleAccountType.ACCOUNT_TYPE.equals(groupListItem.getAccountType())
+                && groupListItem.isReadOnly()
+                && isSystemIdFFC(groupListItem.getSystemId())
+                && (groupListItem.getMemberCount() <= 0);
+    }
+
+    private static boolean isSystemIdFFC(String systemId) {
+        return !TextUtils.isEmpty(systemId) && FFC_GROUPS.contains(systemId);
+    }
+
+    /**
+     * 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.
+     */
+    @NeededForTesting
+    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.
+     */
+    @NeededForTesting
+    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;
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/group/GroupsFragment.java b/src/com/android/contacts/group/GroupsFragment.java
new file mode 100644
index 0000000..be1b44a
--- /dev/null
+++ b/src/com/android/contacts/group/GroupsFragment.java
@@ -0,0 +1,87 @@
+/*
+ * 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.app.LoaderManager;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.content.Loader;
+import android.database.Cursor;
+import android.os.Bundle;
+
+import com.android.contacts.GroupListLoader;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Loads groups and group metadata for all accounts.
+ */
+public final class GroupsFragment extends Fragment {
+
+    private static final int LOADER_GROUPS = 1;
+
+    /**
+     * Callbacks for hosts of the {@link GroupsFragment}.
+     */
+    public interface GroupsListener  {
+
+        /**
+         * Invoked after groups and group metadata have been loaded.
+         */
+        void onGroupsLoaded(List<GroupListItem> groupListItems);
+    }
+
+    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) {
+                    mGroupListItems.clear();
+                    for (int i = 0; i < data.getCount(); i++) {
+                        if (data.moveToNext()) {
+                            mGroupListItems.add(GroupUtil.getGroupListItem(data, i));
+                        }
+                    }
+                    if (mListener != null) {
+                        mListener.onGroupsLoaded(mGroupListItems);
+                    }
+                }
+
+                public void onLoaderReset(Loader<Cursor> loader) {
+                }
+            };
+
+    private List<GroupListItem> mGroupListItems = new ArrayList<>();
+    private GroupsListener mListener;
+
+    @Override
+    public void onStart() {
+        getLoaderManager().initLoader(LOADER_GROUPS, null, mGroupListLoaderListener);
+        super.onStart();
+    }
+
+    public void setListener(GroupsListener listener) {
+        mListener = listener;
+    }
+}
diff --git a/src/com/android/contacts/interactions/AccountFiltersFragment.java b/src/com/android/contacts/interactions/AccountFiltersFragment.java
new file mode 100644
index 0000000..7836c19
--- /dev/null
+++ b/src/com/android/contacts/interactions/AccountFiltersFragment.java
@@ -0,0 +1,77 @@
+/*
+ * 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.interactions;
+
+import android.app.Fragment;
+import android.app.LoaderManager;
+import android.content.Loader;
+import android.os.Bundle;
+
+import com.android.contacts.common.list.ContactListFilter;
+import com.android.contacts.common.util.AccountFilterUtil;
+
+import java.util.List;
+
+/**
+ * Loads account filters.
+ */
+public class AccountFiltersFragment extends Fragment {
+
+    private static final int LOADER_FILTERS = 1;
+
+    /**
+     * Callbacks for hosts of the {@link AccountFiltersFragment}.
+     */
+    public interface AccountFiltersListener  {
+
+        /**
+         * Invoked after account filters have been loaded.
+         */
+        void onFiltersLoaded(List<ContactListFilter> accountFilterItems);
+    }
+
+    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 (mListener != null) {
+                        mListener.onFiltersLoaded(data);
+                    }
+                }
+
+                public void onLoaderReset(Loader<List<ContactListFilter>> loader) {
+                }
+            };
+
+    private AccountFiltersListener mListener;
+
+    @Override
+    public void onStart() {
+        getLoaderManager().initLoader(LOADER_FILTERS, null, mFiltersLoaderListener);
+        super.onStart();
+    }
+
+    public void setListener(AccountFiltersListener listener) {
+        mListener = listener;
+    }
+}
diff --git a/src/com/android/contacts/interactions/CalendarInteraction.java b/src/com/android/contacts/interactions/CalendarInteraction.java
new file mode 100644
index 0000000..e249e4f
--- /dev/null
+++ b/src/com/android/contacts/interactions/CalendarInteraction.java
@@ -0,0 +1,291 @@
+package com.android.contacts.interactions;
+
+import com.android.contacts.R;
+
+import android.content.ContentValues;
+import android.content.ContentUris;
+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;
+
+/**
+ * Represents a calendar event interaction, wrapping the columns in
+ * {@link android.provider.CalendarContract.Attendees}.
+ */
+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 ContentValues mValues;
+
+    public CalendarInteraction(ContentValues values) {
+        mValues = values;
+    }
+
+    @Override
+    public Intent getIntent() {
+        return new Intent(Intent.ACTION_VIEW).setData(
+                ContentUris.withAppendedId(Events.CONTENT_URI, getEventId()));
+    }
+
+    @Override
+    public long getInteractionDate() {
+        return getDtstart();
+    }
+
+    @Override
+    public String getViewHeader(Context context) {
+        String title = getTitle();
+        if (TextUtils.isEmpty(title)) {
+            return context.getResources().getString(R.string.untitled_event);
+        }
+        return title;
+    }
+
+    @Override
+    public String getViewBody(Context context) {
+        return null;
+    }
+
+    @Override
+    public String getViewFooter(Context context) {
+        // Pulled from com.android.calendar.EventInfoFragment.updateEvent(View view)
+        // TODO: build callback to update time zone if different than preferences
+        String localTimezone = Time.getCurrentTimezone();
+
+        Long dateEnd = getDtend();
+        Long dateStart = getDtstart();
+        if (dateStart == null && dateEnd == null) {
+            return null;
+        } else if (dateEnd == null) {
+            dateEnd = dateStart;
+        } else if (dateStart == null) {
+            dateStart = dateEnd;
+        }
+
+        String displayedDatetime = CalendarInteractionUtils.getDisplayedDatetime(
+                dateStart, dateEnd, System.currentTimeMillis(), localTimezone,
+                getAllDay(), context);
+
+        return displayedDatetime;
+    }
+
+    @Override
+    public Drawable getIcon(Context context) {
+        return context.getResources().getDrawable(CALENDAR_ICON_RES);
+    }
+
+    @Override
+    public Drawable getBodyIcon(Context context) {
+        return null;
+    }
+
+    @Override
+    public Drawable getFooterIcon(Context context) {
+        return null;
+    }
+
+    public String getAttendeeEmail() {
+        return mValues.getAsString(Attendees.ATTENDEE_EMAIL);
+    }
+
+    public String getAttendeeIdentity() {
+        return mValues.getAsString(Attendees.ATTENDEE_IDENTITY);
+    }
+
+    public String getAttendeeIdNamespace() {
+        return mValues.getAsString(Attendees.ATTENDEE_ID_NAMESPACE);
+    }
+
+    public String getAttendeeName() {
+        return mValues.getAsString(Attendees.ATTENDEE_NAME);
+    }
+
+    public Integer getAttendeeRelationship() {
+        return mValues.getAsInteger(Attendees.ATTENDEE_RELATIONSHIP);
+    }
+
+    public Integer getAttendeeStatus() {
+        return mValues.getAsInteger(Attendees.ATTENDEE_STATUS);
+    }
+
+    public Integer getAttendeeType() {
+        return mValues.getAsInteger(Attendees.ATTENDEE_TYPE);
+    }
+
+    public Integer getEventId() {
+        return mValues.getAsInteger(Attendees.EVENT_ID);
+    }
+
+    public Integer getAccessLevel() {
+        return mValues.getAsInteger(Attendees.ACCESS_LEVEL);
+    }
+
+    public Boolean getAllDay() {
+        return mValues.getAsInteger(Attendees.ALL_DAY) == 1 ? true : false;
+    }
+
+    public Integer getAvailability() {
+        return mValues.getAsInteger(Attendees.AVAILABILITY);
+    }
+
+    public Integer getCalendarId() {
+        return mValues.getAsInteger(Attendees.CALENDAR_ID);
+    }
+
+    public Boolean getCanInviteOthers() {
+        return mValues.getAsBoolean(Attendees.CAN_INVITE_OTHERS);
+    }
+
+    public String getCustomAppPackage() {
+        return mValues.getAsString(Attendees.CUSTOM_APP_PACKAGE);
+    }
+
+    public String getCustomAppUri() {
+        return mValues.getAsString(Attendees.CUSTOM_APP_URI);
+    }
+
+    public String getDescription() {
+        return mValues.getAsString(Attendees.DESCRIPTION);
+    }
+
+    public Integer getDisplayColor() {
+        return mValues.getAsInteger(Attendees.DISPLAY_COLOR);
+    }
+
+    public Long getDtend() {
+        return mValues.getAsLong(Attendees.DTEND);
+    }
+
+    public Long getDtstart() {
+        return mValues.getAsLong(Attendees.DTSTART);
+    }
+
+    public String getDuration() {
+        return mValues.getAsString(Attendees.DURATION);
+    }
+
+    public Integer getEventColor() {
+        return mValues.getAsInteger(Attendees.EVENT_COLOR);
+    }
+
+    public String getEventColorKey() {
+        return mValues.getAsString(Attendees.EVENT_COLOR_KEY);
+    }
+
+    public String getEventEndTimezone() {
+        return mValues.getAsString(Attendees.EVENT_END_TIMEZONE);
+    }
+
+    public String getEventLocation() {
+        return mValues.getAsString(Attendees.EVENT_LOCATION);
+    }
+
+    public String getExdate() {
+        return mValues.getAsString(Attendees.EXDATE);
+    }
+
+    public String getExrule() {
+        return mValues.getAsString(Attendees.EXRULE);
+    }
+
+    public Boolean getGuestsCanInviteOthers() {
+        return mValues.getAsBoolean(Attendees.GUESTS_CAN_INVITE_OTHERS);
+    }
+
+    public Boolean getGuestsCanModify() {
+        return mValues.getAsBoolean(Attendees.GUESTS_CAN_MODIFY);
+    }
+
+    public Boolean getGuestsCanSeeGuests() {
+        return mValues.getAsBoolean(Attendees.GUESTS_CAN_SEE_GUESTS);
+    }
+
+    public Boolean getHasAlarm() {
+        return mValues.getAsBoolean(Attendees.HAS_ALARM);
+    }
+
+    public Boolean getHasAttendeeData() {
+        return mValues.getAsBoolean(Attendees.HAS_ATTENDEE_DATA);
+    }
+
+    public Boolean getHasExtendedProperties() {
+        return mValues.getAsBoolean(Attendees.HAS_EXTENDED_PROPERTIES);
+    }
+
+    public String getIsOrganizer() {
+        return mValues.getAsString(Attendees.IS_ORGANIZER);
+    }
+
+    public Long getLastDate() {
+        return mValues.getAsLong(Attendees.LAST_DATE);
+    }
+
+    public Boolean getLastSynced() {
+        return mValues.getAsBoolean(Attendees.LAST_SYNCED);
+    }
+
+    public String getOrganizer() {
+        return mValues.getAsString(Attendees.ORGANIZER);
+    }
+
+    public Boolean getOriginalAllDay() {
+        return mValues.getAsBoolean(Attendees.ORIGINAL_ALL_DAY);
+    }
+
+    public String getOriginalId() {
+        return mValues.getAsString(Attendees.ORIGINAL_ID);
+    }
+
+    public Long getOriginalInstanceTime() {
+        return mValues.getAsLong(Attendees.ORIGINAL_INSTANCE_TIME);
+    }
+
+    public String getOriginalSyncId() {
+        return mValues.getAsString(Attendees.ORIGINAL_SYNC_ID);
+    }
+
+    public String getRdate() {
+        return mValues.getAsString(Attendees.RDATE);
+    }
+
+    public String getRrule() {
+        return mValues.getAsString(Attendees.RRULE);
+    }
+
+    public Integer getSelfAttendeeStatus() {
+        return mValues.getAsInteger(Attendees.SELF_ATTENDEE_STATUS);
+    }
+
+    public Integer getStatus() {
+        return mValues.getAsInteger(Attendees.STATUS);
+    }
+
+    public String getTitle() {
+        return mValues.getAsString(Attendees.TITLE);
+    }
+
+    public String getUid2445() {
+        return mValues.getAsString(Attendees.UID_2445);
+    }
+
+    @Override
+    public Spannable getContentDescription(Context context) {
+        // The default TalkBack is good
+        return null;
+    }
+
+    @Override
+    public int getIconResourceId() {
+        return CALENDAR_ICON_RES;
+    }
+}
diff --git a/src/com/android/contacts/interactions/CalendarInteractionUtils.java b/src/com/android/contacts/interactions/CalendarInteractionUtils.java
new file mode 100644
index 0000000..c7943f0
--- /dev/null
+++ b/src/com/android/contacts/interactions/CalendarInteractionUtils.java
@@ -0,0 +1,192 @@
+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 java.util.Formatter;
+import java.util.Locale;
+
+/**
+ * The following methods were pulled from
+ * {@link com.android.calendar.EventInfoFragment.updateEvent(View view)}
+ * TODO: Move this to frameworks/opt
+ */
+public class CalendarInteractionUtils {
+
+    // Using int constants as a return value instead of an enum to minimize resources.
+    private static final int TODAY = 1;
+    private static final int TOMORROW = 2;
+    private static final int NONE = 0;
+
+    /**
+     * Returns a string description of the specified time interval.
+     */
+    public static String getDisplayedDatetime(long startMillis, long endMillis, long currentMillis,
+            String localTimezone, boolean allDay, Context context) {
+        // Configure date/time formatting.
+        int flagsDate = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_WEEKDAY;
+        int flagsTime = DateUtils.FORMAT_SHOW_TIME;
+        if (DateFormat.is24HourFormat(context)) {
+            flagsTime |= DateUtils.FORMAT_24HOUR;
+        }
+
+        Time currentTime = new Time(localTimezone);
+        currentTime.set(currentMillis);
+        Resources resources = context.getResources();
+        String datetimeString = null;
+        if (allDay) {
+            // All day events require special timezone adjustment.
+            long localStartMillis = convertAlldayUtcToLocal(null, startMillis, localTimezone);
+            long localEndMillis = convertAlldayUtcToLocal(null, endMillis, localTimezone);
+            if (singleDayEvent(localStartMillis, localEndMillis, currentTime.gmtoff)) {
+                // If possible, use "Today" or "Tomorrow" instead of a full date string.
+                int todayOrTomorrow = isTodayOrTomorrow(context.getResources(),
+                        localStartMillis, currentMillis, currentTime.gmtoff);
+                if (TODAY == todayOrTomorrow) {
+                    datetimeString = resources.getString(R.string.today);
+                } else if (TOMORROW == todayOrTomorrow) {
+                    datetimeString = resources.getString(R.string.tomorrow);
+                }
+            }
+            if (datetimeString == null) {
+                // For multi-day allday events or single-day all-day events that are not
+                // today or tomorrow, use framework formatter.
+                Formatter f = new Formatter(new StringBuilder(50), Locale.getDefault());
+                datetimeString = DateUtils.formatDateRange(context, f, startMillis,
+                        endMillis, flagsDate, Time.TIMEZONE_UTC).toString();
+            }
+        } else {
+            if (singleDayEvent(startMillis, endMillis, currentTime.gmtoff)) {
+                // Format the time.
+                String timeString = formatDateRange(context, startMillis, endMillis,
+                        flagsTime);
+
+                // If possible, use "Today" or "Tomorrow" instead of a full date string.
+                int todayOrTomorrow = isTodayOrTomorrow(context.getResources(), startMillis,
+                        currentMillis, currentTime.gmtoff);
+                if (TODAY == todayOrTomorrow) {
+                    // Example: "Today at 1:00pm - 2:00 pm"
+                    datetimeString = resources.getString(R.string.today_at_time_fmt,
+                            timeString);
+                } else if (TOMORROW == todayOrTomorrow) {
+                    // Example: "Tomorrow at 1:00pm - 2:00 pm"
+                    datetimeString = resources.getString(R.string.tomorrow_at_time_fmt,
+                            timeString);
+                } else {
+                    // Format the full date. Example: "Thursday, April 12, 1:00pm - 2:00pm"
+                    String dateString = formatDateRange(context, startMillis, endMillis,
+                            flagsDate);
+                    datetimeString = resources.getString(R.string.date_time_fmt, dateString,
+                            timeString);
+                }
+            } else {
+                // For multiday events, shorten day/month names.
+                // Example format: "Fri Apr 6, 5:00pm - Sun, Apr 8, 6:00pm"
+                int flagsDatetime = flagsDate | flagsTime | DateUtils.FORMAT_ABBREV_MONTH |
+                        DateUtils.FORMAT_ABBREV_WEEKDAY;
+                datetimeString = formatDateRange(context, startMillis, endMillis,
+                        flagsDatetime);
+            }
+        }
+        return datetimeString;
+    }
+
+    /**
+     * Convert given UTC time into current local time. This assumes it is for an
+     * allday event and will adjust the time to be on a midnight boundary.
+     *
+     * @param recycle Time object to recycle, otherwise null.
+     * @param utcTime Time to convert, in UTC.
+     * @param tz The time zone to convert this time to.
+     */
+    private static long convertAlldayUtcToLocal(Time recycle, long utcTime, String tz) {
+        if (recycle == null) {
+            recycle = new Time();
+        }
+        recycle.timezone = Time.TIMEZONE_UTC;
+        recycle.set(utcTime);
+        recycle.timezone = tz;
+        return recycle.normalize(true);
+    }
+
+    public static long convertAlldayLocalToUTC(Time recycle, long localTime, String tz) {
+        if (recycle == null) {
+            recycle = new Time();
+        }
+        recycle.timezone = tz;
+        recycle.set(localTime);
+        recycle.timezone = Time.TIMEZONE_UTC;
+        return recycle.normalize(true);
+    }
+
+    /**
+     * Returns whether the specified time interval is in a single day.
+     */
+    private static boolean singleDayEvent(long startMillis, long endMillis, long localGmtOffset) {
+        if (startMillis == endMillis) {
+            return true;
+        }
+
+        // An event ending at midnight should still be a single-day event, so check
+        // time end-1.
+        int startDay = Time.getJulianDay(startMillis, localGmtOffset);
+        int endDay = Time.getJulianDay(endMillis - 1, localGmtOffset);
+        return startDay == endDay;
+    }
+
+    /**
+     * Returns TODAY or TOMORROW if applicable.  Otherwise returns NONE.
+     */
+    private static int isTodayOrTomorrow(Resources r, long dayMillis,
+            long currentMillis, long localGmtOffset) {
+        int startDay = Time.getJulianDay(dayMillis, localGmtOffset);
+        int currentDay = Time.getJulianDay(currentMillis, localGmtOffset);
+
+        int days = startDay - currentDay;
+        if (days == 1) {
+            return TOMORROW;
+        } else if (days == 0) {
+            return TODAY;
+        } else {
+            return NONE;
+        }
+    }
+
+    /**
+     * Formats a date or a time range according to the local conventions.
+     *
+     * This formats a date/time range using Calendar's time zone and the
+     * local conventions for the region of the device.
+     *
+     * If the {@link DateUtils#FORMAT_UTC} flag is used it will pass in
+     * the UTC time zone instead.
+     *
+     * @param context the context is required only if the time is shown
+     * @param startMillis the start time in UTC milliseconds
+     * @param endMillis the end time in UTC milliseconds
+     * @param flags a bit mask of options See
+     * {@link DateUtils#formatDateRange(Context, Formatter, long, long, int, String) formatDateRange}
+     * @return a string containing the formatted date/time range.
+     */
+    private static String formatDateRange(Context context, long startMillis,
+            long endMillis, int flags) {
+        String date;
+        String tz;
+        if ((flags & DateUtils.FORMAT_UTC) != 0) {
+            tz = Time.TIMEZONE_UTC;
+        } else {
+            tz = Time.getCurrentTimezone();
+        }
+        StringBuilder sb = new StringBuilder(50);
+        Formatter f = new Formatter(sb, Locale.getDefault());
+        sb.setLength(0);
+        date = DateUtils.formatDateRange(context, f, startMillis, endMillis, flags,
+                tz).toString();
+        return date;
+    }
+}
diff --git a/src/com/android/contacts/interactions/CalendarInteractionsLoader.java b/src/com/android/contacts/interactions/CalendarInteractionsLoader.java
new file mode 100644
index 0000000..4813866
--- /dev/null
+++ b/src/com/android/contacts/interactions/CalendarInteractionsLoader.java
@@ -0,0 +1,237 @@
+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;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.DatabaseUtils;
+import android.provider.CalendarContract;
+import android.provider.CalendarContract.Calendars;
+import android.util.Log;
+
+
+/**
+ * Loads a list of calendar interactions showing shared calendar events with everyone passed in
+ * {@param emailAddresses}.
+ *
+ * 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 List<String> mEmailAddresses;
+    private int mMaxFutureToRetrieve;
+    private int mMaxPastToRetrieve;
+    private long mNumberFutureMillisecondToSearchLocalCalendar;
+    private long mNumberPastMillisecondToSearchLocalCalendar;
+    private List<ContactInteraction> mData;
+
+
+    /**
+     * @param maxFutureToRetrieve The maximum number of future events to retrieve
+     * @param maxPastToRetrieve The maximum number of past events to retrieve
+     */
+    public CalendarInteractionsLoader(Context context, List<String> emailAddresses,
+            int maxFutureToRetrieve, int maxPastToRetrieve,
+            long numberFutureMillisecondToSearchLocalCalendar,
+            long numberPastMillisecondToSearchLocalCalendar) {
+        super(context);
+        mEmailAddresses = emailAddresses;
+        mMaxFutureToRetrieve = maxFutureToRetrieve;
+        mMaxPastToRetrieve = maxPastToRetrieve;
+        mNumberFutureMillisecondToSearchLocalCalendar =
+                numberFutureMillisecondToSearchLocalCalendar;
+        mNumberPastMillisecondToSearchLocalCalendar = numberPastMillisecondToSearchLocalCalendar;
+    }
+
+    @Override
+    public List<ContactInteraction> loadInBackground() {
+        if (!PermissionsUtil.hasPermission(getContext(), permission.READ_CALENDAR)
+                || mEmailAddresses == null || mEmailAddresses.size() < 1) {
+            return Collections.emptyList();
+        }
+        // Perform separate calendar queries for events in the past and future.
+        Cursor cursor = getSharedEventsCursor(/* isFuture= */ true, mMaxFutureToRetrieve);
+        List<ContactInteraction> interactions = getInteractionsFromEventsCursor(cursor);
+        cursor = getSharedEventsCursor(/* isFuture= */ false, mMaxPastToRetrieve);
+        List<ContactInteraction> interactions2 = getInteractionsFromEventsCursor(cursor);
+
+        ArrayList<ContactInteraction> allInteractions = new ArrayList<ContactInteraction>(
+                interactions.size() + interactions2.size());
+        allInteractions.addAll(interactions);
+        allInteractions.addAll(interactions2);
+
+        Log.v(TAG, "# ContactInteraction Loaded: " + allInteractions.size());
+        return allInteractions;
+    }
+
+    /**
+     * @return events inside phone owners' calendars, that are shared with people inside mEmails
+     */
+    private Cursor getSharedEventsCursor(boolean isFuture, int limit) {
+        List<String> calendarIds = getOwnedCalendarIds();
+        if (calendarIds == null) {
+            return null;
+        }
+        long timeMillis = System.currentTimeMillis();
+
+        List<String> selectionArgs = new ArrayList<>();
+        selectionArgs.addAll(mEmailAddresses);
+        selectionArgs.addAll(calendarIds);
+
+        // Add time constraints to selectionArgs
+        String timeOperator = isFuture ? " > " : " < ";
+        long pastTimeCutoff = timeMillis - mNumberPastMillisecondToSearchLocalCalendar;
+        long futureTimeCutoff = timeMillis
+                + mNumberFutureMillisecondToSearchLocalCalendar;
+        String[] timeArguments = {String.valueOf(timeMillis), String.valueOf(pastTimeCutoff),
+                String.valueOf(futureTimeCutoff)};
+        selectionArgs.addAll(Arrays.asList(timeArguments));
+
+        // When LAST_SYNCED = 1, the event is not a real event. We should ignore all such events.
+        String IS_NOT_TEMPORARY_COPY_OF_LOCAL_EVENT
+                = CalendarContract.Attendees.LAST_SYNCED + " = 0";
+
+        String orderBy = CalendarContract.Attendees.DTSTART + (isFuture ? " ASC " : " DESC ");
+        String selection = caseAndDotInsensitiveEmailComparisonClause(mEmailAddresses.size())
+                + " AND " + CalendarContract.Attendees.CALENDAR_ID
+                + " IN " + ContactInteractionUtil.questionMarks(calendarIds.size())
+                + " AND " + CalendarContract.Attendees.DTSTART + timeOperator + " ? "
+                + " AND " + CalendarContract.Attendees.DTSTART + " > ? "
+                + " AND " + CalendarContract.Attendees.DTSTART + " < ? "
+                + " AND " + IS_NOT_TEMPORARY_COPY_OF_LOCAL_EVENT;
+
+        return getContext().getContentResolver().query(CalendarContract.Attendees.CONTENT_URI,
+                /* projection = */ null, selection,
+                selectionArgs.toArray(new String[selectionArgs.size()]),
+                orderBy + " LIMIT " + limit);
+    }
+
+    /**
+     * Returns a clause that checks whether an attendee's email is equal to one of
+     * {@param count} values. The comparison is insensitive to dots and case.
+     *
+     * NOTE #1: This function is only needed for supporting non google accounts. For calendars
+     * synced by a google account, attendee email values will be be modified by the server to ensure
+     * they match an entry in contacts.google.com.
+     *
+     * NOTE #2: This comparison clause can result in false positives. Ex#1, test@gmail.com will
+     * match test@gmailco.m. Ex#2, a.2@exchange.com will match a2@exchange.com (exchange addresses
+     * should be dot sensitive). This probably isn't a large concern.
+     */
+    private String caseAndDotInsensitiveEmailComparisonClause(int count) {
+        Preconditions.checkArgument(count > 0, "Count needs to be positive");
+        final String COMPARISON
+                = " REPLACE(" + CalendarContract.Attendees.ATTENDEE_EMAIL
+                + ", '.', '') = REPLACE(?, '.', '') COLLATE NOCASE";
+        StringBuilder sb = new StringBuilder("( " + COMPARISON);
+        for (int i = 1; i < count; i++) {
+            sb.append(" OR " + COMPARISON);
+        }
+        return sb.append(")").toString();
+    }
+
+    /**
+     * @return A list with upto one Card. The Card contains events from {@param Cursor}.
+     * Only returns unique events.
+     */
+    private List<ContactInteraction> getInteractionsFromEventsCursor(Cursor cursor) {
+        try {
+            if (cursor == null || cursor.getCount() == 0) {
+                return Collections.emptyList();
+            }
+            Set<String> uniqueUris = new HashSet<String>();
+            ArrayList<ContactInteraction> interactions = new ArrayList<ContactInteraction>();
+            while (cursor.moveToNext()) {
+                ContentValues values = new ContentValues();
+                DatabaseUtils.cursorRowToContentValues(cursor, values);
+                CalendarInteraction calendarInteraction = new CalendarInteraction(values);
+                if (!uniqueUris.contains(calendarInteraction.getIntent().getData().toString())) {
+                    uniqueUris.add(calendarInteraction.getIntent().getData().toString());
+                    interactions.add(calendarInteraction);
+                }
+            }
+
+            return interactions;
+        } finally {
+            if (cursor != null) {
+                cursor.close();
+            }
+        }
+    }
+
+    /**
+     * @return the Ids of calendars that are owned by accounts on the phone.
+     */
+    private List<String> getOwnedCalendarIds() {
+        String[] projection = new String[] {Calendars._ID, Calendars.CALENDAR_ACCESS_LEVEL};
+        Cursor cursor = getContext().getContentResolver().query(Calendars.CONTENT_URI, projection,
+                Calendars.VISIBLE + " = 1 AND " + Calendars.CALENDAR_ACCESS_LEVEL + " = ? ",
+                new String[] {String.valueOf(Calendars.CAL_ACCESS_OWNER)}, null);
+        try {
+            if (cursor == null || cursor.getCount() < 1) {
+                return null;
+            }
+            cursor.moveToPosition(-1);
+            List<String> calendarIds = new ArrayList<>(cursor.getCount());
+            while (cursor.moveToNext()) {
+                calendarIds.add(String.valueOf(cursor.getInt(0)));
+            }
+            return calendarIds;
+        } finally {
+            if (cursor != null) {
+                cursor.close();
+            }
+        }
+    }
+
+    @Override
+    protected void onStartLoading() {
+        super.onStartLoading();
+
+        if (mData != null) {
+            deliverResult(mData);
+        }
+
+        if (takeContentChanged() || mData == null) {
+            forceLoad();
+        }
+    }
+
+    @Override
+    protected void onStopLoading() {
+        // Attempt to cancel the current load task if possible.
+        cancelLoad();
+    }
+
+    @Override
+    protected void onReset() {
+        super.onReset();
+
+        // Ensure the loader is stopped
+        onStopLoading();
+        if (mData != null) {
+            mData.clear();
+        }
+    }
+
+    @Override
+    public void deliverResult(List<ContactInteraction> data) {
+        mData = data;
+        if (isStarted()) {
+            super.deliverResult(data);
+        }
+    }
+}
diff --git a/src/com/android/contacts/interactions/CallLogInteraction.java b/src/com/android/contacts/interactions/CallLogInteraction.java
new file mode 100644
index 0000000..3464c0f
--- /dev/null
+++ b/src/com/android/contacts/interactions/CallLogInteraction.java
@@ -0,0 +1,217 @@
+/*
+ * 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.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;
+import android.content.res.Resources;
+import android.graphics.PorterDuff;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.provider.CallLog.Calls;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.text.BidiFormatter;
+import android.text.Spannable;
+import android.text.TextDirectionHeuristics;
+
+/**
+ * Represents a call log event interaction, wrapping the columns in
+ * {@link android.provider.CallLog.Calls}.
+ *
+ * This class does not return log entries related to voicemail or SIP calls. Additionally,
+ * this class ignores number presentation. Number presentation affects how to identify phone
+ * numbers. Since, we already know the identity of the phone number owner we can ignore number
+ * presentation.
+ *
+ * As a result of ignoring voicemail and number presentation, we don't need to worry about API
+ * version.
+ */
+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_ARROW_ICON_RES = R.drawable.ic_call_arrow;
+    private static BidiFormatter sBidiFormatter = BidiFormatter.getInstance();
+
+    private ContentValues mValues;
+
+    public CallLogInteraction(ContentValues values) {
+        mValues = values;
+    }
+
+    @Override
+    public Intent getIntent() {
+        String number = getNumber();
+        return number == null ? null : new Intent(Intent.ACTION_CALL).setData(
+                Uri.parse(URI_TARGET_PREFIX + number));
+    }
+
+    @Override
+    public String getViewHeader(Context context) {
+        return getNumber();
+    }
+
+    @Override
+    public long getInteractionDate() {
+        Long date = getDate();
+        return date == null ? -1 : date;
+    }
+
+    @Override
+    public String getViewBody(Context context) {
+        Integer numberType = getCachedNumberType();
+        if (numberType == null) {
+            return null;
+        }
+        return Phone.getTypeLabel(context.getResources(), getCachedNumberType(),
+                getCachedNumberLabel()).toString();
+    }
+
+    @Override
+    public String getViewFooter(Context context) {
+        Long date = getDate();
+        return date == null ? null : ContactInteractionUtil.formatDateStringFromTimestamp(
+                date, context);
+    }
+
+    @Override
+    public Drawable getIcon(Context context) {
+        return context.getResources().getDrawable(CALL_LOG_ICON_RES);
+    }
+
+    @Override
+    public Drawable getBodyIcon(Context context) {
+        return null;
+    }
+
+    @Override
+    public Drawable getFooterIcon(Context context) {
+        Drawable callArrow = null;
+        Resources res = context.getResources();
+        Integer type = getType();
+        if (type == null) {
+            return null;
+        }
+        switch (type) {
+            case Calls.INCOMING_TYPE:
+                callArrow = res.getDrawable(CALL_ARROW_ICON_RES);
+                callArrow.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),
+                        PorterDuff.Mode.MULTIPLY);
+                break;
+            case Calls.OUTGOING_TYPE:
+                callArrow = BitmapUtil.getRotatedDrawable(res, CALL_ARROW_ICON_RES, 180f);
+                callArrow.setColorFilter(res.getColor(R.color.call_arrow_green),
+                        PorterDuff.Mode.MULTIPLY);
+                break;
+        }
+        return callArrow;
+    }
+
+    public String getCachedName() {
+        return mValues.getAsString(Calls.CACHED_NAME);
+    }
+
+    public String getCachedNumberLabel() {
+        return mValues.getAsString(Calls.CACHED_NUMBER_LABEL);
+    }
+
+    public Integer getCachedNumberType() {
+        return mValues.getAsInteger(Calls.CACHED_NUMBER_TYPE);
+    }
+
+    public Long getDate() {
+        return mValues.getAsLong(Calls.DATE);
+    }
+
+    public Long getDuration() {
+        return mValues.getAsLong(Calls.DURATION);
+    }
+
+    public Boolean getIsRead() {
+        return mValues.getAsBoolean(Calls.IS_READ);
+    }
+
+    public Integer getLimitParamKey() {
+        return mValues.getAsInteger(Calls.LIMIT_PARAM_KEY);
+    }
+
+    public Boolean getNew() {
+        return mValues.getAsBoolean(Calls.NEW);
+    }
+
+    public String getNumber() {
+        final String number = mValues.getAsString(Calls.NUMBER);
+        return number == null ? null :
+            sBidiFormatter.unicodeWrap(number, TextDirectionHeuristics.LTR);
+    }
+
+    public Integer getNumberPresentation() {
+        return mValues.getAsInteger(Calls.NUMBER_PRESENTATION);
+    }
+
+    public Integer getOffsetParamKey() {
+        return mValues.getAsInteger(Calls.OFFSET_PARAM_KEY);
+    }
+
+    public Integer getType() {
+        return mValues.getAsInteger(Calls.TYPE);
+    }
+
+    @Override
+    public Spannable getContentDescription(Context context) {
+        final String phoneNumber = getViewHeader(context);
+        final String contentDescription = context.getResources().getString(
+                R.string.content_description_recent_call,
+                getCallTypeString(context), phoneNumber, getViewFooter(context));
+        return ContactDisplayUtils.getTelephoneTtsSpannable(contentDescription, phoneNumber);
+    }
+
+    private String getCallTypeString(Context context) {
+        String callType = "";
+        Resources res = context.getResources();
+        Integer type = getType();
+        if (type == null) {
+            return callType;
+        }
+        switch (type) {
+            case Calls.INCOMING_TYPE:
+                callType = res.getString(R.string.content_description_recent_call_type_incoming);
+                break;
+            case Calls.MISSED_TYPE:
+                callType = res.getString(R.string.content_description_recent_call_type_missed);
+                break;
+            case Calls.OUTGOING_TYPE:
+                callType = res.getString(R.string.content_description_recent_call_type_outgoing);
+                break;
+        }
+        return callType;
+    }
+
+    @Override
+    public int getIconResourceId() {
+        return CALL_LOG_ICON_RES;
+    }
+}
diff --git a/src/com/android/contacts/interactions/CallLogInteractionsLoader.java b/src/com/android/contacts/interactions/CallLogInteractionsLoader.java
new file mode 100644
index 0000000..d1dc8b4
--- /dev/null
+++ b/src/com/android/contacts/interactions/CallLogInteractionsLoader.java
@@ -0,0 +1,190 @@
+/*
+ * 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.interactions;
+
+import android.content.AsyncTaskLoader;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.database.Cursor;
+import android.database.DatabaseUtils;
+import android.net.Uri;
+import android.provider.CallLog.Calls;
+import android.text.TextUtils;
+
+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;
+import java.util.List;
+
+public class CallLogInteractionsLoader extends AsyncTaskLoader<List<ContactInteraction>> {
+
+    private final String[] mPhoneNumbers;
+    private final String[] mSipNumbers;
+    private final int mMaxToRetrieve;
+    private List<ContactInteraction> mData;
+
+    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)
+                || (!hasPhoneNumber && !hasSipNumber) || mMaxToRetrieve <= 0) {
+            return Collections.emptyList();
+        }
+
+        final List<ContactInteraction> interactions = new ArrayList<>();
+        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
+            public int compare(ContactInteraction i1, ContactInteraction i2) {
+                if (i2.getInteractionDate() - i1.getInteractionDate() > 0) {
+                    return 1;
+                } else if (i2.getInteractionDate() == i1.getInteractionDate()) {
+                    return 0;
+                } else {
+                    return -1;
+                }
+            }
+        });
+        // Duplicates only occur because of fuzzy matching. No need to dedupe a single number.
+        if ((hasPhoneNumber && mPhoneNumbers.length == 1 && !hasSipNumber)
+                || (hasSipNumber && mSipNumbers.length == 1 && !hasPhoneNumber)) {
+            return interactions;
+        }
+        return pruneDuplicateCallLogInteractions(interactions, mMaxToRetrieve);
+    }
+
+    /**
+     * Two different phone numbers can match the same call log entry (since phone number
+     * matching is inexact). Therefore, we need to remove duplicates. In a reasonable call log,
+     * every entry should have a distinct date. Therefore, we can assume duplicate entries are
+     * adjacent entries.
+     * @param interactions The interaction list potentially containing duplicates
+     * @return The list with duplicates removed
+     */
+    @VisibleForTesting
+    static List<ContactInteraction> pruneDuplicateCallLogInteractions(
+            List<ContactInteraction> interactions, int maxToRetrieve) {
+        final List<ContactInteraction> subsetInteractions = new ArrayList<>();
+        for (int i = 0; i < interactions.size(); i++) {
+            if (i >= 1 && interactions.get(i).getInteractionDate() ==
+                    interactions.get(i-1).getInteractionDate()) {
+                continue;
+            }
+            subsetInteractions.add(interactions.get(i));
+            if (subsetInteractions.size() >= maxToRetrieve) {
+                break;
+            }
+        }
+        return subsetInteractions;
+    }
+
+    private List<ContactInteraction> getCallLogInteractions(String phoneNumber) {
+        final Uri uri = Uri.withAppendedPath(Calls.CONTENT_FILTER_URI,
+                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);
+        try {
+            if (cursor == null || cursor.getCount() < 1) {
+                return Collections.emptyList();
+            }
+            cursor.moveToPosition(-1);
+            List<ContactInteraction> interactions = new ArrayList<>();
+            while (cursor.moveToNext()) {
+                final ContentValues values = new ContentValues();
+                DatabaseUtils.cursorRowToContentValues(cursor, values);
+                interactions.add(new CallLogInteraction(values));
+            }
+            return interactions;
+        } finally {
+            if (cursor != null) {
+                cursor.close();
+            }
+        }
+    }
+
+    @Override
+    protected void onStartLoading() {
+        super.onStartLoading();
+
+        if (mData != null) {
+            deliverResult(mData);
+        }
+
+        if (takeContentChanged() || mData == null) {
+            forceLoad();
+        }
+    }
+
+    @Override
+    protected void onStopLoading() {
+        // Attempt to cancel the current load task if possible.
+        cancelLoad();
+    }
+
+    @Override
+    public void deliverResult(List<ContactInteraction> data) {
+        mData = data;
+        if (isStarted()) {
+            super.deliverResult(data);
+        }
+    }
+
+    @Override
+    protected void onReset() {
+        super.onReset();
+
+        // Ensure the loader is stopped
+        onStopLoading();
+        if (mData != null) {
+            mData.clear();
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/interactions/ContactDeletionInteraction.java b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
new file mode 100644
index 0000000..c9a5a9b
--- /dev/null
+++ b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
@@ -0,0 +1,346 @@
+/*
+ * 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.Fragment;
+import android.app.FragmentManager;
+import android.app.LoaderManager;
+import android.app.LoaderManager.LoaderCallbacks;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnDismissListener;
+import android.content.Loader;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Contacts.Entity;
+import android.text.TextUtils;
+import android.util.Log;
+import android.widget.Toast;
+
+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.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.Sets;
+
+import java.util.HashSet;
+
+/**
+ * An interaction invoked to delete a contact.
+ */
+public class ContactDeletionInteraction extends Fragment
+        implements LoaderCallbacks<Cursor>, OnDismissListener {
+
+    private static final String TAG = "ContactDeletionInteraction";
+    private static final String FRAGMENT_TAG = "deleteContact";
+
+    private static final String KEY_ACTIVE = "active";
+    private static final String KEY_CONTACT_URI = "contactUri";
+    private static final String KEY_FINISH_WHEN_DONE = "finishWhenDone";
+    public static final String ARG_CONTACT_URI = "contactUri";
+    public static final int RESULT_CODE_DELETED = 3;
+
+    private static final String[] ENTITY_PROJECTION = new String[] {
+        Entity.RAW_CONTACT_ID, //0
+        Entity.ACCOUNT_TYPE, //1
+        Entity.DATA_SET, // 2
+        Entity.CONTACT_ID, // 3
+        Entity.LOOKUP_KEY, // 4
+    };
+
+    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_LOOKUP_KEY = 4;
+
+    private boolean mActive;
+    private Uri mContactUri;
+    private boolean mFinishActivityWhenDone;
+    private Context mContext;
+    private AlertDialog mDialog;
+
+    /** This is a wrapper around the fragment's loader manager to be used only during testing. */
+    private TestLoaderManagerBase mTestLoaderManager;
+
+    @VisibleForTesting
+    int mMessageId;
+
+    /**
+     * Starts the interaction.
+     *
+     * @param activity the activity within which to start the interaction
+     * @param contactUri the URI of the contact to delete
+     * @param finishActivityWhenDone whether to finish the activity upon completion of the
+     *        interaction
+     * @return the newly created interaction
+     */
+    public static ContactDeletionInteraction start(
+            Activity activity, Uri contactUri, boolean finishActivityWhenDone) {
+        return startWithTestLoaderManager(activity, contactUri, finishActivityWhenDone, null);
+    }
+
+    /**
+     * Starts the interaction and optionally set up a {@link TestLoaderManagerBase}.
+     *
+     * @param activity the activity within which to start the interaction
+     * @param contactUri the URI of the contact to delete
+     * @param finishActivityWhenDone whether to finish the activity upon completion of the
+     *        interaction
+     * @param testLoaderManager the {@link TestLoaderManagerBase} to use to load the data, may be null
+     *        in which case the default {@link LoaderManager} is used
+     * @return the newly created interaction
+     */
+    @VisibleForTesting
+    static ContactDeletionInteraction startWithTestLoaderManager(
+            Activity activity, Uri contactUri, boolean finishActivityWhenDone,
+            TestLoaderManagerBase testLoaderManager) {
+        if (contactUri == null || activity.isDestroyed()) {
+            return null;
+        }
+
+        FragmentManager fragmentManager = activity.getFragmentManager();
+        ContactDeletionInteraction fragment =
+                (ContactDeletionInteraction) fragmentManager.findFragmentByTag(FRAGMENT_TAG);
+        if (fragment == null) {
+            fragment = new ContactDeletionInteraction();
+            fragment.setTestLoaderManager(testLoaderManager);
+            fragment.setContactUri(contactUri);
+            fragment.setFinishActivityWhenDone(finishActivityWhenDone);
+            fragmentManager.beginTransaction().add(fragment, FRAGMENT_TAG)
+                    .commitAllowingStateLoss();
+        } else {
+            fragment.setTestLoaderManager(testLoaderManager);
+            fragment.setContactUri(contactUri);
+            fragment.setFinishActivityWhenDone(finishActivityWhenDone);
+        }
+        return fragment;
+    }
+
+    @Override
+    public LoaderManager getLoaderManager() {
+        // Return the TestLoaderManager if one is set up.
+        LoaderManager loaderManager = super.getLoaderManager();
+        if (mTestLoaderManager != null) {
+            // Set the delegate: this operation is idempotent, so let's just do it every time.
+            mTestLoaderManager.setDelegate(loaderManager);
+            return mTestLoaderManager;
+        } else {
+            return loaderManager;
+        }
+    }
+
+    /** Sets the TestLoaderManager that is used to wrap the actual LoaderManager in tests. */
+    private void setTestLoaderManager(TestLoaderManagerBase mockLoaderManager) {
+        mTestLoaderManager = mockLoaderManager;
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        mContext = activity;
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        if (mDialog != null && mDialog.isShowing()) {
+            mDialog.setOnDismissListener(null);
+            mDialog.dismiss();
+            mDialog = null;
+        }
+    }
+
+    public void setContactUri(Uri contactUri) {
+        mContactUri = contactUri;
+        mActive = true;
+        if (isStarted()) {
+            Bundle args = new Bundle();
+            args.putParcelable(ARG_CONTACT_URI, mContactUri);
+            getLoaderManager().restartLoader(R.id.dialog_delete_contact_loader_id, args, this);
+        }
+    }
+
+    private void setFinishActivityWhenDone(boolean finishActivityWhenDone) {
+        this.mFinishActivityWhenDone = finishActivityWhenDone;
+
+    }
+
+    /* Visible for testing */
+    boolean isStarted() {
+        return isAdded();
+    }
+
+    @Override
+    public void onStart() {
+        if (mActive) {
+            Bundle args = new Bundle();
+            args.putParcelable(ARG_CONTACT_URI, mContactUri);
+            getLoaderManager().initLoader(R.id.dialog_delete_contact_loader_id, args, this);
+        }
+        super.onStart();
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        if (mDialog != null) {
+            mDialog.hide();
+        }
+    }
+
+    @Override
+    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
+        Uri contactUri = args.getParcelable(ARG_CONTACT_URI);
+        return new CursorLoader(mContext,
+                Uri.withAppendedPath(contactUri, Entity.CONTENT_DIRECTORY), ENTITY_PROJECTION,
+                null, null, null);
+    }
+
+    @Override
+    public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
+        if (mDialog != null) {
+            mDialog.dismiss();
+            mDialog = null;
+        }
+
+        if (!mActive) {
+            return;
+        }
+
+        if (cursor == null || cursor.isClosed()) {
+            Log.e(TAG, "Failed to load contacts");
+            return;
+        }
+
+        long contactId = 0;
+        String lookupKey = null;
+
+        // This cursor may contain duplicate raw contacts, so we need to de-dupe them first
+        HashSet<Long>  readOnlyRawContacts = Sets.newHashSet();
+        HashSet<Long>  writableRawContacts = Sets.newHashSet();
+
+        AccountTypeManager accountTypes = AccountTypeManager.getInstance(getActivity());
+        cursor.moveToPosition(-1);
+        while (cursor.moveToNext()) {
+            final long rawContactId = cursor.getLong(COLUMN_INDEX_RAW_CONTACT_ID);
+            final String accountType = cursor.getString(COLUMN_INDEX_ACCOUNT_TYPE);
+            final String dataSet = cursor.getString(COLUMN_INDEX_DATA_SET);
+            contactId = cursor.getLong(COLUMN_INDEX_CONTACT_ID);
+            lookupKey = cursor.getString(COLUMN_INDEX_LOOKUP_KEY);
+            AccountType type = accountTypes.getAccountType(accountType, dataSet);
+            boolean writable = type == null || type.areContactsWritable();
+            if (writable) {
+                writableRawContacts.add(rawContactId);
+            } else {
+                readOnlyRawContacts.add(rawContactId);
+            }
+        }
+        if (TextUtils.isEmpty(lookupKey)) {
+            Log.e(TAG, "Failed to find contact lookup key");
+            getActivity().finish();
+            return;
+        }
+
+        int readOnlyCount = readOnlyRawContacts.size();
+        int writableCount = writableRawContacts.size();
+        int positiveButtonId = android.R.string.ok;
+        if (readOnlyCount > 0 && writableCount > 0) {
+            mMessageId = R.string.readOnlyContactDeleteConfirmation;
+        } else if (readOnlyCount > 0 && writableCount == 0) {
+            mMessageId = R.string.readOnlyContactWarning;
+            positiveButtonId = R.string.readOnlyContactWarning_positive_button;
+        } else if (readOnlyCount == 0 && writableCount > 1) {
+            mMessageId = R.string.multipleContactDeleteConfirmation;
+            positiveButtonId = R.string.deleteConfirmation_positive_button;
+        } else {
+            mMessageId = R.string.deleteConfirmation;
+            positiveButtonId = R.string.deleteConfirmation_positive_button;
+        }
+
+        final Uri contactUri = Contacts.getLookupUri(contactId, lookupKey);
+        showDialog(mMessageId, positiveButtonId, contactUri);
+
+        // We don't want onLoadFinished() calls any more, which may come when the database is
+        // updating.
+        getLoaderManager().destroyLoader(R.id.dialog_delete_contact_loader_id);
+    }
+
+    @Override
+    public void onLoaderReset(Loader<Cursor> loader) {
+    }
+
+    private void showDialog(int messageId, int positiveButtonId, final Uri contactUri) {
+        mDialog = new AlertDialog.Builder(getActivity())
+                .setIconAttribute(android.R.attr.alertDialogIcon)
+                .setMessage(messageId)
+                .setNegativeButton(android.R.string.cancel, null)
+                .setPositiveButton(positiveButtonId,
+                    new DialogInterface.OnClickListener() {
+                        @Override
+                        public void onClick(DialogInterface dialog, int whichButton) {
+                            doDeleteContact(contactUri);
+                        }
+                    }
+                )
+                .create();
+
+        mDialog.setOnDismissListener(this);
+        mDialog.show();
+    }
+
+    @Override
+    public void onDismiss(DialogInterface dialog) {
+        mActive = false;
+        mDialog = null;
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putBoolean(KEY_ACTIVE, mActive);
+        outState.putParcelable(KEY_CONTACT_URI, mContactUri);
+        outState.putBoolean(KEY_FINISH_WHEN_DONE, mFinishActivityWhenDone);
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        if (savedInstanceState != null) {
+            mActive = savedInstanceState.getBoolean(KEY_ACTIVE);
+            mContactUri = savedInstanceState.getParcelable(KEY_CONTACT_URI);
+            mFinishActivityWhenDone = savedInstanceState.getBoolean(KEY_FINISH_WHEN_DONE);
+        }
+    }
+
+    protected void doDeleteContact(Uri contactUri) {
+        mContext.startService(ContactSaveService.createDeleteContactIntent(mContext, contactUri));
+        if (isAdded() && mFinishActivityWhenDone) {
+            getActivity().setResult(RESULT_CODE_DELETED);
+            getActivity().finish();
+            final String deleteToastMessage = getResources().getQuantityString(R.plurals
+                    .contacts_deleted_toast, /* quantity */ 1);
+            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
new file mode 100644
index 0000000..bf00132
--- /dev/null
+++ b/src/com/android/contacts/interactions/ContactInteraction.java
@@ -0,0 +1,39 @@
+/*
+ * 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.interactions;
+
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.text.Spannable;
+
+/**
+ * Represents a default interaction between the phone's owner and a contact
+ */
+public interface ContactInteraction {
+    Intent getIntent();
+    long getInteractionDate();
+    String getViewHeader(Context context);
+    String getViewBody(Context context);
+    String getViewFooter(Context context);
+    Drawable getIcon(Context context);
+    Drawable getBodyIcon(Context context);
+    Drawable getFooterIcon(Context context);
+    Spannable getContentDescription(Context context);
+    /** The resource id for the icon, if available. May be 0 if one is not available. */
+    int getIconResourceId();
+}
diff --git a/src/com/android/contacts/interactions/ContactInteractionUtil.java b/src/com/android/contacts/interactions/ContactInteractionUtil.java
new file mode 100644
index 0000000..8ec0547
--- /dev/null
+++ b/src/com/android/contacts/interactions/ContactInteractionUtil.java
@@ -0,0 +1,87 @@
+/*
+ * 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.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;
+
+/**
+ * Utility methods for interactions and their loaders
+ */
+public class ContactInteractionUtil {
+
+    /**
+     * @return a string like (?,?,?...) with {@param count} question marks.
+     */
+    @NeededForTesting
+    public static String questionMarks(int count) {
+        Preconditions.checkArgument(count > 0);
+        StringBuilder sb = new StringBuilder("(?");
+        for (int i = 1; i < count; i++) {
+            sb.append(",?");
+        }
+        return sb.append(")").toString();
+    }
+
+    /**
+     * 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());
+    }
+
+    /**
+     * Takes in a timestamp and outputs a human legible date. This checks the timestamp against
+     * compareCalendar.
+     * This formats the date based on a few conditions:
+     * 1. If the timestamp is today, the time is shown
+     * 2. Otherwise show full date and time
+     */
+    @NeededForTesting
+    public static String formatDateStringFromTimestamp(long timestamp, Context context,
+            Calendar compareCalendar) {
+        Calendar interactionCalendar = Calendar.getInstance();
+        interactionCalendar.setTimeInMillis(timestamp);
+
+        // compareCalendar is initialized to today
+        if (compareCalendarDayYear(interactionCalendar, compareCalendar)) {
+            return DateFormat.getTimeInstance(DateFormat.SHORT).format(
+                    interactionCalendar.getTime());
+        }
+
+        return DateUtils.formatDateTime(context, timestamp, DateUtils.FORMAT_SHOW_TIME
+                | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_WEEKDAY
+                | DateUtils.FORMAT_SHOW_YEAR);
+    }
+
+    /**
+     * Compares the day and year of two calendars.
+     */
+    private static boolean compareCalendarDayYear(Calendar c1, Calendar c2) {
+        return c1.get(Calendar.YEAR) == c2.get(Calendar.YEAR) &&
+                c1.get(Calendar.DAY_OF_YEAR) == c2.get(Calendar.DAY_OF_YEAR);
+    }
+}
diff --git a/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java b/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java
new file mode 100644
index 0000000..173f66e
--- /dev/null
+++ b/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java
@@ -0,0 +1,303 @@
+/*
+ * 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.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;
+import android.app.FragmentManager;
+import android.app.LoaderManager.LoaderCallbacks;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnDismissListener;
+import android.content.Loader;
+import android.database.Cursor;
+import android.os.Bundle;
+import android.provider.ContactsContract.RawContacts;
+import android.util.Log;
+
+import java.util.HashSet;
+import java.util.TreeSet;
+
+/**
+ * An interaction invoked to delete multiple contacts.
+ *
+ * This class is very similar to {@link ContactDeletionInteraction}.
+ */
+public class ContactMultiDeletionInteraction extends Fragment
+        implements LoaderCallbacks<Cursor> {
+
+    public interface MultiContactDeleteListener {
+        void onDeletionFinished();
+    }
+
+    private static final String FRAGMENT_TAG = "deleteMultipleContacts";
+    private static final String TAG = "ContactMultiDeletionInteraction";
+    private static final String KEY_ACTIVE = "active";
+    private static final String KEY_CONTACTS_IDS = "contactIds";
+    public static final String ARG_CONTACT_IDS = "contactIds";
+
+    private static final String[] RAW_CONTACT_PROJECTION = new String[] {
+            RawContacts._ID,
+            RawContacts.ACCOUNT_TYPE,
+            RawContacts.DATA_SET,
+            RawContacts.CONTACT_ID,
+    };
+
+    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 boolean mIsLoaderActive;
+    private TreeSet<Long> mContactIds;
+    private Context mContext;
+    private AlertDialog mDialog;
+
+    /**
+     * Starts the interaction.
+     *
+     * @param activity the activity 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) {
+        if (contactIds == null) {
+            return null;
+        }
+
+        final FragmentManager fragmentManager = activity.getFragmentManager();
+        ContactMultiDeletionInteraction fragment =
+                (ContactMultiDeletionInteraction) fragmentManager.findFragmentByTag(FRAGMENT_TAG);
+        if (fragment == null) {
+            fragment = new ContactMultiDeletionInteraction();
+            fragment.setContactIds(contactIds);
+            fragmentManager.beginTransaction().add(fragment, FRAGMENT_TAG)
+                    .commitAllowingStateLoss();
+        } else {
+            fragment.setContactIds(contactIds);
+        }
+        return fragment;
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        mContext = activity;
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        if (mDialog != null && mDialog.isShowing()) {
+            mDialog.setOnDismissListener(null);
+            mDialog.dismiss();
+            mDialog = null;
+        }
+    }
+
+    public void setContactIds(TreeSet<Long> contactIds) {
+        mContactIds = contactIds;
+        mIsLoaderActive = true;
+        if (isStarted()) {
+            Bundle args = new Bundle();
+            args.putSerializable(ARG_CONTACT_IDS, mContactIds);
+            getLoaderManager().restartLoader(R.id.dialog_delete_multiple_contact_loader_id,
+                    args, this);
+        }
+    }
+
+    private boolean isStarted() {
+        return isAdded();
+    }
+
+    @Override
+    public void onStart() {
+        if (mIsLoaderActive) {
+            Bundle args = new Bundle();
+            args.putSerializable(ARG_CONTACT_IDS, mContactIds);
+            getLoaderManager().initLoader(
+                    R.id.dialog_delete_multiple_contact_loader_id, args, this);
+        }
+        super.onStart();
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        if (mDialog != null) {
+            mDialog.hide();
+        }
+    }
+
+    @Override
+    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
+        final TreeSet<Long> contactIds = (TreeSet<Long>) args.getSerializable(ARG_CONTACT_IDS);
+        final Object[] parameterObject = contactIds.toArray();
+        final String[] parameters = new String[contactIds.size()];
+
+        final StringBuilder builder = new StringBuilder();
+        for (int i = 0; i < contactIds.size(); i++) {
+            parameters[i] = String.valueOf(parameterObject[i]);
+            builder.append(RawContacts.CONTACT_ID + " =?");
+            if (i == contactIds.size() -1) {
+                break;
+            }
+            builder.append(" OR ");
+        }
+        return new CursorLoader(mContext, RawContacts.CONTENT_URI, RAW_CONTACT_PROJECTION,
+                builder.toString(), parameters, null);
+    }
+
+    @Override
+    public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
+        if (mDialog != null) {
+            mDialog.dismiss();
+            mDialog = null;
+        }
+
+        if (!mIsLoaderActive) {
+            return;
+        }
+
+        if (cursor == null || cursor.isClosed()) {
+            Log.e(TAG, "Failed to load contacts");
+            return;
+        }
+
+        // This cursor may contain duplicate raw contacts, so we need to de-dupe them first
+        final HashSet<Long> readOnlyRawContacts = Sets.newHashSet();
+        final HashSet<Long> writableRawContacts = Sets.newHashSet();
+        final HashSet<Long> contactIds = Sets.newHashSet();
+
+        AccountTypeManager accountTypes = AccountTypeManager.getInstance(getActivity());
+        cursor.moveToPosition(-1);
+        while (cursor.moveToNext()) {
+            final long rawContactId = cursor.getLong(COLUMN_INDEX_RAW_CONTACT_ID);
+            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);
+            contactIds.add(contactId);
+            final AccountType type = accountTypes.getAccountType(accountType, dataSet);
+            boolean writable = type == null || type.areContactsWritable();
+            if (writable) {
+                writableRawContacts.add(rawContactId);
+            } else {
+                readOnlyRawContacts.add(rawContactId);
+            }
+        }
+
+        final int readOnlyCount = readOnlyRawContacts.size();
+        final int writableCount = writableRawContacts.size();
+
+        final int messageId;
+        int positiveButtonId = android.R.string.ok;
+        if (readOnlyCount > 0 && writableCount > 0) {
+            messageId = R.string.batch_delete_multiple_accounts_confirmation;
+        } else if (readOnlyCount > 0 && writableCount == 0) {
+            messageId = R.string.batch_delete_read_only_contact_confirmation;
+            positiveButtonId = R.string.readOnlyContactWarning_positive_button;
+        } else if (writableCount == 1) {
+            messageId = R.string.single_delete_confirmation;
+            positiveButtonId = R.string.deleteConfirmation_positive_button;
+        } else {
+            messageId = R.string.batch_delete_confirmation;
+            positiveButtonId = R.string.deleteConfirmation_positive_button;
+        }
+
+        // Convert set of contact ids into a format that is easily parcellable and iterated upon
+        // for the sake of ContactSaveService.
+        final Long[] contactIdObjectArray = contactIds.toArray(new Long[contactIds.size()]);
+        final long[] contactIdArray = new long[contactIds.size()];
+        for (int i = 0; i < contactIds.size(); i++) {
+            contactIdArray[i] = contactIdObjectArray[i];
+        }
+
+        showDialog(messageId, positiveButtonId, contactIdArray);
+
+        // We don't want onLoadFinished() calls any more, which may come when the database is
+        // updating.
+        getLoaderManager().destroyLoader(R.id.dialog_delete_multiple_contact_loader_id);
+    }
+
+    @Override
+    public void onLoaderReset(Loader<Cursor> loader) {
+    }
+
+    private void showDialog(int messageId, int positiveButtonId, final long[] contactIds) {
+        mDialog = new AlertDialog.Builder(getActivity())
+                .setIconAttribute(android.R.attr.alertDialogIcon)
+                .setMessage(messageId)
+                .setNegativeButton(android.R.string.cancel, null)
+                .setPositiveButton(positiveButtonId,
+                    new DialogInterface.OnClickListener() {
+                        @Override
+                        public void onClick(DialogInterface dialog, int whichButton) {
+                            doDeleteContact(contactIds);
+                        }
+                    }
+                )
+                .create();
+
+        mDialog.setOnDismissListener(new OnDismissListener() {
+            @Override
+            public void onDismiss(DialogInterface dialog) {
+                mIsLoaderActive = false;
+                mDialog = null;
+            }
+        });
+        mDialog.show();
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putBoolean(KEY_ACTIVE, mIsLoaderActive);
+        outState.putSerializable(KEY_CONTACTS_IDS, mContactIds);
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        if (savedInstanceState != null) {
+            mIsLoaderActive = savedInstanceState.getBoolean(KEY_ACTIVE);
+            mContactIds = (TreeSet<Long>) savedInstanceState.getSerializable(KEY_CONTACTS_IDS);
+        }
+    }
+
+    protected void doDeleteContact(long[] contactIds) {
+        mContext.startService(ContactSaveService.createDeleteMultipleContactsIntent(mContext,
+                contactIds));
+        notifyListenerActivity();
+    }
+
+    private void notifyListenerActivity() {
+        if (getActivity() instanceof MultiContactDeleteListener) {
+            final MultiContactDeleteListener listener = (MultiContactDeleteListener) getActivity();
+            listener.onDeletionFinished();
+        }
+    }
+}
diff --git a/src/com/android/contacts/interactions/GroupCreationDialogFragment.java b/src/com/android/contacts/interactions/GroupCreationDialogFragment.java
new file mode 100644
index 0000000..e998688
--- /dev/null
+++ b/src/com/android/contacts/interactions/GroupCreationDialogFragment.java
@@ -0,0 +1,100 @@
+/*
+ * 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
new file mode 100644
index 0000000..752a89a
--- /dev/null
+++ b/src/com/android/contacts/interactions/GroupDeletionDialogFragment.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.interactions;
+
+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 com.android.contacts.ContactSaveService;
+import com.android.contacts.R;
+
+/**
+ * A dialog for deleting a group.
+ */
+public class GroupDeletionDialogFragment extends DialogFragment {
+
+    private static final String ARG_GROUP_ID = "groupId";
+    private static final String ARG_LABEL = "label";
+    private static final String ARG_SHOULD_END_ACTIVITY = "endActivity";
+    private static final String ARG_CALLBACK_ACTION = "callbackAction";
+
+    public static void show(FragmentManager fragmentManager, long groupId, String label,
+            boolean endActivity) {
+        show(fragmentManager, groupId, label, endActivity, /* callbackAction */ null);
+    }
+
+    public static void show(FragmentManager fragmentManager, long groupId, String label,
+            boolean endActivity, String callbackAction) {
+        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);
+        args.putString(ARG_CALLBACK_ACTION, callbackAction);
+        dialog.setArguments(args);
+        dialog.show(fragmentManager, "deleteGroup");
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        String label = getArguments().getString(ARG_LABEL);
+        String message = getActivity().getString(R.string.delete_group_dialog_message, label);
+
+        return new AlertDialog.Builder(getActivity())
+                .setIconAttribute(android.R.attr.alertDialogIcon)
+                .setMessage(message)
+                .setPositiveButton(android.R.string.ok,
+                    new DialogInterface.OnClickListener() {
+                        @Override
+                        public void onClick(DialogInterface dialog, int whichButton) {
+                            deleteGroup();
+                        }
+                    }
+                )
+                .setNegativeButton(android.R.string.cancel, null)
+                .create();
+    }
+
+    protected void deleteGroup() {
+        Bundle arguments = getArguments();
+        long groupId = arguments.getLong(ARG_GROUP_ID);
+        final String callbackAction = arguments.getString(ARG_CALLBACK_ACTION);
+
+        getActivity().startService(ContactSaveService.createGroupDeletionIntent(
+                getActivity(), groupId, getActivity().getClass(), callbackAction));
+        if (shouldEndActivity()) {
+            getActivity().finish();
+        }
+    }
+
+    private boolean shouldEndActivity() {
+        return getArguments().getBoolean(ARG_SHOULD_END_ACTIVITY);
+    }
+}
diff --git a/src/com/android/contacts/interactions/GroupNameDialogFragment.java b/src/com/android/contacts/interactions/GroupNameDialogFragment.java
new file mode 100644
index 0000000..5efccfc
--- /dev/null
+++ b/src/com/android/contacts/interactions/GroupNameDialogFragment.java
@@ -0,0 +1,101 @@
+/*
+ * 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.InputFilter;
+import android.text.InputType;
+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.
+ */
+// TODO: consolidate it with GroupNameEditDialogFragment
+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);
+        final int maxLength = getResources().getInteger(R.integer.group_name_max_length);
+        editText.setFilters(new InputFilter[] { new InputFilter.LengthFilter(maxLength) });
+        editText.setInputType(InputType.TYPE_CLASS_TEXT);
+        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/SmsInteraction.java b/src/com/android/contacts/interactions/SmsInteraction.java
new file mode 100644
index 0000000..ba0070c
--- /dev/null
+++ b/src/com/android/contacts/interactions/SmsInteraction.java
@@ -0,0 +1,176 @@
+/*
+ * 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.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;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.provider.Telephony.Sms;
+import android.text.BidiFormatter;
+import android.text.Spannable;
+import android.text.TextDirectionHeuristics;
+
+/**
+ * Represents an sms interaction, wrapping the columns in
+ * {@link android.provider.Telephony.Sms}.
+ */
+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 BidiFormatter sBidiFormatter = BidiFormatter.getInstance();
+
+    private ContentValues mValues;
+
+    public SmsInteraction(ContentValues values) {
+        mValues = values;
+    }
+
+    @Override
+    public Intent getIntent() {
+        String address = getAddress();
+        return address == null ? null : new Intent(Intent.ACTION_VIEW).setData(
+                Uri.parse(URI_TARGET_PREFIX + address));
+    }
+
+    @Override
+    public long getInteractionDate() {
+        Long date = getDate();
+        return date == null ? -1 : date;
+    }
+
+    @Override
+    public String getViewHeader(Context context) {
+        String body = getBody();
+        if (getType() == Sms.MESSAGE_TYPE_SENT) {
+            body = context.getResources().getString(R.string.message_from_you_prefix, body);
+        }
+        return body;
+    }
+
+    @Override
+    public String getViewBody(Context context) {
+        return getAddress();
+    }
+
+    @Override
+    public String getViewFooter(Context context) {
+        Long date = getDate();
+        return date == null ? null : ContactInteractionUtil.formatDateStringFromTimestamp(
+                date, context);
+    }
+
+    @Override
+    public Drawable getIcon(Context context) {
+        return context.getResources().getDrawable(SMS_ICON_RES);
+    }
+
+    @Override
+    public Drawable getBodyIcon(Context context) {
+        return null;
+    }
+
+    @Override
+    public Drawable getFooterIcon(Context context) {
+        return null;
+    }
+
+    public String getAddress() {
+        final String address = mValues.getAsString(Sms.ADDRESS);
+        return address == null ? null :
+            sBidiFormatter.unicodeWrap(address, TextDirectionHeuristics.LTR);
+    }
+
+    public String getBody() {
+        return mValues.getAsString(Sms.BODY);
+    }
+
+    public Long getDate() {
+        return mValues.getAsLong(Sms.DATE);
+    }
+
+
+    public Long getDateSent() {
+        return mValues.getAsLong(Sms.DATE_SENT);
+    }
+
+    public Integer getErrorCode() {
+        return mValues.getAsInteger(Sms.ERROR_CODE);
+    }
+
+    public Boolean getLocked() {
+        return mValues.getAsBoolean(Sms.LOCKED);
+    }
+
+    public Integer getPerson() {
+        return mValues.getAsInteger(Sms.PERSON);
+    }
+
+    public Integer getProtocol() {
+        return mValues.getAsInteger(Sms.PROTOCOL);
+    }
+
+    public Boolean getRead() {
+        return mValues.getAsBoolean(Sms.READ);
+    }
+
+    public Boolean getReplyPathPresent() {
+        return mValues.getAsBoolean(Sms.REPLY_PATH_PRESENT);
+    }
+
+    public Boolean getSeen() {
+        return mValues.getAsBoolean(Sms.SEEN);
+    }
+
+    public String getServiceCenter() {
+        return mValues.getAsString(Sms.SERVICE_CENTER);
+    }
+
+    public Integer getStatus() {
+        return mValues.getAsInteger(Sms.STATUS);
+    }
+
+    public String getSubject() {
+        return mValues.getAsString(Sms.SUBJECT);
+    }
+
+    public Integer getThreadId() {
+        return mValues.getAsInteger(Sms.THREAD_ID);
+    }
+
+    public Integer getType() {
+        return mValues.getAsInteger(Sms.TYPE);
+    }
+
+    @Override
+    public Spannable getContentDescription(Context context) {
+        final String phoneNumber = getViewBody(context);
+        final String contentDescription = context.getResources().getString(
+                R.string.content_description_recent_sms,
+                getViewHeader(context), phoneNumber, getViewFooter(context));
+        return ContactDisplayUtils.getTelephoneTtsSpannable(contentDescription, phoneNumber);
+    }
+
+    @Override
+    public int getIconResourceId() {
+        return SMS_ICON_RES;
+    }
+}
diff --git a/src/com/android/contacts/interactions/SmsInteractionsLoader.java b/src/com/android/contacts/interactions/SmsInteractionsLoader.java
new file mode 100644
index 0000000..5c7d5e3
--- /dev/null
+++ b/src/com/android/contacts/interactions/SmsInteractionsLoader.java
@@ -0,0 +1,158 @@
+/*
+ * 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.interactions;
+
+import android.content.AsyncTaskLoader;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.database.Cursor;
+import android.database.DatabaseUtils;
+import android.provider.Telephony;
+import android.util.Log;
+
+import com.android.contacts.common.compat.TelephonyThreadsCompat;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Loads the most recent sms between the passed in phone numbers.
+ *
+ * This is a two part process. The first step is retrieving the threadIds for each of the phone
+ * numbers using fuzzy matching. The next step is to run another query against these threadIds
+ * to retrieve the actual sms.
+ */
+public class SmsInteractionsLoader extends AsyncTaskLoader<List<ContactInteraction>> {
+
+    private static final String TAG = SmsInteractionsLoader.class.getSimpleName();
+
+    private String[] mPhoneNums;
+    private int mMaxToRetrieve;
+    private List<ContactInteraction> mData;
+
+    /**
+     * Loads a list of SmsInteraction from the supplied phone numbers.
+     */
+    public SmsInteractionsLoader(Context context, String[] phoneNums,
+            int maxToRetrieve) {
+        super(context);
+        Log.v(TAG, "SmsInteractionsLoader");
+        mPhoneNums = phoneNums;
+        mMaxToRetrieve = maxToRetrieve;
+    }
+
+    @Override
+    public List<ContactInteraction> loadInBackground() {
+        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) {
+            return Collections.emptyList();
+        }
+
+        // Retrieve the thread IDs
+        List<String> threadIdStrings = new ArrayList<>();
+        for (String phone : mPhoneNums) {
+            // TODO: the phone numbers added to the ContactInteraction result should retain their
+            // original formatting since TalkBack is not reading the normalized numbers correctly
+            try {
+                threadIdStrings.add(String.valueOf(
+                        TelephonyThreadsCompat.getOrCreateThreadId(getContext(), phone)));
+            } catch (Exception e) {
+                // Do nothing. Telephony.Threads.getOrCreateThreadId() throws exceptions when
+                // it can't find/create a threadId (b/17657656).
+            }
+        }
+
+        // Query the SMS database for the threads
+        Cursor cursor = getSmsCursorFromThreads(threadIdStrings);
+        if (cursor != null) {
+            try {
+                List<ContactInteraction> interactions = new ArrayList<>();
+                while (cursor.moveToNext()) {
+                    ContentValues values = new ContentValues();
+                    DatabaseUtils.cursorRowToContentValues(cursor, values);
+                    interactions.add(new SmsInteraction(values));
+                }
+
+                return interactions;
+            } finally {
+                cursor.close();
+            }
+        }
+
+        return Collections.emptyList();
+    }
+
+    /**
+     * Return the most recent messages between a list of threads
+     */
+    private Cursor getSmsCursorFromThreads(List<String> threadIds) {
+        if (threadIds.size() == 0) {
+            return null;
+        }
+        String selection = Telephony.Sms.THREAD_ID + " IN "
+                + ContactInteractionUtil.questionMarks(threadIds.size());
+
+        return getContext().getContentResolver().query(
+                Telephony.Sms.CONTENT_URI,
+                /* projection = */ null,
+                selection,
+                threadIds.toArray(new String[threadIds.size()]),
+                Telephony.Sms.DEFAULT_SORT_ORDER
+                        + " LIMIT " + mMaxToRetrieve);
+    }
+
+    @Override
+    protected void onStartLoading() {
+        super.onStartLoading();
+
+        if (mData != null) {
+            deliverResult(mData);
+        }
+
+        if (takeContentChanged() || mData == null) {
+            forceLoad();
+        }
+    }
+
+    @Override
+    protected void onStopLoading() {
+        // Attempt to cancel the current load task if possible.
+        cancelLoad();
+    }
+
+    @Override
+    public void deliverResult(List<ContactInteraction> data) {
+        mData = data;
+        if (isStarted()) {
+            super.deliverResult(data);
+        }
+    }
+
+    @Override
+    protected void onReset() {
+        super.onReset();
+
+        // Ensure the loader is stopped
+        onStopLoading();
+        if (mData != null) {
+            mData.clear();
+        }
+    }
+}
diff --git a/src/com/android/contacts/interactions/TestLoaderManagerBase.java b/src/com/android/contacts/interactions/TestLoaderManagerBase.java
new file mode 100644
index 0000000..92ae3b9
--- /dev/null
+++ b/src/com/android/contacts/interactions/TestLoaderManagerBase.java
@@ -0,0 +1,89 @@
+/*
+ * 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.interactions;
+
+import android.app.LoaderManager;
+
+/**
+ * A {@link LoaderManager} that records which loaders have been completed.
+ * <p>
+ * You should wrap the existing LoaderManager with an instance of this class, which will then
+ * delegate to the original object.
+ * <p>
+ * Typically, one would override {@link android.app.Activity#getLoaderManager()} to return the
+ * TestLoaderManager and ensuring it wraps the {@link LoaderManager} for this object, e.g.:
+ * <pre>
+ *   private TestLoaderManager mTestLoaderManager;
+ *
+ *   public LoaderManager getLoaderManager() {
+ *     LoaderManager loaderManager = super.getLoaderManager();
+ *     if (mTestLoaderManager != null) {
+ *       mTestLoaderManager.setDelegate(loaderManager);
+ *       return mTestLoaderManager;
+ *     } else {
+ *       return loaderManager;
+ *     }
+ *   }
+ *
+ *   void setTestLoaderManager(TestLoaderManager testLoaderManager) {
+ *     mTestLoaderManager = testLoaderManager;
+ *   }
+ * </pre>
+ * In the tests, one would set the TestLoaderManager upon creating the activity, and then wait for
+ * the loader to complete.
+ * <pre>
+ *   public void testLoadedCorrect() {
+ *     TestLoaderManager testLoaderManager = new TestLoaderManager();
+ *     getActivity().setTestLoaderManager(testLoaderManager);
+ *     runOnUiThread(new Runnable() { public void run() { getActivity().startLoading(); } });
+ *     testLoaderManager.waitForLoader(R.id.test_loader_id);
+ *   }
+ * </pre>
+ * If the loader completes before the call to {@link #waitForLoaders(int...)}, the TestLoaderManager
+ * will have stored the fact that the loader has completed and correctly terminate immediately.
+ * <p>
+ * It one needs to wait for the same loader multiple times, call {@link #reset()} between the them
+ * as in:
+ * <pre>
+ *   public void testLoadedCorrect() {
+ *     TestLoaderManager testLoaderManager = new TestLoaderManager();
+ *     getActivity().setTestLoaderManager(testLoaderManager);
+ *     runOnUiThread(new Runnable() { public void run() { getActivity().startLoading(); } });
+ *     testLoaderManager.waitForLoader(R.id.test_loader_id);
+ *     testLoaderManager.reset();
+ *     // Load and wait again.
+ *     runOnUiThread(new Runnable() { public void run() { getActivity().startLoading(); } });
+ *     testLoaderManager.waitForLoader(R.id.test_loader_id);
+ *   }
+ * </pre>
+ */
+abstract class TestLoaderManagerBase extends LoaderManager {
+
+    /**
+     * Waits for the specified loaders to complete loading.
+     */
+    public abstract void waitForLoaders(int... loaderIds);
+
+    /**
+     * Sets the object to which we delegate the actual work.
+     * <p>
+     * It can not be set to null. Once set, it cannot be changed (but it allows setting it to the
+     * same value again).
+     */
+    public abstract void setDelegate(LoaderManager delegate);
+
+}
diff --git a/src/com/android/contacts/list/ContactBrowseListFragment.java b/src/com/android/contacts/list/ContactBrowseListFragment.java
new file mode 100644
index 0000000..2060068
--- /dev/null
+++ b/src/com/android/contacts/list/ContactBrowseListFragment.java
@@ -0,0 +1,688 @@
+/*
+ * 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.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.Loader;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.Editor;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.preference.PreferenceManager;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Directory;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.common.widget.CompositeCursorAdapter.Partition;
+import com.android.contacts.common.list.AutoScrollListView;
+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.logging.ListEvent.ListType;
+import com.android.contacts.common.util.ContactLoaderUtils;
+
+import java.util.List;
+
+/**
+ * Fragment containing a contact list used for browsing (as compared to
+ * picking a contact with one of the PICK intents).
+ */
+public abstract class ContactBrowseListFragment extends
+        MultiSelectContactsListFragment<ContactListAdapter> {
+
+    private static final String TAG = "ContactList";
+
+    private static final String KEY_SELECTED_URI = "selectedUri";
+    private static final String KEY_SELECTION_VERIFIED = "selectionVerified";
+    private static final String KEY_FILTER = "filter";
+    private static final String KEY_LAST_SELECTED_POSITION = "lastSelected";
+
+    private static final String PERSISTENT_SELECTION_PREFIX = "defaultContactBrowserSelection";
+
+    /**
+     * The id for a delayed message that triggers automatic selection of the first
+     * found contact in search mode.
+     */
+    private static final int MESSAGE_AUTOSELECT_FIRST_FOUND_CONTACT = 1;
+
+    /**
+     * The delay that is used for automatically selecting the first found contact.
+     */
+    private static final int DELAY_AUTOSELECT_FIRST_FOUND_CONTACT_MILLIS = 500;
+
+    /**
+     * The minimum number of characters in the search query that is required
+     * before we automatically select the first found contact.
+     */
+    private static final int AUTOSELECT_FIRST_FOUND_CONTACT_MIN_QUERY_LENGTH = 2;
+
+    private SharedPreferences mPrefs;
+    private Handler mHandler;
+
+    private boolean mStartedLoading;
+    private boolean mSelectionRequired;
+    private boolean mSelectionToScreenRequested;
+    private boolean mSmoothScrollRequested;
+    private boolean mSelectionPersistenceRequested;
+    private Uri mSelectedContactUri;
+    private long mSelectedContactDirectoryId;
+    private String mSelectedContactLookupKey;
+    private long mSelectedContactId;
+    private boolean mSelectionVerified;
+    private int mLastSelectedPosition = -1;
+    private boolean mRefreshingContactUri;
+    private ContactListFilter mFilter;
+    private String mPersistentSelectionPrefix = PERSISTENT_SELECTION_PREFIX;
+
+    protected OnContactBrowserActionListener mListener;
+    private ContactLookupTask mContactLookupTask;
+
+    private final class ContactLookupTask extends AsyncTask<Void, Void, Uri> {
+
+        private final Uri mUri;
+        private boolean mIsCancelled;
+
+        public ContactLookupTask(Uri uri) {
+            mUri = uri;
+        }
+
+        @Override
+        protected Uri doInBackground(Void... args) {
+            Cursor cursor = null;
+            try {
+                final ContentResolver resolver = getContext().getContentResolver();
+                final Uri uriCurrentFormat = ContactLoaderUtils.ensureIsContactUri(resolver, mUri);
+                cursor = resolver.query(uriCurrentFormat,
+                        new String[] { Contacts._ID, Contacts.LOOKUP_KEY }, null, null, null);
+
+                if (cursor != null && cursor.moveToFirst()) {
+                    final long contactId = cursor.getLong(0);
+                    final String lookupKey = cursor.getString(1);
+                    if (contactId != 0 && !TextUtils.isEmpty(lookupKey)) {
+                        return Contacts.getLookupUri(contactId, lookupKey);
+                    }
+                }
+
+                Log.e(TAG, "Error: No contact ID or lookup key for contact " + mUri);
+                return null;
+            } catch (Exception e) {
+                Log.e(TAG, "Error loading the contact: " + mUri, e);
+                return null;
+            } finally {
+                if (cursor != null) {
+                    cursor.close();
+                }
+            }
+        }
+
+        public void cancel() {
+            super.cancel(true);
+            // Use a flag to keep track of whether the {@link AsyncTask} was cancelled or not in
+            // order to ensure onPostExecute() is not executed after the cancel request. The flag is
+            // necessary because {@link AsyncTask} still calls onPostExecute() if the cancel request
+            // came after the worker thread was finished.
+            mIsCancelled = true;
+        }
+
+        @Override
+        protected void onPostExecute(Uri uri) {
+            // Make sure the {@link Fragment} is at least still attached to the {@link Activity}
+            // before continuing. Null URIs should still be allowed so that the list can be
+            // refreshed and a default contact can be selected (i.e. the case of deleted
+            // contacts).
+            if (mIsCancelled || !isAdded()) {
+                return;
+            }
+            onContactUriQueryFinished(uri);
+        }
+    }
+
+    private boolean mDelaySelection;
+
+    private Handler getHandler() {
+        if (mHandler == null) {
+            mHandler = new Handler() {
+                @Override
+                public void handleMessage(Message msg) {
+                    switch (msg.what) {
+                        case MESSAGE_AUTOSELECT_FIRST_FOUND_CONTACT:
+                            selectDefaultContact();
+                            break;
+                    }
+                }
+            };
+        }
+        return mHandler;
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        mPrefs = PreferenceManager.getDefaultSharedPreferences(activity);
+        restoreFilter();
+        restoreSelectedUri(false);
+    }
+
+    @Override
+    protected void setSearchMode(boolean flag) {
+        if (isSearchMode() != flag) {
+            if (!flag) {
+                restoreSelectedUri(true);
+            }
+            super.setSearchMode(flag);
+        }
+    }
+
+    public void setFilter(ContactListFilter filter) {
+        setFilter(filter, true);
+    }
+
+    public void setFilter(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);
+
+        setListType(filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS
+                ? ListType.ALL_CONTACTS : ListType.ACCOUNT);
+        setLogListEvents(true);
+
+        mFilter = filter;
+        mLastSelectedPosition = -1;
+
+        if (filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) {
+            saveFilter();
+        }
+
+        if (restoreSelectedUri) {
+            mSelectedContactUri = null;
+            restoreSelectedUri(true);
+        }
+        reloadData();
+    }
+
+    public ContactListFilter getFilter() {
+        return mFilter;
+    }
+
+    @Override
+    public void restoreSavedState(Bundle savedState) {
+        super.restoreSavedState(savedState);
+
+        if (savedState == null) {
+            return;
+        }
+
+        mFilter = savedState.getParcelable(KEY_FILTER);
+        mSelectedContactUri = savedState.getParcelable(KEY_SELECTED_URI);
+        mSelectionVerified = savedState.getBoolean(KEY_SELECTION_VERIFIED);
+        mLastSelectedPosition = savedState.getInt(KEY_LAST_SELECTED_POSITION);
+        parseSelectedContactUri();
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putParcelable(KEY_FILTER, mFilter);
+        outState.putParcelable(KEY_SELECTED_URI, mSelectedContactUri);
+        outState.putBoolean(KEY_SELECTION_VERIFIED, mSelectionVerified);
+        outState.putInt(KEY_LAST_SELECTED_POSITION, mLastSelectedPosition);
+    }
+
+    protected void refreshSelectedContactUri() {
+        if (mContactLookupTask != null) {
+            mContactLookupTask.cancel();
+        }
+
+        if (!isSelectionVisible()) {
+            return;
+        }
+
+        mRefreshingContactUri = true;
+
+        if (mSelectedContactUri == null) {
+            onContactUriQueryFinished(null);
+            return;
+        }
+
+        if (mSelectedContactDirectoryId != Directory.DEFAULT
+                && mSelectedContactDirectoryId != Directory.LOCAL_INVISIBLE) {
+            onContactUriQueryFinished(mSelectedContactUri);
+        } else {
+            mContactLookupTask = new ContactLookupTask(mSelectedContactUri);
+            mContactLookupTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (Void[])null);
+        }
+    }
+
+    protected void onContactUriQueryFinished(Uri uri) {
+        mRefreshingContactUri = false;
+        mSelectedContactUri = uri;
+        parseSelectedContactUri();
+        checkSelection();
+    }
+
+    public Uri getSelectedContactUri() {
+        return mSelectedContactUri;
+    }
+
+    /**
+     * Sets the new selection for the list.
+     */
+    public void setSelectedContactUri(Uri uri) {
+        setSelectedContactUri(uri, true, false /* no smooth scroll */, true, false);
+    }
+
+    @Override
+    public void setQueryString(String queryString, boolean delaySelection) {
+        mDelaySelection = delaySelection;
+        super.setQueryString(queryString, delaySelection);
+    }
+
+    /**
+     * Sets whether or not a contact selection must be made.
+     * @param required if true, we need to check if the selection is present in
+     *            the list and if not notify the listener so that it can load a
+     *            different list.
+     * TODO: Figure out how to reconcile this with {@link #setSelectedContactUri},
+     * without causing unnecessary loading of the list if the selected contact URI is
+     * the same as before.
+     */
+    public void setSelectionRequired(boolean required) {
+        mSelectionRequired = required;
+    }
+
+    /**
+     * Sets the new contact selection.
+     *
+     * @param uri the new selection
+     * @param required if true, we need to check if the selection is present in
+     *            the list and if not notify the listener so that it can load a
+     *            different list
+     * @param smoothScroll if true, the UI will roll smoothly to the new
+     *            selection
+     * @param persistent if true, the selection will be stored in shared
+     *            preferences.
+     * @param willReloadData if true, the selection will be remembered but not
+     *            actually shown, because we are expecting that the data will be
+     *            reloaded momentarily
+     */
+    private void setSelectedContactUri(Uri uri, boolean required, boolean smoothScroll,
+            boolean persistent, boolean willReloadData) {
+        mSmoothScrollRequested = smoothScroll;
+        mSelectionToScreenRequested = true;
+
+        if ((mSelectedContactUri == null && uri != null)
+                || (mSelectedContactUri != null && !mSelectedContactUri.equals(uri))) {
+            mSelectionVerified = false;
+            mSelectionRequired = required;
+            mSelectionPersistenceRequested = persistent;
+            mSelectedContactUri = uri;
+            parseSelectedContactUri();
+
+            if (!willReloadData) {
+                // Configure the adapter to show the selection based on the
+                // lookup key extracted from the URI
+                ContactListAdapter adapter = getAdapter();
+                if (adapter != null) {
+                    adapter.setSelectedContact(mSelectedContactDirectoryId,
+                            mSelectedContactLookupKey, mSelectedContactId);
+                    getListView().invalidateViews();
+                }
+            }
+
+            // Also, launch a loader to pick up a new lookup URI in case it has changed
+            refreshSelectedContactUri();
+        }
+    }
+
+    private void parseSelectedContactUri() {
+        if (mSelectedContactUri != null) {
+            String directoryParam =
+                    mSelectedContactUri.getQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY);
+            mSelectedContactDirectoryId = TextUtils.isEmpty(directoryParam) ? Directory.DEFAULT
+                    : Long.parseLong(directoryParam);
+            if (mSelectedContactUri.toString().startsWith(Contacts.CONTENT_LOOKUP_URI.toString())) {
+                List<String> pathSegments = mSelectedContactUri.getPathSegments();
+                mSelectedContactLookupKey = Uri.encode(pathSegments.get(2));
+                if (pathSegments.size() == 4) {
+                    mSelectedContactId = ContentUris.parseId(mSelectedContactUri);
+                }
+            } else if (mSelectedContactUri.toString().startsWith(Contacts.CONTENT_URI.toString()) &&
+                    mSelectedContactUri.getPathSegments().size() >= 2) {
+                mSelectedContactLookupKey = null;
+                mSelectedContactId = ContentUris.parseId(mSelectedContactUri);
+            } else {
+                Log.e(TAG, "Unsupported contact URI: " + mSelectedContactUri);
+                mSelectedContactLookupKey = null;
+                mSelectedContactId = 0;
+            }
+
+        } else {
+            mSelectedContactDirectoryId = Directory.DEFAULT;
+            mSelectedContactLookupKey = null;
+            mSelectedContactId = 0;
+        }
+    }
+
+    @Override
+    public ContactListAdapter getAdapter() {
+        return (ContactListAdapter) super.getAdapter();
+    }
+
+    @Override
+    protected void configureAdapter() {
+        super.configureAdapter();
+
+        ContactListAdapter adapter = getAdapter();
+        if (adapter == null) {
+            return;
+        }
+
+        boolean searchMode = isSearchMode();
+        if (!searchMode && mFilter != null) {
+            adapter.setFilter(mFilter);
+            if (mSelectionRequired
+                    || mFilter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
+                adapter.setSelectedContact(
+                        mSelectedContactDirectoryId, mSelectedContactLookupKey, mSelectedContactId);
+            }
+        }
+
+        adapter.setIncludeFavorites(!searchMode
+                && mFilter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS);
+    }
+
+    @Override
+    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+        super.onLoadFinished(loader, data);
+        mSelectionVerified = false;
+
+        // Refresh the currently selected lookup in case it changed while we were sleeping
+        refreshSelectedContactUri();
+    }
+
+    @Override
+    public void onLoaderReset(Loader<Cursor> loader) {
+    }
+
+    private void checkSelection() {
+        if (mSelectionVerified) {
+            return;
+        }
+
+        if (mRefreshingContactUri) {
+            return;
+        }
+
+        if (isLoadingDirectoryList()) {
+            return;
+        }
+
+        ContactListAdapter adapter = getAdapter();
+        if (adapter == null) {
+            return;
+        }
+
+        boolean directoryLoading = true;
+        int count = adapter.getPartitionCount();
+        for (int i = 0; i < count; i++) {
+            Partition partition = adapter.getPartition(i);
+            if (partition instanceof DirectoryPartition) {
+                DirectoryPartition directory = (DirectoryPartition) partition;
+                if (directory.getDirectoryId() == mSelectedContactDirectoryId) {
+                    directoryLoading = directory.isLoading();
+                    break;
+                }
+            }
+        }
+
+        if (directoryLoading) {
+            return;
+        }
+
+        adapter.setSelectedContact(
+                mSelectedContactDirectoryId, mSelectedContactLookupKey, mSelectedContactId);
+
+        final int selectedPosition = adapter.getSelectedContactPosition();
+        if (selectedPosition != -1) {
+            mLastSelectedPosition = selectedPosition;
+        } else {
+            if (isSearchMode()) {
+                if (mDelaySelection) {
+                    selectFirstFoundContactAfterDelay();
+                    if (mListener != null) {
+                        mListener.onSelectionChange();
+                    }
+                    return;
+                }
+            } else if (mSelectionRequired) {
+                // A specific contact was requested, but it's not in the loaded list.
+
+                // Try reconfiguring and reloading the list that will hopefully contain
+                // the requested contact. Only take one attempt to avoid an infinite loop
+                // in case the contact cannot be found at all.
+                mSelectionRequired = false;
+
+                // If we were looking at a different specific contact, just reload
+                // FILTER_TYPE_ALL_ACCOUNTS is needed for the case where a new contact is added
+                // on a tablet and the loader is returning a stale list.  In this case, the contact
+                // will not be found until the next load. b/7621855 This will only fix the most
+                // common case where all accounts are shown. It will not fix the one account case.
+                // TODO: we may want to add more FILTER_TYPEs or relax this check to fix all other
+                // FILTER_TYPE cases.
+                if (mFilter != null
+                        && (mFilter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT
+                        || mFilter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS)) {
+                    reloadData();
+                } else {
+                    // Otherwise, call the listener, which will adjust the filter.
+                    notifyInvalidSelection();
+                }
+                return;
+            } else if (mFilter != null
+                    && mFilter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
+                // If we were trying to load a specific contact, but that contact no longer
+                // exists, call the listener, which will adjust the filter.
+                notifyInvalidSelection();
+                return;
+            }
+
+            saveSelectedUri(null);
+            selectDefaultContact();
+        }
+
+        mSelectionRequired = false;
+        mSelectionVerified = true;
+
+        if (mSelectionPersistenceRequested) {
+            saveSelectedUri(mSelectedContactUri);
+            mSelectionPersistenceRequested = false;
+        }
+
+        if (mSelectionToScreenRequested) {
+            requestSelectionToScreen(selectedPosition);
+        }
+
+        getListView().invalidateViews();
+
+        if (mListener != null) {
+            mListener.onSelectionChange();
+        }
+    }
+
+    /**
+     * Automatically selects the first found contact in search mode.  The selection
+     * is updated after a delay to allow the user to type without to much UI churn
+     * and to save bandwidth on directory queries.
+     */
+    public void selectFirstFoundContactAfterDelay() {
+        Handler handler = getHandler();
+        handler.removeMessages(MESSAGE_AUTOSELECT_FIRST_FOUND_CONTACT);
+
+        String queryString = getQueryString();
+        if (queryString != null
+                && queryString.length() >= AUTOSELECT_FIRST_FOUND_CONTACT_MIN_QUERY_LENGTH) {
+            handler.sendEmptyMessageDelayed(MESSAGE_AUTOSELECT_FIRST_FOUND_CONTACT,
+                    DELAY_AUTOSELECT_FIRST_FOUND_CONTACT_MILLIS);
+        } else {
+            setSelectedContactUri(null, false, false, false, false);
+        }
+    }
+
+    protected void selectDefaultContact() {
+        Uri contactUri = null;
+        ContactListAdapter adapter = getAdapter();
+        if (mLastSelectedPosition != -1) {
+            int count = adapter.getCount();
+            int pos = mLastSelectedPosition;
+            if (pos >= count && count > 0) {
+                pos = count - 1;
+            }
+            contactUri = adapter.getContactUri(pos);
+        }
+
+        if (contactUri == null) {
+            contactUri = adapter.getFirstContactUri();
+        }
+
+        setSelectedContactUri(contactUri, false, mSmoothScrollRequested, false, false);
+    }
+
+    protected void requestSelectionToScreen(int selectedPosition) {
+        if (selectedPosition != -1) {
+            AutoScrollListView listView = (AutoScrollListView)getListView();
+            listView.requestPositionToScreen(
+                    selectedPosition + listView.getHeaderViewsCount(), mSmoothScrollRequested);
+            mSelectionToScreenRequested = false;
+        }
+    }
+
+    @Override
+    public boolean isLoading() {
+        return mRefreshingContactUri || super.isLoading();
+    }
+
+    @Override
+    protected void startLoading() {
+        mStartedLoading = true;
+        mSelectionVerified = false;
+        super.startLoading();
+    }
+
+    public void reloadDataAndSetSelectedUri(Uri uri) {
+        setSelectedContactUri(uri, true, true, true, true);
+        reloadData();
+    }
+
+    @Override
+    public void reloadData() {
+        if (mStartedLoading) {
+            mSelectionVerified = false;
+            mLastSelectedPosition = -1;
+            super.reloadData();
+        }
+    }
+
+    public void setOnContactListActionListener(OnContactBrowserActionListener listener) {
+        mListener = listener;
+    }
+
+    public void viewContact(int position, Uri contactUri, boolean isEnterpriseContact) {
+        setSelectedContactUri(contactUri, false, false, true, false);
+        if (mListener != null) mListener.onViewContactAction(position, contactUri,
+                isEnterpriseContact);
+    }
+
+    public void deleteContact(Uri contactUri) {
+        if (mListener != null) mListener.onDeleteContactAction(contactUri);
+    }
+
+    private void notifyInvalidSelection() {
+        if (mListener != null) mListener.onInvalidSelection();
+    }
+
+    @Override
+    protected void finish() {
+        super.finish();
+        if (mListener != null) mListener.onFinishAction();
+    }
+
+    private void saveSelectedUri(Uri contactUri) {
+        if (isSearchMode()) {
+            return;
+        }
+
+        ContactListFilter.storeToPreferences(mPrefs, mFilter);
+
+        Editor editor = mPrefs.edit();
+        if (contactUri == null) {
+            editor.remove(getPersistentSelectionKey());
+        } else {
+            editor.putString(getPersistentSelectionKey(), contactUri.toString());
+        }
+        editor.apply();
+    }
+
+    private void restoreSelectedUri(boolean willReloadData) {
+        // The meaning of mSelectionRequired is that we need to show some
+        // selection other than the previous selection saved in shared preferences
+        if (mSelectionRequired) {
+            return;
+        }
+
+        String selectedUri = mPrefs.getString(getPersistentSelectionKey(), null);
+        if (selectedUri == null) {
+            setSelectedContactUri(null, false, false, false, willReloadData);
+        } else {
+            setSelectedContactUri(Uri.parse(selectedUri), false, false, false, willReloadData);
+        }
+    }
+
+    private void saveFilter() {
+        ContactListFilter.storeToPreferences(mPrefs, mFilter);
+    }
+
+    private void restoreFilter() {
+        mFilter = ContactListFilter.restoreDefaultPreferences(mPrefs);
+    }
+
+    private String getPersistentSelectionKey() {
+        if (mFilter == null) {
+            return mPersistentSelectionPrefix;
+        } else {
+            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/ContactPickerFragment.java b/src/com/android/contacts/list/ContactPickerFragment.java
new file mode 100644
index 0000000..4e81389
--- /dev/null
+++ b/src/com/android/contacts/list/ContactPickerFragment.java
@@ -0,0 +1,210 @@
+/*
+ * 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.net.Uri;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+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;
+
+/**
+ * Fragment for the contact list used for browsing contacts (as compared to
+ * picking a contact with one of the PICK or SHORTCUT intents).
+ */
+public class ContactPickerFragment extends ContactEntryListFragment<ContactEntryListAdapter>
+        implements OnShortcutIntentCreatedListener {
+
+    private static final String KEY_EDIT_MODE = "editMode";
+    private static final String KEY_CREATE_CONTACT_ENABLED = "createContactEnabled";
+    private static final String KEY_SHORTCUT_REQUESTED = "shortcutRequested";
+
+    private OnContactPickerActionListener mListener;
+    private boolean mCreateContactEnabled;
+    private boolean mEditMode;
+    private boolean mShortcutRequested;
+
+    public ContactPickerFragment() {
+        setPhotoLoaderEnabled(true);
+        setSectionHeaderDisplayEnabled(true);
+        setVisibleScrollbarEnabled(true);
+        setQuickContactEnabled(false);
+        setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_CONTACT_SHORTCUT);
+    }
+
+    public void setOnContactPickerActionListener(OnContactPickerActionListener listener) {
+        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;
+    }
+
+    public void setShortcutRequested(boolean flag) {
+        mShortcutRequested = flag;
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putBoolean(KEY_EDIT_MODE, mEditMode);
+        outState.putBoolean(KEY_CREATE_CONTACT_ENABLED, mCreateContactEnabled);
+        outState.putBoolean(KEY_SHORTCUT_REQUESTED, mShortcutRequested);
+    }
+
+    @Override
+    public void restoreSavedState(Bundle savedState) {
+        super.restoreSavedState(savedState);
+
+        if (savedState == null) {
+            return;
+        }
+
+        mEditMode = savedState.getBoolean(KEY_EDIT_MODE);
+        mCreateContactEnabled = savedState.getBoolean(KEY_CREATE_CONTACT_ENABLED);
+        mShortcutRequested = savedState.getBoolean(KEY_SHORTCUT_REQUESTED);
+    }
+
+    @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();
+        } else {
+            super.onItemClick(parent, view, position, id);
+        }
+    }
+
+    @Override
+    protected void onItemClick(int position, long id) {
+        Uri uri;
+        if (isLegacyCompatibilityMode()) {
+            uri = ((LegacyContactListAdapter)getAdapter()).getPersonUri(position);
+        } else {
+            uri = ((ContactListAdapter)getAdapter()).getContactUri(position);
+        }
+        if (uri == null) {
+            return;
+        }
+        if (mEditMode) {
+            editContact(uri);
+        } else  if (mShortcutRequested) {
+            ShortcutIntentBuilder builder = new ShortcutIntentBuilder(getActivity(), this);
+            builder.createContactShortcutIntent(uri);
+        } else {
+            pickContact(uri);
+        }
+    }
+
+    public void createNewContact() {
+        if (mListener != null) {
+            mListener.onCreateNewContactAction();
+        }
+    }
+
+    public void editContact(Uri contactUri) {
+        if (mListener != null) {
+            mListener.onEditContactAction(contactUri);
+        }
+    }
+
+    public void pickContact(Uri uri) {
+        if (mListener != null) {
+            mListener.onPickContactAction(uri);
+        }
+    }
+
+    @Override
+    protected ContactEntryListAdapter createListAdapter() {
+        if (!isLegacyCompatibilityMode()) {
+            HeaderEntryContactListAdapter adapter
+                    = new HeaderEntryContactListAdapter(getActivity());
+            adapter.setFilter(ContactListFilter.createFilterWithType(
+                    ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS));
+            adapter.setSectionHeaderDisplayEnabled(true);
+            adapter.setDisplayPhotos(true);
+            adapter.setQuickContactEnabled(false);
+            adapter.setShowCreateContact(mCreateContactEnabled);
+            return adapter;
+        } else {
+            LegacyContactListAdapter adapter = new LegacyContactListAdapter(getActivity());
+            adapter.setSectionHeaderDisplayEnabled(false);
+            adapter.setDisplayPhotos(false);
+            return adapter;
+        }
+    }
+
+    @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);
+    }
+
+    @Override
+    public void onShortcutIntentCreated(Uri uri, Intent shortcutIntent) {
+        if (mListener != null) {
+            mListener.onShortcutIntentCreated(shortcutIntent);
+        }
+    }
+
+    @Override
+    public void onPickerResult(Intent data) {
+        if (mListener != null) {
+            mListener.onPickContactAction(data.getData());
+        }
+    }
+}
diff --git a/src/com/android/contacts/list/ContactsIntentResolver.java b/src/com/android/contacts/list/ContactsIntentResolver.java
new file mode 100644
index 0000000..354ea3a
--- /dev/null
+++ b/src/com/android/contacts/list/ContactsIntentResolver.java
@@ -0,0 +1,178 @@
+/*
+ * 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.SearchManager;
+import android.content.Intent;
+import android.net.Uri;
+import android.provider.Contacts.ContactMethods;
+import android.provider.Contacts.People;
+import android.provider.Contacts.Phones;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+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.common.model.account.AccountWithDataSet;
+
+/**
+ * Parses a Contacts intent, extracting all relevant parts and packaging them
+ * as a {@link ContactsRequest} object.
+ */
+@SuppressWarnings("deprecation")
+public class ContactsIntentResolver {
+
+    private static final String TAG = "ContactsIntentResolver";
+
+    private final Activity mContext;
+
+    public ContactsIntentResolver(Activity context) {
+        this.mContext = context;
+    }
+
+    public ContactsRequest resolveIntent(Intent intent) {
+        ContactsRequest request = new ContactsRequest();
+
+        String action = intent.getAction();
+
+        Log.i(TAG, "Called with action: " + action);
+
+        if (UiIntentActions.LIST_DEFAULT.equals(action) ) {
+            request.setActionCode(ContactsRequest.ACTION_DEFAULT);
+        } else if (UiIntentActions.LIST_ALL_CONTACTS_ACTION.equals(action)) {
+            request.setActionCode(ContactsRequest.ACTION_ALL_CONTACTS);
+        } else if (UiIntentActions.LIST_CONTACTS_WITH_PHONES_ACTION.equals(action)) {
+            request.setActionCode(ContactsRequest.ACTION_CONTACTS_WITH_PHONES);
+        } else if (UiIntentActions.LIST_STARRED_ACTION.equals(action)) {
+            request.setActionCode(ContactsRequest.ACTION_STARRED);
+        } else if (UiIntentActions.LIST_FREQUENT_ACTION.equals(action)) {
+            request.setActionCode(ContactsRequest.ACTION_FREQUENT);
+        } else if (UiIntentActions.LIST_STREQUENT_ACTION.equals(action)) {
+            request.setActionCode(ContactsRequest.ACTION_STREQUENT);
+        } else if (UiIntentActions.LIST_GROUP_ACTION.equals(action)) {
+            request.setActionCode(ContactsRequest.ACTION_GROUP);
+            // We no longer support UiIntentActions.GROUP_NAME_EXTRA_KEY
+        } else if (Intent.ACTION_PICK.equals(action)) {
+            final String resolvedType = intent.resolveType(mContext);
+            if (Contacts.CONTENT_TYPE.equals(resolvedType)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_CONTACT);
+            } else if (People.CONTENT_TYPE.equals(resolvedType)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_CONTACT);
+                request.setLegacyCompatibilityMode(true);
+            } else if (Phone.CONTENT_TYPE.equals(resolvedType)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_PHONE);
+            } else if (Phones.CONTENT_TYPE.equals(resolvedType)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_PHONE);
+                request.setLegacyCompatibilityMode(true);
+            } else if (StructuredPostal.CONTENT_TYPE.equals(resolvedType)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_POSTAL);
+            } else if (ContactMethods.CONTENT_POSTAL_TYPE.equals(resolvedType)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_POSTAL);
+                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();
+            if (component.equals("alias.DialShortcut")) {
+                request.setActionCode(ContactsRequest.ACTION_CREATE_SHORTCUT_CALL);
+            } else if (component.equals("alias.MessageShortcut")) {
+                request.setActionCode(ContactsRequest.ACTION_CREATE_SHORTCUT_SMS);
+            } else {
+                request.setActionCode(ContactsRequest.ACTION_CREATE_SHORTCUT_CONTACT);
+            }
+        } else if (Intent.ACTION_GET_CONTENT.equals(action)) {
+            String type = intent.getType();
+            if (Contacts.CONTENT_ITEM_TYPE.equals(type)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_OR_CREATE_CONTACT);
+            } else if (Phone.CONTENT_ITEM_TYPE.equals(type)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_PHONE);
+            } else if (Phones.CONTENT_ITEM_TYPE.equals(type)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_PHONE);
+                request.setLegacyCompatibilityMode(true);
+            } else if (StructuredPostal.CONTENT_ITEM_TYPE.equals(type)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_POSTAL);
+            } else if (ContactMethods.CONTENT_POSTAL_ITEM_TYPE.equals(type)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_POSTAL);
+                request.setLegacyCompatibilityMode(true);
+            }  else if (People.CONTENT_ITEM_TYPE.equals(type)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_OR_CREATE_CONTACT);
+                request.setLegacyCompatibilityMode(true);
+            }
+        } 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
+            // or email is specified, in that priority.
+            if (TextUtils.isEmpty(query)) {
+                query = intent.getStringExtra(Insert.PHONE);
+            }
+            if (TextUtils.isEmpty(query)) {
+                query = intent.getStringExtra(Insert.EMAIL);
+            }
+            request.setQueryString(query);
+            request.setSearchMode(true);
+        } else if (Intent.ACTION_VIEW.equals(action)) {
+            final String resolvedType = intent.resolveType(mContext);
+            if (ContactsContract.Contacts.CONTENT_TYPE.equals(resolvedType)
+                    || android.provider.Contacts.People.CONTENT_TYPE.equals(resolvedType)) {
+                request.setActionCode(ContactsRequest.ACTION_ALL_CONTACTS);
+            } else {
+                request.setActionCode(ContactsRequest.ACTION_VIEW_CONTACT);
+                request.setContactUri(intent.getData());
+                intent.setAction(Intent.ACTION_DEFAULT);
+                intent.setData(null);
+            }
+        // Since this is the filter activity it receives all intents
+        // dispatched from the SearchManager for security reasons
+        // so we need to re-dispatch from here to the intended target.
+        } else if (Intents.SEARCH_SUGGESTION_CLICKED.equals(action)) {
+            Uri data = intent.getData();
+            request.setActionCode(ContactsRequest.ACTION_VIEW_CONTACT);
+            request.setContactUri(data);
+            intent.setAction(Intent.ACTION_DEFAULT);
+            intent.setData(null);
+        } else if (UiIntentActions.PICK_JOIN_CONTACT_ACTION.equals(action)) {
+            request.setActionCode(ContactsRequest.ACTION_PICK_JOIN);
+        }
+        // Allow the title to be set to a custom String using an extra on the intent
+        String title = intent.getStringExtra(UiIntentActions.TITLE_EXTRA_KEY);
+        if (title != null) {
+            request.setActivityTitle(title);
+        }
+        return request;
+    }
+}
diff --git a/src/com/android/contacts/list/ContactsRequest.java b/src/com/android/contacts/list/ContactsRequest.java
new file mode 100644
index 0000000..e9b3a86
--- /dev/null
+++ b/src/com/android/contacts/list/ContactsRequest.java
@@ -0,0 +1,209 @@
+/*
+ * 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.net.Uri;
+
+import com.android.contacts.common.model.account.AccountWithDataSet;
+
+import java.util.ArrayList;
+
+/**
+ * Parsed form of the intent sent to the Contacts application.
+ */
+public class ContactsRequest {
+
+    /** Default mode: browse contacts */
+    public static final int ACTION_DEFAULT = 10;
+
+    /** Show all contacts */
+    public static final int ACTION_ALL_CONTACTS = 15;
+
+    /** Show all contacts with phone numbers */
+    public static final int ACTION_CONTACTS_WITH_PHONES = 17;
+
+    /** 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;
+
+    /** Show all starred contacts */
+    public static final int ACTION_STARRED = 30;
+
+    /** Show frequently contacted contacts */
+    public static final int ACTION_FREQUENT = 40;
+
+    /** Show starred and the frequent */
+    public static final int ACTION_STREQUENT = 50;
+
+    /** Show all contacts and pick them when clicking */
+    public static final int ACTION_PICK_CONTACT = 60;
+
+    /** Show all contacts as well as the option to create a new one */
+    public static final int ACTION_PICK_OR_CREATE_CONTACT = 70;
+
+    /** Show all contacts and pick them for edit when clicking, and allow creating a new contact */
+    public static final int ACTION_INSERT_OR_EDIT_CONTACT = 80;
+
+    /** Show all phone numbers and pick them when clicking */
+    public static final int ACTION_PICK_PHONE = 90;
+
+    /** Show all postal addresses and pick them when clicking */
+    public static final int ACTION_PICK_POSTAL = 100;
+
+    /** Show all postal addresses and pick them when clicking */
+    public static final int ACTION_PICK_EMAIL = 105;
+
+    /** Show all contacts and create a shortcut for the picked contact */
+    public static final int ACTION_CREATE_SHORTCUT_CONTACT = 110;
+
+    /** Show all phone numbers and create a call shortcut for the picked number */
+    public static final int ACTION_CREATE_SHORTCUT_CALL = 120;
+
+    /** Show all phone numbers and create an SMS shortcut for the picked number */
+    public static final int ACTION_CREATE_SHORTCUT_SMS = 130;
+
+    /** Show all contacts and activate the specified one */
+    public static final int ACTION_VIEW_CONTACT = 140;
+
+    /** Show contacts recommended for joining with a specified target contact */
+    public static final int ACTION_PICK_JOIN = 150;
+
+    private boolean mValid = true;
+    private int mActionCode = ACTION_DEFAULT;
+    private CharSequence mTitle;
+    private boolean mSearchMode;
+    private String mQueryString;
+    private boolean mIncludeFavorites;
+    private boolean mLegacyCompatibilityMode;
+    private boolean mDirectorySearchEnabled = true;
+    private Uri mContactUri;
+    private AccountWithDataSet mAccountWithDataSet;
+    private ArrayList<String> mRawContactIds;
+
+    @Override
+    public String toString() {
+        return "{ContactsRequest:mValid=" + mValid
+                + " mActionCode=" + mActionCode
+                + " mTitle=" + mTitle
+                + " mSearchMode=" + mSearchMode
+                + " mQueryString=" + mQueryString
+                + " mIncludeFavorites=" + mIncludeFavorites
+                + " mLegacyCompatibilityMode=" + mLegacyCompatibilityMode
+                + " mDirectorySearchEnabled=" + mDirectorySearchEnabled
+                + " mContactUri=" + mContactUri
+                + " mAccountWithDataSet=" + mAccountWithDataSet
+                + " mRawContactIds=" + mRawContactIds
+                + "}";
+    }
+
+    public boolean isValid() {
+        return mValid;
+    }
+
+    public void setValid(boolean flag) {
+        mValid = flag;
+    }
+
+    public void setActivityTitle(CharSequence title) {
+        mTitle = title;
+    }
+
+    public CharSequence getActivityTitle() {
+        return mTitle;
+    }
+
+    public int getActionCode() {
+        return mActionCode;
+    }
+
+    public void setActionCode(int actionCode) {
+        mActionCode = actionCode;
+    }
+
+    public boolean isSearchMode() {
+        return mSearchMode;
+    }
+
+    public void setSearchMode(boolean flag) {
+        mSearchMode = flag;
+    }
+
+    public String getQueryString() {
+        return mQueryString;
+    }
+
+    public void setQueryString(String string) {
+        mQueryString = string;
+    }
+
+    public boolean shouldIncludeFavorites() {
+        return mIncludeFavorites;
+    }
+
+    public void setIncludeFavorites(boolean includeFavorites) {
+        mIncludeFavorites = includeFavorites;
+    }
+
+    public boolean isLegacyCompatibilityMode() {
+        return mLegacyCompatibilityMode;
+    }
+
+    public void setLegacyCompatibilityMode(boolean flag) {
+        mLegacyCompatibilityMode = flag;
+    }
+
+    /**
+     * Determines whether this search request should include directories or
+     * is limited to local contacts only.
+     */
+    public boolean isDirectorySearchEnabled() {
+        return mDirectorySearchEnabled;
+    }
+
+    public void setDirectorySearchEnabled(boolean flag) {
+        mDirectorySearchEnabled = flag;
+    }
+
+    public Uri getContactUri() {
+        return mContactUri;
+    }
+
+    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/ContactsUnavailableFragment.java b/src/com/android/contacts/list/ContactsUnavailableFragment.java
new file mode 100644
index 0000000..1b122cc
--- /dev/null
+++ b/src/com/android/contacts/list/ContactsUnavailableFragment.java
@@ -0,0 +1,208 @@
+/*
+ * 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.Fragment;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.graphics.PorterDuff;
+import android.os.Bundle;
+import android.support.v4.content.ContextCompat;
+import android.view.Gravity;
+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.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.common.compat.ProviderStatusCompat;
+
+/**
+ * Fragment shown when contacts are unavailable. It contains provider status
+ * messaging as well as instructions for the user.
+ */
+public class ContactsUnavailableFragment extends Fragment implements OnClickListener {
+
+    private View mView;
+    private ImageView mImageView;
+    private TextView mMessageView;
+    private Button mAddAccountButton;
+    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);
+        mAddAccountButton.setOnClickListener(this);
+        mAddAccountButton.getBackground().setColorFilter(ContextCompat.getColor(getContext(), R
+                .color.primary_color), PorterDuff.Mode.SRC_ATOP);
+        mImportContactsButton = (Button) mView.findViewById(R.id.import_contacts_button);
+        mImportContactsButton.setOnClickListener(this);
+        mImportContactsButton.getBackground().setColorFilter(ContextCompat.getColor(getContext(),
+                R.color.primary_color), PorterDuff.Mode.SRC_ATOP);
+        mProgress = (ProgressBar) mView.findViewById(R.id.progress);
+
+        if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
+            mButtonsContainer = mView.findViewById(R.id.buttons_container);
+        }
+
+        if (mProviderStatus != null) {
+            updateStatus(mProviderStatus);
+        }
+
+        return mView;
+    }
+
+    public void setOnContactsUnavailableActionListener(
+            OnContactsUnavailableActionListener listener) {
+        mListener = listener;
+    }
+
+    public void updateStatus(int providerStatus) {
+        mProviderStatus = providerStatus;
+        if (mView == null) {
+            // The view hasn't been inflated yet.
+            return;
+        }
+        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);
+        }
+    }
+
+    /**
+     * Update views in the fragment when provider status is empty.
+     */
+    private void updateViewsForEmptyStatus() {
+        setTabInfo(mNoContactsMsgResId, mLastTab);
+        if (mLastTab == TabState.ALL) {
+            updateButtonVisibilty(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.setVisibility(View.VISIBLE);
+        mImageView.setVisibility(View.GONE);
+        updateButtonVisibilty(View.GONE);
+        mProgress.setVisibility(View.VISIBLE);
+
+        final ViewGroup.MarginLayoutParams layoutParams =
+                (ViewGroup.MarginLayoutParams) mMessageView.getLayoutParams();
+        final int marginTop =
+                (int) getResources().getDimension(R.dimen.update_contact_list_top_margin);
+        layoutParams.setMargins(0, marginTop, 0, 0);
+        mMessageView.setGravity(Gravity.CENTER_HORIZONTAL);
+    }
+
+    @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;
+        }
+    }
+
+    /**
+     * 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.ALL) {
+                    updateButtonVisibilty(View.VISIBLE);
+                }
+            } else {
+                mMessageView.setVisibility(View.GONE);
+            }
+        }
+    }
+
+    private void updateButtonVisibilty(int visibility) {
+        if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
+            mAddAccountButton.setVisibility(visibility);
+            mImportContactsButton.setVisibility(visibility);
+            mButtonsContainer.setVisibility(visibility);
+        } else {
+            mAddAccountButton.setVisibility(visibility);
+            mImportContactsButton.setVisibility(visibility);
+        }
+    }
+
+    @Override
+    public Context getContext() {
+        return getActivity();
+    }
+}
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
new file mode 100644
index 0000000..afaafb7
--- /dev/null
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -0,0 +1,278 @@
+/*
+ * 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.Loader;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.ContactsContract.Directory;
+import android.text.TextUtils;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityEvent;
+import android.widget.Button;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout.LayoutParams;
+import android.widget.TextView;
+
+import com.android.contacts.R;
+import com.android.contacts.activities.PeopleActivity;
+import com.android.contacts.common.list.ContactListAdapter;
+import com.android.contacts.common.list.ContactListFilter;
+import com.android.contacts.common.list.ContactListItemView;
+import com.android.contacts.common.list.DefaultContactListAdapter;
+import com.android.contacts.common.list.FavoritesAndContactsLoader;
+import com.android.contacts.common.model.account.AccountWithDataSet;
+
+/**
+ * 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 View mSearchHeaderView;
+    private View mSearchProgress;
+    private View mEmptyAccountView;
+    private View mEmptyHomeView;
+    private View mAccountFilterContainer;
+    private TextView mSearchProgressText;
+    private FeatureHighlightCallback mCallback;
+
+    public interface FeatureHighlightCallback {
+        void onLoadFinishedCallback();
+    }
+
+    public DefaultContactBrowseListFragment() {
+        setPhotoLoaderEnabled(true);
+        // Don't use a QuickContactBadge. Just use a regular ImageView. Using a QuickContactBadge
+        // inside the ListView prevents us from using MODE_FULLY_EXPANDED and messes up ripples.
+        setQuickContactEnabled(false);
+        setSectionHeaderDisplayEnabled(true);
+        setVisibleScrollbarEnabled(true);
+        setDisplayDirectoryHeader(false);
+    }
+
+    public void setFeatureHighlightCallback(FeatureHighlightCallback callback) {
+        mCallback = callback;
+    }
+
+    @Override
+    public CursorLoader createCursorLoader(Context context) {
+        return new FavoritesAndContactsLoader(context);
+    }
+
+    @Override
+    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+        if (loader.getId() == Directory.DEFAULT) {
+            bindListHeader(data.getCount());
+        }
+        super.onLoadFinished(loader, data);
+        if (!isSearchMode() && mCallback != null) {
+            mCallback.onLoadFinishedCallback();
+        }
+    }
+
+    private void bindListHeader(int numberOfContacts) {
+        final ContactListFilter filter = getFilter();
+        if (!isSearchMode() && numberOfContacts <= 0) {
+            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);
+        }
+    }
+
+    // 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);
+    }
+
+    @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;
+        }
+        viewContact(position, uri, getAdapter().isEnterpriseContact(position));
+    }
+
+    @Override
+    protected ContactListAdapter createListAdapter() {
+        DefaultContactListAdapter adapter = new DefaultContactListAdapter(getContext());
+        adapter.setSectionHeaderDisplayEnabled(isSectionHeaderDisplayEnabled());
+        adapter.setDisplayPhotos(true);
+        adapter.setPhotoPosition(
+                ContactListItemView.getDefaultPhotoPosition(/* opposite = */ false));
+        return adapter;
+    }
+
+    @Override
+    protected View inflateView(LayoutInflater inflater, ViewGroup container) {
+        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(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                ((PeopleActivity) getActivity()).onFabClicked();
+            }
+        });
+        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(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                ((PeopleActivity) getActivity()).onFabClicked();
+            }
+        });
+        return emptyAccountView;
+    }
+
+    @Override
+    protected void onCreateView(LayoutInflater inflater, ViewGroup container) {
+        super.onCreateView(inflater, container);
+
+        // Putting the header view inside a container will allow us to make
+        // it invisible later. See checkHeaderViewVisibility()
+        FrameLayout headerContainer = new FrameLayout(inflater.getContext());
+        mSearchHeaderView = inflater.inflate(R.layout.search_header, null, false);
+        headerContainer.addView(mSearchHeaderView);
+        getListView().addHeaderView(headerContainer, null, false);
+        checkHeaderViewVisibility();
+
+        mSearchProgress = getView().findViewById(R.id.search_progress);
+        mSearchProgressText = (TextView) mSearchHeaderView.findViewById(R.id.totalContactsText);
+    }
+
+    @Override
+    protected void setSearchMode(boolean flag) {
+        super.setSearchMode(flag);
+        checkHeaderViewVisibility();
+        if (!flag) showSearchProgress(false);
+    }
+
+    /** Show or hide the directory-search progress spinner. */
+    private void showSearchProgress(boolean show) {
+        if (mSearchProgress != null) {
+            mSearchProgress.setVisibility(show ? View.VISIBLE : View.GONE);
+        }
+    }
+
+    private void checkHeaderViewVisibility() {
+        // Hide the search header by default.
+        if (mSearchHeaderView != null) {
+            mSearchHeaderView.setVisibility(View.GONE);
+        }
+    }
+
+    @Override
+    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);
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/list/EmailAddressListAdapter.java b/src/com/android/contacts/list/EmailAddressListAdapter.java
new file mode 100644
index 0000000..d19f960
--- /dev/null
+++ b/src/com/android/contacts/list/EmailAddressListAdapter.java
@@ -0,0 +1,190 @@
+/*
+ * 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.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.Email;
+import android.provider.ContactsContract.Data;
+import android.text.TextUtils;
+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;
+
+/**
+ * A cursor adapter for the {@link Email#CONTENT_TYPE} content type.
+ */
+public class EmailAddressListAdapter extends ContactEntryListAdapter {
+
+    protected static class EmailQuery {
+        private static final String[] PROJECTION_PRIMARY = new String[] {
+            Email._ID,                       // 0
+            Email.TYPE,                      // 1
+            Email.LABEL,                     // 2
+            Email.DATA,                      // 3
+            Email.PHOTO_ID,                  // 4
+            Email.LOOKUP_KEY,                // 5
+            Email.DISPLAY_NAME_PRIMARY,      // 6
+        };
+
+        private static final String[] PROJECTION_ALTERNATIVE = new String[] {
+            Email._ID,                       // 0
+            Email.TYPE,                      // 1
+            Email.LABEL,                     // 2
+            Email.DATA,                      // 3
+            Email.PHOTO_ID,                  // 4
+            Email.LOOKUP_KEY,                // 5
+            Email.DISPLAY_NAME_ALTERNATIVE,  // 6
+        };
+
+        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 EMAIL_PHOTO_ID     = 4;
+        public static final int EMAIL_LOOKUP_KEY   = 5;
+        public static final int EMAIL_DISPLAY_NAME = 6;
+    }
+
+    private final CharSequence mUnknownNameText;
+
+    public EmailAddressListAdapter(Context context) {
+        super(context);
+
+        mUnknownNameText = context.getText(android.R.string.unknownName);
+    }
+
+    @Override
+    public void configureLoader(CursorLoader loader, long directoryId) {
+        final Builder builder;
+        if (isSearchMode()) {
+            builder = Email.CONTENT_FILTER_URI.buildUpon();
+            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));
+        builder.appendQueryParameter(ContactsContract.REMOVE_DUPLICATE_ENTRIES, "true");
+        loader.setUri(builder.build());
+
+        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.EMAIL_DISPLAY_NAME);
+    }
+
+    /**
+     * Builds a {@link Data#CONTENT_URI} for the current cursor
+     * position.
+     */
+    public Uri getDataUri(int position) {
+        long id = ((Cursor) getItem(position)).getLong(EmailQuery.EMAIL_ID);
+        return ContentUris.withAppendedId(Data.CONTENT_URI, 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());
+        return view;
+    }
+
+    @Override
+    protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+        super.bindView(itemView, partition, cursor, position);
+        ContactListItemView view = (ContactListItemView)itemView;
+        bindSectionHeaderAndDivider(view, position);
+        bindName(view, cursor);
+        bindViewId(view, cursor, EmailQuery.EMAIL_ID);
+        bindPhoto(view, cursor);
+        bindEmailAddress(view, cursor);
+    }
+
+    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 bindSectionHeaderAndDivider(final ContactListItemView view, int position) {
+        final int section = getSectionForPosition(position);
+        if (getPositionForSection(section) == position) {
+            String title = (String)getSections()[section];
+            view.setSectionHeader(title);
+        } else {
+            view.setSectionHeader(null);
+        }
+    }
+
+    protected void bindName(final ContactListItemView view, Cursor cursor) {
+        view.showDisplayName(cursor, EmailQuery.EMAIL_DISPLAY_NAME, getContactNameDisplayOrder());
+    }
+
+    protected void bindPhoto(final ContactListItemView view, Cursor cursor) {
+        long photoId = 0;
+        if (!cursor.isNull(EmailQuery.EMAIL_PHOTO_ID)) {
+            photoId = cursor.getLong(EmailQuery.EMAIL_PHOTO_ID);
+        }
+        DefaultImageRequest request = null;
+        if (photoId == 0) {
+             request = getDefaultImageRequestFromCursor(cursor, EmailQuery.EMAIL_DISPLAY_NAME,
+                    EmailQuery.EMAIL_LOOKUP_KEY);
+        }
+        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, getCircularPhotos(),
+                request);
+    }
+//
+//    protected void bindSearchSnippet(final ContactListItemView view, Cursor cursor) {
+//        view.showSnippet(cursor, SUMMARY_SNIPPET_MIMETYPE_COLUMN_INDEX,
+//                SUMMARY_SNIPPET_DATA1_COLUMN_INDEX, SUMMARY_SNIPPET_DATA4_COLUMN_INDEX);
+//    }
+
+}
diff --git a/src/com/android/contacts/list/EmailAddressPickerFragment.java b/src/com/android/contacts/list/EmailAddressPickerFragment.java
new file mode 100644
index 0000000..f89f743
--- /dev/null
+++ b/src/com/android/contacts/list/EmailAddressPickerFragment.java
@@ -0,0 +1,77 @@
+/*
+ * 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.net.Uri;
+import android.view.LayoutInflater;
+import android.view.View;
+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.
+ */
+public class EmailAddressPickerFragment extends ContactEntryListFragment<ContactEntryListAdapter> {
+    private OnEmailAddressPickerActionListener mListener;
+
+    public EmailAddressPickerFragment() {
+        setQuickContactEnabled(false);
+        setPhotoLoaderEnabled(true);
+        setSectionHeaderDisplayEnabled(true);
+        setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_DATA_SHORTCUT);
+    }
+
+    public void setOnEmailAddressPickerActionListener(OnEmailAddressPickerActionListener listener) {
+        mListener = listener;
+    }
+
+    @Override
+    protected void onItemClick(int position, long id) {
+        EmailAddressListAdapter adapter = (EmailAddressListAdapter)getAdapter();
+        if (getAdapter().getItem(position) == null) {
+            return;
+        }
+        pickEmailAddress(adapter.getDataUri(position));
+    }
+
+    @Override
+    protected ContactEntryListAdapter createListAdapter() {
+        EmailAddressListAdapter adapter = new EmailAddressListAdapter(getActivity());
+        adapter.setSectionHeaderDisplayEnabled(true);
+        adapter.setDisplayPhotos(true);
+        return adapter;
+    }
+
+    @Override
+    protected View inflateView(LayoutInflater inflater, ViewGroup container) {
+        return inflater.inflate(R.layout.contact_list_content, null);
+    }
+
+    @Override
+    protected void onCreateView(LayoutInflater inflater, ViewGroup container) {
+        super.onCreateView(inflater, container);
+
+        setVisibleScrollbarEnabled(!isLegacyCompatibilityMode());
+    }
+
+    private void pickEmailAddress(Uri uri) {
+        mListener.onPickEmailAddressAction(uri);
+    }
+}
diff --git a/src/com/android/contacts/list/GroupMemberPickerFragment.java b/src/com/android/contacts/list/GroupMemberPickerFragment.java
new file mode 100644
index 0000000..6f4d0c0
--- /dev/null
+++ b/src/com/android/contacts/list/GroupMemberPickerFragment.java
@@ -0,0 +1,326 @@
+/*
+ * 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.activities.ContactSelectionActivity;
+import com.android.contacts.common.R;
+import com.android.contacts.common.list.ContactListAdapter.ContactQuery;
+import com.android.contacts.common.list.ContactListFilter;
+import com.android.contacts.common.list.ContactsSectionIndexer;
+import com.android.contacts.common.list.DefaultContactListAdapter;
+import com.android.contacts.common.model.account.AccountWithDataSet;
+import com.android.contacts.group.GroupUtil;
+
+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_RAW_CONTACT_IDS = "rawContactIds";
+
+    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_RAW_CONTACT_IDS = "rawContactIds";
+
+    /** Callbacks for host of {@link GroupMemberPickerFragment}. */
+    public interface Listener {
+
+        /** Invoked when a potential group member is selected. */
+        void onGroupMemberClicked(long contactId);
+
+        /** Invoked when multiple potential group members are selected. */
+        void onGroupMembersSelected(long[] contactIds);
+
+        /** 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 (!mRawContactIds.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> mRawContactIds;
+    private Listener mListener;
+
+    public static GroupMemberPickerFragment newInstance(String accountName, String accountType,
+            String accountDataSet, ArrayList<String> rawContactIds) {
+        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_RAW_CONTACT_IDS, rawContactIds);
+
+        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);
+            mRawContactIds = getArguments().getStringArrayList(ARG_RAW_CONTACT_IDS);
+        } else {
+            mAccountName = savedState.getString(KEY_ACCOUNT_NAME);
+            mAccountType = savedState.getString(KEY_ACCOUNT_TYPE);
+            mAccountDataSet = savedState.getString(KEY_ACCOUNT_DATA_SET);
+            mRawContactIds = savedState.getStringArrayList(KEY_RAW_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_RAW_CONTACT_IDS, mRawContactIds);
+    }
+
+    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 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, !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) {
+        switch (item.getItemId()) {
+            case android.R.id.home: {
+                final Activity activity = getActivity();
+                if (activity != null) {
+                    activity.onBackPressed();
+                }
+                return true;
+            }
+            case R.id.menu_select: {
+                if (mListener != null) {
+                    mListener.onSelectGroupMembers();
+                }
+                return true;
+            }
+        }
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/src/com/android/contacts/list/HeaderEntryContactListAdapter.java b/src/com/android/contacts/list/HeaderEntryContactListAdapter.java
new file mode 100644
index 0000000..9822b79
--- /dev/null
+++ b/src/com/android/contacts/list/HeaderEntryContactListAdapter.java
@@ -0,0 +1,116 @@
+/*
+ * 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.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;
+
+/**
+ * Equivalent to DefaultContactListAdapter, except with an optional header entry that has the same
+ * formatting as the other entries in the list.
+ *
+ * This header entry is hidden when in search mode. Should not be used with lists that contain a
+ * "Me" contact.
+ */
+public class HeaderEntryContactListAdapter extends DefaultContactListAdapter {
+
+    private boolean mShowCreateContact;
+
+    public HeaderEntryContactListAdapter(Context context) {
+        super(context);
+    }
+
+    private int getHeaderEntryCount() {
+        return isSearchMode() || !mShowCreateContact ? 0 : 1;
+    }
+
+    /**
+     * Whether the first entry should be "Create contact", when not in search mode.
+     */
+    public void setShowCreateContact(boolean showCreateContact) {
+        mShowCreateContact = showCreateContact;
+        invalidate();
+    }
+
+    @Override
+    public int getCount() {
+        return super.getCount() + getHeaderEntryCount();
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        if (position == 0 && getHeaderEntryCount() > 0) {
+            final ContactListItemView itemView;
+            if (convertView == null) {
+                // Pass the cursor down. Don't worry, it isn't used.
+                itemView = newView(getContext(), 0, getCursor(0), 0, parent);
+            } else {
+                itemView = (ContactListItemView) convertView;
+            }
+            itemView.setDrawableResource(R.drawable.ic_search_add_contact);
+            itemView.setDisplayName(getContext().getResources().getString(
+                    R.string.header_entry_contact_list_adapter_header_title));
+            return itemView;
+        }
+        return super.getView(position - getHeaderEntryCount(), convertView, parent);
+    }
+
+    @Override
+    public Object getItem(int position) {
+        return super.getItem(position - getHeaderEntryCount());
+    }
+
+    @Override
+    public boolean isEnabled(int position) {
+        return position < getHeaderEntryCount() || super
+                .isEnabled(position - getHeaderEntryCount());
+    }
+
+    @Override
+    public int getPartitionForPosition(int position) {
+        return super.getPartitionForPosition(position - getHeaderEntryCount());
+    }
+
+    @Override
+    protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+        super.bindView(itemView, partition, cursor, position + getHeaderEntryCount());
+    }
+
+    @Override
+    public int getItemViewType(int position) {
+        if (position == 0 && getHeaderEntryCount() > 0) {
+            return getViewTypeCount() - 1;
+        }
+        return super.getItemViewType(position - getHeaderEntryCount());
+    }
+
+    @Override
+    public int getViewTypeCount() {
+        // One additional view type, for the header entry.
+        return super.getViewTypeCount() + 1;
+    }
+
+    @Override
+    protected boolean getExtraStartingSection() {
+        return getHeaderEntryCount() > 0;
+    }
+}
diff --git a/src/com/android/contacts/list/JoinContactListAdapter.java b/src/com/android/contacts/list/JoinContactListAdapter.java
new file mode 100644
index 0000000..f08fcbb
--- /dev/null
+++ b/src/com/android/contacts/list/JoinContactListAdapter.java
@@ -0,0 +1,210 @@
+/*
+ * 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.database.Cursor;
+import android.net.Uri;
+import android.net.Uri.Builder;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Contacts.AggregationSuggestions;
+import android.provider.ContactsContract.Directory;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+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;
+
+public class JoinContactListAdapter extends ContactListAdapter {
+
+    /** Maximum number of suggestions shown for joining aggregates */
+    private static final int MAX_SUGGESTIONS = 4;
+
+    public static final int PARTITION_SUGGESTIONS = 0;
+    public static final int PARTITION_ALL_CONTACTS = 1;
+
+    private long mTargetContactId;
+
+    public JoinContactListAdapter(Context context) {
+        super(context);
+        setPinnedPartitionHeadersEnabled(true);
+        setSectionHeaderDisplayEnabled(true);
+        setIndexedPartition(PARTITION_ALL_CONTACTS);
+        setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_NONE);
+    }
+
+    @Override
+    protected void addPartitions() {
+        // Partition 0: suggestions
+        addPartition(false, true);
+
+        // Partition 1: All contacts
+        addPartition(createDefaultDirectoryPartition());
+    }
+
+    public void setTargetContactId(long targetContactId) {
+        this.mTargetContactId = targetContactId;
+    }
+
+    @Override
+    public void configureLoader(CursorLoader cursorLoader, long directoryId) {
+        JoinContactLoader loader = (JoinContactLoader) cursorLoader;
+
+        final Builder builder = Contacts.CONTENT_URI.buildUpon();
+        builder.appendEncodedPath(String.valueOf(mTargetContactId));
+        builder.appendEncodedPath(AggregationSuggestions.CONTENT_DIRECTORY);
+
+        final String filter = getQueryString();
+        if (!TextUtils.isEmpty(filter)) {
+            builder.appendEncodedPath(Uri.encode(filter));
+        }
+
+        builder.appendQueryParameter("limit", String.valueOf(MAX_SUGGESTIONS));
+
+        loader.setSuggestionUri(builder.build());
+
+        // TODO simplify projection
+        loader.setProjection(getProjection(false));
+        final Uri allContactsUri;
+        if (!TextUtils.isEmpty(filter)) {
+            allContactsUri = buildSectionIndexerUri(Contacts.CONTENT_FILTER_URI).buildUpon()
+                .appendEncodedPath(Uri.encode(filter))
+                .appendQueryParameter(
+                        ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(Directory.DEFAULT))
+                .build();
+        } else {
+            allContactsUri = buildSectionIndexerUri(Contacts.CONTENT_URI).buildUpon()
+                .appendQueryParameter(
+                        ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(Directory.DEFAULT))
+                .build();
+        }
+        loader.setUri(allContactsUri);
+        loader.setSelection(Contacts._ID + "!=?");
+        loader.setSelectionArgs(new String[]{ String.valueOf(mTargetContactId) });
+        if (getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) {
+            loader.setSortOrder(Contacts.SORT_KEY_PRIMARY);
+        } else {
+            loader.setSortOrder(Contacts.SORT_KEY_ALTERNATIVE);
+        }
+    }
+
+    @Override
+    public boolean isEmpty() {
+        return false;
+    }
+
+    public void setSuggestionsCursor(Cursor cursor) {
+        changeCursor(PARTITION_SUGGESTIONS, cursor);
+    }
+
+    @Override
+    public void changeCursor(Cursor cursor) {
+        changeCursor(PARTITION_ALL_CONTACTS, cursor);
+    }
+
+    @Override
+    public void configureDefaultPartition(boolean showIfEmpty, boolean hasHeader) {
+         // Don't change default partition parameters from these defaults
+        super.configureDefaultPartition(false, true);
+    }
+
+    @Override
+    public int getViewTypeCount() {
+        return super.getViewTypeCount();
+    }
+
+    @Override
+    public int getItemViewType(int partition, int position) {
+        return super.getItemViewType(partition, position);
+    }
+
+    @Override
+    protected View newHeaderView(Context context, int partition, Cursor cursor,
+            ViewGroup parent) {
+        switch (partition) {
+            case PARTITION_SUGGESTIONS: {
+                View view = inflate(R.layout.join_contact_picker_section_header, parent);
+                ((TextView) view.findViewById(R.id.text)).setText(
+                        R.string.separatorJoinAggregateSuggestions);
+                return view;
+            }
+            case PARTITION_ALL_CONTACTS: {
+                View view = inflate(R.layout.join_contact_picker_section_header, parent);
+                ((TextView) view.findViewById(R.id.text)).setText(
+                        R.string.separatorJoinAggregateAll);
+                return view;
+            }
+        }
+
+        return null;
+    }
+
+    @Override
+    protected void bindHeaderView(View view, int partitionIndex, Cursor cursor) {
+        // Header views are static - nothing needs to be bound
+    }
+
+    @Override
+    protected ContactListItemView newView(
+            Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
+        switch (partition) {
+            case PARTITION_SUGGESTIONS:
+            case PARTITION_ALL_CONTACTS:
+                return super.newView(context, partition, cursor, position, parent);
+        }
+        return null;
+    }
+
+    private View inflate(int layoutId, ViewGroup parent) {
+        return LayoutInflater.from(getContext()).inflate(layoutId, parent, false);
+    }
+
+    @Override
+    protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+        super.bindView(itemView, partition, cursor, position);
+        switch (partition) {
+            case PARTITION_SUGGESTIONS: {
+                final ContactListItemView view = (ContactListItemView) itemView;
+                view.setSectionHeader(null);
+                bindPhoto(view, partition, cursor);
+                bindNameAndViewId(view, cursor);
+                break;
+            }
+            case PARTITION_ALL_CONTACTS: {
+                final ContactListItemView view = (ContactListItemView) itemView;
+                bindSectionHeaderAndDivider(view, position, cursor);
+                bindPhoto(view, partition, cursor);
+                bindNameAndViewId(view, cursor);
+                break;
+            }
+        }
+    }
+
+    @Override
+    public Uri getContactUri(int partitionIndex, Cursor cursor) {
+        long contactId = cursor.getLong(ContactQuery.CONTACT_ID);
+        String lookupKey = cursor.getString(ContactQuery.CONTACT_LOOKUP_KEY);
+        return Contacts.getLookupUri(contactId, lookupKey);
+    }
+}
diff --git a/src/com/android/contacts/list/JoinContactListFragment.java b/src/com/android/contacts/list/JoinContactListFragment.java
new file mode 100644
index 0000000..d961f34
--- /dev/null
+++ b/src/com/android/contacts/list/JoinContactListFragment.java
@@ -0,0 +1,197 @@
+/*
+ * 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.LoaderManager.LoaderCallbacks;
+import android.content.ContentUris;
+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.Contacts;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+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.common.logging.ListEvent;
+import com.android.contacts.list.JoinContactLoader.JoinContactLoaderResult;
+
+/**
+ * Fragment for the Join Contact list.
+ */
+public class JoinContactListFragment extends ContactEntryListFragment<JoinContactListAdapter> {
+
+    private static final int DISPLAY_NAME_LOADER = -2;
+
+    private static final String KEY_TARGET_CONTACT_ID = "targetContactId";
+
+    private OnContactPickerActionListener mListener;
+    private long mTargetContactId;
+
+    private final LoaderCallbacks<Cursor> mLoaderCallbacks = new LoaderCallbacks<Cursor>() {
+
+        @Override
+        public Loader<Cursor> onCreateLoader(int id, Bundle args) {
+            switch (id) {
+                case DISPLAY_NAME_LOADER: {
+                    // Loader for the display name of the target contact
+                    return new CursorLoader(getActivity(),
+                            ContentUris.withAppendedId(Contacts.CONTENT_URI, mTargetContactId),
+                            new String[] { Contacts.DISPLAY_NAME }, null, null, null);
+                }
+                case JoinContactListAdapter.PARTITION_ALL_CONTACTS: {
+                    JoinContactLoader loader = new JoinContactLoader(getActivity());
+                    JoinContactListAdapter adapter = getAdapter();
+                    if (adapter != null) {
+                        adapter.configureLoader(loader, 0);
+                    }
+                    return loader;
+                }
+            }
+            throw new IllegalArgumentException("No loader for ID=" + id);
+        }
+
+        @Override
+        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+            switch (loader.getId()) {
+                case DISPLAY_NAME_LOADER: {
+                    if (data != null && data.moveToFirst()) {
+                        showTargetContactName(data.getString(0));
+                    }
+                    break;
+                }
+                case JoinContactListAdapter.PARTITION_ALL_CONTACTS: {
+                    if (data != null) {
+                        final Cursor suggestionsCursor =
+                                ((JoinContactLoaderResult) data).suggestionCursor;
+                        onContactListLoaded(suggestionsCursor, data);
+                        maybeLogListEvent();
+                    }
+                    break;
+                }
+            }
+        }
+
+        @Override
+        public void onLoaderReset(Loader<Cursor> loader) {
+        }
+    };
+
+    public JoinContactListFragment() {
+        setPhotoLoaderEnabled(true);
+        setSectionHeaderDisplayEnabled(true);
+        setVisibleScrollbarEnabled(false);
+        setQuickContactEnabled(false);
+        setListType(ListEvent.ListType.PICK_JOIN);
+        setLogListEvents(true);
+    }
+
+    public void setOnContactPickerActionListener(OnContactPickerActionListener listener) {
+        mListener = listener;
+    }
+
+    @Override
+    protected void startLoading() {
+        configureAdapter();
+
+        getLoaderManager().initLoader(DISPLAY_NAME_LOADER, null, mLoaderCallbacks);
+
+        // When this method is called, Uri to be used may be changed. We should use restartLoader()
+        // to load the parameter again.
+        getLoaderManager().restartLoader(JoinContactListAdapter.PARTITION_ALL_CONTACTS,
+                null, mLoaderCallbacks);
+    }
+
+    private void onContactListLoaded(Cursor suggestionsCursor, Cursor allContactsCursor) {
+        JoinContactListAdapter adapter = getAdapter();
+        adapter.setSuggestionsCursor(suggestionsCursor);
+        setVisibleScrollbarEnabled(true);
+        onPartitionLoaded(JoinContactListAdapter.PARTITION_ALL_CONTACTS, allContactsCursor);
+    }
+
+    private void showTargetContactName(String displayName) {
+        Activity activity = getActivity();
+        TextView blurbView = (TextView) activity.findViewById(R.id.join_contact_blurb);
+        final String name = !TextUtils.isEmpty(displayName) ? displayName
+            : activity.getString(R.string.missing_name);
+        String blurb = activity.getString(R.string.blurbJoinContactDataWith, name);
+        blurbView.setText(blurb);
+    }
+
+    public void setTargetContactId(long targetContactId) {
+        mTargetContactId = targetContactId;
+    }
+
+    @Override
+    public JoinContactListAdapter createListAdapter() {
+        JoinContactListAdapter adapter = new JoinContactListAdapter(getActivity());
+        adapter.setPhotoPosition(ContactListItemView.getDefaultPhotoPosition(true /* opposite */));
+        return adapter;
+    }
+
+    @Override
+    protected void configureAdapter() {
+        super.configureAdapter();
+        JoinContactListAdapter adapter = getAdapter();
+        adapter.setTargetContactId(mTargetContactId);
+    }
+
+    @Override
+    protected View inflateView(LayoutInflater inflater, ViewGroup container) {
+        return inflater.inflate(R.layout.join_contact_picker_list_content, null);
+    }
+
+    @Override
+    protected void onItemClick(int position, long id) {
+        final Uri contactUri = getAdapter().getContactUri(position);
+        if (contactUri != null) mListener.onPickContactAction(contactUri);
+    }
+
+    @Override
+    public void onPickerResult(Intent data) {
+        final Uri contactUri = data.getData();
+        if (contactUri != null) mListener.onPickContactAction(contactUri);
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putLong(KEY_TARGET_CONTACT_ID, mTargetContactId);
+    }
+
+    @Override
+    public void restoreSavedState(Bundle savedState) {
+        super.restoreSavedState(savedState);
+        if (savedState != null) {
+            mTargetContactId = savedState.getLong(KEY_TARGET_CONTACT_ID);
+        }
+    }
+
+    @Override
+    public void setQueryString(String queryString, boolean delaySelection) {
+        super.setQueryString(queryString, delaySelection);
+
+        setSearchMode(!TextUtils.isEmpty(queryString));
+    }
+}
diff --git a/src/com/android/contacts/list/JoinContactLoader.java b/src/com/android/contacts/list/JoinContactLoader.java
new file mode 100644
index 0000000..075d789
--- /dev/null
+++ b/src/com/android/contacts/list/JoinContactLoader.java
@@ -0,0 +1,105 @@
+/*
+ * 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.database.Cursor;
+import android.database.CursorWrapper;
+import android.net.Uri;
+
+/**
+ * A specialized loader for the Join Contacts UI.  It executes two queries:
+ * join suggestions and (optionally) the full contact list.
+ *
+ * This loader also loads the "suggestion" cursor, which can be accessed with:
+ * {@code ((JoinContactLoaderResult) result).suggestionCursor }
+ */
+public class JoinContactLoader extends CursorLoader {
+
+    private String[] mProjection;
+    private Uri mSuggestionUri;
+
+    /**
+     * Actual returned class.  It's guaranteed that this loader always returns an instance of this
+     * class.  This class is needed to tie the lifecycle of the second cursor to that of the
+     * primary one.
+     *
+     * Note we can't change the result type of this loader itself, because CursorLoader
+     * extends AsyncTaskLoader<Cursor>, not AsyncTaskLoader<? extends Cursor>
+     */
+    public static class JoinContactLoaderResult extends CursorWrapper {
+        public final Cursor suggestionCursor;
+
+        public JoinContactLoaderResult(Cursor baseCursor, Cursor suggestionCursor) {
+            super(baseCursor);
+            this.suggestionCursor = suggestionCursor;
+        }
+
+        @Override
+        public void close() {
+            try {
+                if (suggestionCursor != null) {
+                    suggestionCursor.close();
+                }
+            } finally {
+                if (super.getWrappedCursor() != null) {
+                    super.close();
+                }
+            }
+        }
+    }
+
+    public JoinContactLoader(Context context) {
+        super(context, null, null, null, null, null);
+    }
+
+    public void setSuggestionUri(Uri uri) {
+        this.mSuggestionUri = uri;
+    }
+
+    @Override
+    public void setProjection(String[] projection) {
+        super.setProjection(projection);
+        this.mProjection = projection;
+    }
+
+    @Override
+    public Cursor loadInBackground() {
+        // First execute the suggestions query, then call super.loadInBackground
+        // to load the entire list
+        final Cursor suggestionsCursor = getContext().getContentResolver()
+                .query(mSuggestionUri, mProjection, null, null, null);
+        if (suggestionsCursor == null) {
+            return null;
+        }
+        Cursor cursorToClose = suggestionsCursor;
+        try {
+            final Cursor baseCursor = super.loadInBackground();
+            if (baseCursor != null) {
+                final JoinContactLoaderResult result =
+                        new JoinContactLoaderResult(baseCursor, suggestionsCursor);
+                cursorToClose = null;
+                return result;
+            }
+        } finally {
+            if (cursorToClose != null) {
+                cursorToClose.close();
+            }
+        }
+        return null;
+    }
+}
diff --git a/src/com/android/contacts/list/LegacyContactListAdapter.java b/src/com/android/contacts/list/LegacyContactListAdapter.java
new file mode 100644
index 0000000..837991b
--- /dev/null
+++ b/src/com/android/contacts/list/LegacyContactListAdapter.java
@@ -0,0 +1,101 @@
+/*
+ * 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.provider.Contacts.People;
+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.
+ */
+@SuppressWarnings("deprecation")
+public class LegacyContactListAdapter extends ContactEntryListAdapter {
+
+    static final String[] PEOPLE_PROJECTION = new String[] {
+        People._ID,                         // 0
+        People.DISPLAY_NAME,                // 1
+        People.PHONETIC_NAME,               // 2
+        People.STARRED,                     // 3
+        People.PRESENCE_STATUS,             // 4
+    };
+
+    protected static final int PERSON_ID_COLUMN_INDEX = 0;
+    protected static final int PERSON_DISPLAY_NAME_COLUMN_INDEX = 1;
+    protected static final int PERSON_PHONETIC_NAME_COLUMN_INDEX = 2;
+    protected static final int PERSON_STARRED_COLUMN_INDEX = 3;
+    protected static final int PERSON_PRESENCE_STATUS_COLUMN_INDEX = 4;
+
+    private CharSequence mUnknownNameText;
+
+    public LegacyContactListAdapter(Context context) {
+        super(context);
+        mUnknownNameText = context.getText(android.R.string.unknownName);
+    }
+
+    @Override
+    public void configureLoader(CursorLoader loader, long directoryId) {
+        loader.setUri(People.CONTENT_URI);
+        loader.setProjection(PEOPLE_PROJECTION);
+        loader.setSortOrder(People.DISPLAY_NAME);
+    }
+
+    @Override
+    public String getContactDisplayName(int position) {
+        return ((Cursor)getItem(position)).getString(PERSON_DISPLAY_NAME_COLUMN_INDEX);
+    }
+
+    public Uri getPersonUri(int position) {
+        Cursor cursor = ((Cursor)getItem(position));
+        long personId = cursor.getLong(PERSON_ID_COLUMN_INDEX);
+        return ContentUris.withAppendedId(People.CONTENT_URI, personId);
+    }
+
+    @Override
+    protected ContactListItemView newView(
+            Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
+        final ContactListItemView view = new ContactListItemView(context, null);
+        view.setUnknownNameText(mUnknownNameText);
+        return view;
+    }
+
+    @Override
+    protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+        super.bindView(itemView, partition, cursor, position);
+        ContactListItemView view = (ContactListItemView)itemView;
+        bindName(view, cursor);
+        bindViewId(view, cursor, PERSON_ID_COLUMN_INDEX);
+        bindPresence(view, cursor);
+    }
+
+    protected void bindName(final ContactListItemView view, Cursor cursor) {
+        view.showDisplayName(cursor, PERSON_DISPLAY_NAME_COLUMN_INDEX,
+                getContactNameDisplayOrder());
+        view.showPhoneticName(cursor, PERSON_PHONETIC_NAME_COLUMN_INDEX);
+    }
+
+    protected void bindPresence(final ContactListItemView view, Cursor cursor) {
+        view.showPresenceAndStatusMessage(cursor, PERSON_PRESENCE_STATUS_COLUMN_INDEX, 0);
+    }
+}
diff --git a/src/com/android/contacts/list/LegacyPhoneNumberListAdapter.java b/src/com/android/contacts/list/LegacyPhoneNumberListAdapter.java
new file mode 100644
index 0000000..b5c96df
--- /dev/null
+++ b/src/com/android/contacts/list/LegacyPhoneNumberListAdapter.java
@@ -0,0 +1,114 @@
+/*
+ * 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.provider.Contacts.People;
+import android.provider.Contacts.Phones;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+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.
+ */
+@SuppressWarnings("deprecation")
+public class LegacyPhoneNumberListAdapter extends ContactEntryListAdapter {
+
+    private static final String[] PHONES_PROJECTION = new String[] {
+        Phones._ID,             // 0
+        Phones.TYPE,            // 1
+        Phones.LABEL,           // 2
+        Phones.NUMBER,          // 3
+        People.DISPLAY_NAME,    // 4
+        People.PHONETIC_NAME,   // 5
+    };
+
+    private static final int PHONE_ID_COLUMN_INDEX = 0;
+    private static final int PHONE_TYPE_COLUMN_INDEX = 1;
+    private static final int PHONE_LABEL_COLUMN_INDEX = 2;
+    private static final int PHONE_NUMBER_COLUMN_INDEX = 3;
+    private static final int PHONE_DISPLAY_NAME_COLUMN_INDEX = 4;
+    private static final int PHONE_PHONETIC_NAME_COLUMN_INDEX = 5;
+
+    private CharSequence mUnknownNameText;
+
+    public LegacyPhoneNumberListAdapter(Context context) {
+        super(context);
+        mUnknownNameText = context.getText(android.R.string.unknownName);
+    }
+
+    @Override
+    public void configureLoader(CursorLoader loader, long directoryId) {
+        loader.setUri(Phones.CONTENT_URI);
+        loader.setProjection(PHONES_PROJECTION);
+        loader.setSortOrder(Phones.DISPLAY_NAME);
+    }
+
+    @Override
+    public String getContactDisplayName(int position) {
+        return ((Cursor)getItem(position)).getString(PHONE_DISPLAY_NAME_COLUMN_INDEX);
+    }
+
+    public Uri getPhoneUri(int position) {
+        Cursor cursor = ((Cursor)getItem(position));
+        long id = cursor.getLong(PHONE_ID_COLUMN_INDEX);
+        return ContentUris.withAppendedId(Phones.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);
+        return view;
+    }
+
+    @Override
+    protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+        super.bindView(itemView, partition, cursor, position);
+        ContactListItemView view = (ContactListItemView)itemView;
+        bindName(view, cursor);
+        bindViewId(view, cursor, PHONE_ID_COLUMN_INDEX);
+        bindPhoneNumber(view, cursor);
+    }
+
+    protected void bindName(final ContactListItemView view, Cursor cursor) {
+        view.showDisplayName(cursor, PHONE_DISPLAY_NAME_COLUMN_INDEX, getContactNameDisplayOrder());
+        view.showPhoneticName(cursor, PHONE_PHONETIC_NAME_COLUMN_INDEX);
+    }
+
+    protected void bindPhoneNumber(ContactListItemView view, Cursor cursor) {
+        CharSequence label = null;
+        if (!cursor.isNull(PHONE_TYPE_COLUMN_INDEX)) {
+            final int type = cursor.getInt(PHONE_TYPE_COLUMN_INDEX);
+            final String customLabel = cursor.getString(PHONE_LABEL_COLUMN_INDEX);
+
+            // TODO cache
+            label = Phone.getTypeLabel(getContext().getResources(), type, customLabel);
+        }
+        view.setLabel(label);
+        view.setPhoneNumber(cursor.getString(PHONE_NUMBER_COLUMN_INDEX), /* countryIso */ null);
+    }
+}
diff --git a/src/com/android/contacts/list/LegacyPhoneNumberPickerFragment.java b/src/com/android/contacts/list/LegacyPhoneNumberPickerFragment.java
new file mode 100644
index 0000000..5b6e11f
--- /dev/null
+++ b/src/com/android/contacts/list/LegacyPhoneNumberPickerFragment.java
@@ -0,0 +1,71 @@
+/*
+ * 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.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();
+
+    @Override
+    protected boolean getVisibleScrollbarEnabled() {
+        return false;
+    }
+
+    @Override
+    protected Uri getPhoneUri(int position) {
+        final LegacyPhoneNumberListAdapter adapter = (LegacyPhoneNumberListAdapter) getAdapter();
+        return adapter.getPhoneUri(position);
+    }
+
+    @Override
+    protected String getLookupKey(int position) {
+        // There is no lookup key for the legacy adapter.
+        return null;
+    }
+
+    @Override
+    protected ContactEntryListAdapter createListAdapter() {
+        LegacyPhoneNumberListAdapter adapter = new LegacyPhoneNumberListAdapter(getActivity());
+        adapter.setDisplayPhotos(true);
+        return adapter;
+    }
+
+    @Override
+    protected void setPhotoPosition(ContactEntryListAdapter adapter) {
+        // no-op
+    }
+
+    @Override
+    protected void startPhoneNumberShortcutIntent(Uri uri, boolean isVideoCall) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setPhotoPosition(ContactListItemView.PhotoPosition photoPosition) {
+        Log.w(TAG, "setPhotoPosition() is ignored in legacy compatibility mode.");
+    }
+}
diff --git a/src/com/android/contacts/list/LegacyPostalAddressListAdapter.java b/src/com/android/contacts/list/LegacyPostalAddressListAdapter.java
new file mode 100644
index 0000000..4c598cd
--- /dev/null
+++ b/src/com/android/contacts/list/LegacyPostalAddressListAdapter.java
@@ -0,0 +1,115 @@
+/*
+ * 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.provider.Contacts.ContactMethods;
+import android.provider.Contacts.People;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+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.
+ */
+@SuppressWarnings("deprecation")
+public class LegacyPostalAddressListAdapter extends ContactEntryListAdapter {
+
+    static final String[] POSTALS_PROJECTION = new String[] {
+        ContactMethods._ID,     // 0
+        ContactMethods.TYPE,    // 1
+        ContactMethods.LABEL,   // 2
+        ContactMethods.DATA,    // 3
+        People.DISPLAY_NAME,    // 4
+        People.PHONETIC_NAME,   // 5
+    };
+
+    public static final int POSTAL_ID_COLUMN_INDEX = 0;
+    public static final int POSTAL_TYPE_COLUMN_INDEX = 1;
+    public static final int POSTAL_LABEL_COLUMN_INDEX = 2;
+    public static final int POSTAL_NUMBER_COLUMN_INDEX = 3;
+    public static final int POSTAL_DISPLAY_NAME_COLUMN_INDEX = 4;
+    public static final int POSTAL_PHONETIC_NAME_COLUMN_INDEX = 5;
+
+    private CharSequence mUnknownNameText;
+
+    public LegacyPostalAddressListAdapter(Context context) {
+        super(context);
+        mUnknownNameText = context.getText(android.R.string.unknownName);
+    }
+
+    @Override
+    public void configureLoader(CursorLoader loader, long directoryId) {
+        loader.setUri(ContactMethods.CONTENT_URI);
+        loader.setProjection(POSTALS_PROJECTION);
+        loader.setSortOrder(People.DISPLAY_NAME);
+        loader.setSelection(ContactMethods.KIND + "=" + android.provider.Contacts.KIND_POSTAL);
+    }
+
+    @Override
+    public String getContactDisplayName(int position) {
+        return ((Cursor)getItem(position)).getString(POSTAL_DISPLAY_NAME_COLUMN_INDEX);
+    }
+
+    public Uri getContactMethodUri(int position) {
+        Cursor cursor = ((Cursor)getItem(position));
+        long id = cursor.getLong(POSTAL_ID_COLUMN_INDEX);
+        return ContentUris.withAppendedId(ContactMethods.CONTENT_URI, id);
+    }
+
+    @Override
+    protected ContactListItemView newView(
+            Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
+        final ContactListItemView view = new ContactListItemView(context, null);
+        view.setUnknownNameText(mUnknownNameText);
+        return view;
+    }
+
+    @Override
+    protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+        super.bindView(itemView, partition, cursor, position);
+        ContactListItemView view = (ContactListItemView)itemView;
+        bindName(view, cursor);
+        bindViewId(view, cursor, POSTAL_ID_COLUMN_INDEX);
+        bindPostalAddress(view, cursor);
+    }
+
+    protected void bindName(final ContactListItemView view, Cursor cursor) {
+        view.showDisplayName(cursor, POSTAL_DISPLAY_NAME_COLUMN_INDEX,
+                getContactNameDisplayOrder());
+        view.showPhoneticName(cursor, POSTAL_PHONETIC_NAME_COLUMN_INDEX);
+    }
+
+    protected void bindPostalAddress(ContactListItemView view, Cursor cursor) {
+        CharSequence label = null;
+        if (!cursor.isNull(POSTAL_TYPE_COLUMN_INDEX)) {
+            final int type = cursor.getInt(POSTAL_TYPE_COLUMN_INDEX);
+            final String customLabel = cursor.getString(POSTAL_LABEL_COLUMN_INDEX);
+
+            // TODO cache
+            label = StructuredPostal.getTypeLabel(getContext().getResources(), type, customLabel);
+        }
+        view.setLabel(label);
+        view.showData(cursor, POSTAL_NUMBER_COLUMN_INDEX);
+    }
+}
diff --git a/src/com/android/contacts/list/MultiSelectContactsListFragment.java b/src/com/android/contacts/list/MultiSelectContactsListFragment.java
new file mode 100644
index 0000000..f5c6d34
--- /dev/null
+++ b/src/com/android/contacts/list/MultiSelectContactsListFragment.java
@@ -0,0 +1,456 @@
+/*
+ * 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.list;
+
+import android.content.Context;
+import android.database.Cursor;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+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.common.list.ContactEntryListFragment;
+import com.android.contacts.common.list.MultiSelectEntryContactListAdapter;
+import com.android.contacts.common.list.MultiSelectEntryContactListAdapter.SelectedContactsListener;
+import com.android.contacts.common.logging.ListEvent.ActionType;
+import com.android.contacts.common.logging.Logger;
+import com.android.contacts.common.logging.SearchState;
+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.GoogleAccountType;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.TreeSet;
+
+/**
+ * Fragment containing a contact list used for browsing contacts and optionally selecting
+ * multiple contacts via checkboxes.
+ */
+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();
+        void onStopDisplayingCheckBoxes();
+    }
+
+    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 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;
+    }
+
+    public void setAnimateOnLoad(boolean shouldAnimate) {
+        mAnimateOnLoad = shouldAnimate;
+    }
+
+    @Override
+    public void onSelectedContactsChanged() {
+        if (mCheckBoxListListener != null) mCheckBoxListListener.onSelectedContactIdsChanged();
+    }
+
+    @Override
+    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
+    public void onSelectedContactsChangedViaCheckBox() {
+        if (getAdapter().getSelectedContactIds().size() == 0) {
+            // Last checkbox has been unchecked. So we should stop displaying checkboxes.
+            mCheckBoxListListener.onStopDisplayingCheckBoxes();
+        } else {
+            onSelectedContactsChanged();
+        }
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        if (savedInstanceState != null) {
+            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);
+        }
+    }
+
+    public TreeSet<Long> getSelectedContactIds() {
+        return getAdapter().getSelectedContactIds();
+    }
+
+    public long[] getSelectedContactIdsArray() {
+        return getAdapter().getSelectedContactIdsArray();
+    }
+
+    @Override
+    protected void configureAdapter() {
+        super.configureAdapter();
+        getAdapter().setSelectedContactsListener(this);
+    }
+
+    @Override
+    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) {
+        if (getAdapter() != null) {
+            getAdapter().setDisplayCheckBoxes(displayCheckBoxes);
+            if (!displayCheckBoxes) {
+                clearCheckBoxes();
+            }
+        }
+    }
+
+    public void clearCheckBoxes() {
+        getAdapter().setSelectedContactIds(new TreeSet<Long>());
+    }
+
+    @Override
+    protected boolean onItemLongClick(int position, long id) {
+        final int previouslySelectedCount = getAdapter().getSelectedContactIds().size();
+        final long contactId = getContactId(position);
+        final int partition = getAdapter().getPartitionForPosition(position);
+        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();
+        if (mCheckBoxListListener != null
+                && previouslySelectedCount != 0 && nowSelectedCount == 0) {
+            // Last checkbox has been unchecked. So we should stop displaying checkboxes.
+            mCheckBoxListListener.onStopDisplayingCheckBoxes();
+        }
+        return true;
+    }
+
+    @Override
+    protected void onItemClick(int position, long id) {
+        final long contactId = getContactId(position);
+        if (contactId < 0) {
+            return;
+        }
+        if (getAdapter().isDisplayingCheckBoxes()) {
+            getAdapter().toggleSelectionOfContactId(contactId);
+        } else {
+            if (isSearchMode()) {
+                mSearchResultClicked = true;
+                Logger.logSearchEvent(createSearchStateForSearchResultClick(position));
+            }
+        }
+        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.
+     */
+    public SearchState createSearchState() {
+        return createSearchState(/* selectedPosition */ -1);
+    }
+
+    /**
+     * Returns the state of the search results presented to the user
+     * at the time the result in the given position was clicked.
+     */
+    public SearchState createSearchStateForSearchResultClick(int selectedPosition) {
+        return createSearchState(selectedPosition);
+    }
+
+    private SearchState createSearchState(int selectedPosition) {
+        final MultiSelectEntryContactListAdapter adapter = getAdapter();
+        if (adapter == null) {
+            return null;
+        }
+        final SearchState searchState = new SearchState();
+        searchState.queryLength = adapter.getQueryString() == null
+                ? 0 : adapter.getQueryString().length();
+        searchState.numPartitions = adapter.getPartitionCount();
+
+        // Set the number of results displayed to the user.  Note that the adapter.getCount(),
+        // value does not always match the number of results actually displayed to the user,
+        // which is why we calculate it manually.
+        final List<Integer> numResultsInEachPartition = new ArrayList<>();
+        for (int i = 0; i < adapter.getPartitionCount(); i++) {
+            final Cursor cursor = adapter.getCursor(i);
+            if (cursor == null || cursor.isClosed()) {
+                // Something went wrong, abort.
+                numResultsInEachPartition.clear();
+                break;
+            }
+            numResultsInEachPartition.add(cursor.getCount());
+        }
+        if (!numResultsInEachPartition.isEmpty()) {
+            int numResults = 0;
+            for (int i = 0; i < numResultsInEachPartition.size(); i++) {
+                numResults += numResultsInEachPartition.get(i);
+            }
+            searchState.numResults = numResults;
+        }
+
+        // If a selection was made, set additional search state
+        if (selectedPosition >= 0) {
+            searchState.selectedPartition = adapter.getPartitionForPosition(selectedPosition);
+            searchState.selectedIndexInPartition = adapter.getOffsetInPartition(selectedPosition);
+            final Cursor cursor = adapter.getCursor(searchState.selectedPartition);
+            searchState.numResultsInSelectedPartition =
+                    cursor == null || cursor.isClosed() ? -1 : cursor.getCount();
+
+            // Calculate the index across all partitions
+            if (!numResultsInEachPartition.isEmpty()) {
+                int selectedIndex = 0;
+                for (int i = 0; i < searchState.selectedPartition; i++) {
+                    selectedIndex += numResultsInEachPartition.get(i);
+                }
+                selectedIndex += searchState.selectedIndexInPartition;
+                searchState.selectedIndex = selectedIndex;
+            }
+        }
+        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
+    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);
+
+        // Set text of count of contacts and account name (if it's a Google account)
+        final TextView accountFilterHeader = (TextView) accountFilterContainer.findViewById(
+                R.id.account_filter_header);
+        final String headerText = GoogleAccountType.ACCOUNT_TYPE.equals(accountWithDataSet.type)
+                ? 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 AccountTypeManager accountTypeManager = AccountTypeManager.getInstance(context);
+        final AccountType accountType = accountTypeManager.getAccountType(
+                accountWithDataSet.type, accountWithDataSet.dataSet);
+        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 =
+                    accountFilterHeaderIcon.getLayoutParams().height;
+
+            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 =
+                    accountFilterHeaderIcon.getLayoutParams().height;
+
+            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 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());
+    }
+
+}
diff --git a/src/com/android/contacts/list/OnContactBrowserActionListener.java b/src/com/android/contacts/list/OnContactBrowserActionListener.java
new file mode 100644
index 0000000..5c046d1
--- /dev/null
+++ b/src/com/android/contacts/list/OnContactBrowserActionListener.java
@@ -0,0 +1,53 @@
+/*
+ * 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.net.Uri;
+
+/**
+ * Action callbacks that can be sent by a contact list.
+ */
+public interface OnContactBrowserActionListener  {
+
+    /**
+     * Notification of selection change, invoked when the selection of activated
+     * item(s) is change by either a user action or some other event, e.g. sync.
+     */
+    void onSelectionChange();
+
+    /**
+     * Opens the specified contact for viewing.
+     *
+     * @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(int position, Uri contactLookupUri, boolean isEnterpriseContact);
+
+    /**
+     * Initiates the contact deletion process.
+     */
+    void onDeleteContactAction(Uri contactUri);
+
+    /**
+     * Closes the contact browser.
+     */
+    void onFinishAction();
+
+    /**
+     * Invoked if the requested selected contact is not found in the list.
+     */
+    void onInvalidSelection();
+}
diff --git a/src/com/android/contacts/list/OnContactPickerActionListener.java b/src/com/android/contacts/list/OnContactPickerActionListener.java
new file mode 100644
index 0000000..0c26e9e
--- /dev/null
+++ b/src/com/android/contacts/list/OnContactPickerActionListener.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.list;
+
+import android.content.Intent;
+import android.net.Uri;
+
+/**
+ * Action callbacks that can be sent by a contact picker.
+ */
+public interface OnContactPickerActionListener  {
+
+    /**
+     * Returns the selected contact to the requester.
+     */
+    void onPickContactAction(Uri contactUri);
+
+    /**
+     * Returns the selected contact as a shortcut intent.
+     */
+    void onShortcutIntentCreated(Intent intent);
+
+    /**
+     * Creates a new contact and then returns it to the caller.
+     */
+    void onCreateNewContactAction();
+
+    /**
+     * Opens the specified contact for editing.
+     */
+    void onEditContactAction(Uri contactLookupUri);
+}
diff --git a/src/com/android/contacts/list/OnContactsUnavailableActionListener.java b/src/com/android/contacts/list/OnContactsUnavailableActionListener.java
new file mode 100644
index 0000000..cc381e4
--- /dev/null
+++ b/src/com/android/contacts/list/OnContactsUnavailableActionListener.java
@@ -0,0 +1,37 @@
+/*
+ * 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/OnEmailAddressPickerActionListener.java b/src/com/android/contacts/list/OnEmailAddressPickerActionListener.java
new file mode 100644
index 0000000..e785323
--- /dev/null
+++ b/src/com/android/contacts/list/OnEmailAddressPickerActionListener.java
@@ -0,0 +1,29 @@
+/*
+ * 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.net.Uri;
+
+/**
+ * Action callbacks that can be sent by a email address picker.
+ */
+public interface OnEmailAddressPickerActionListener  {
+
+    /**
+     * Returns the selected phone number to the requester.
+     */
+    void onPickEmailAddressAction(Uri dataUri);
+}
diff --git a/src/com/android/contacts/list/OnMultiplePhoneNumberPickerActionListener.java b/src/com/android/contacts/list/OnMultiplePhoneNumberPickerActionListener.java
new file mode 100644
index 0000000..ac010ba
--- /dev/null
+++ b/src/com/android/contacts/list/OnMultiplePhoneNumberPickerActionListener.java
@@ -0,0 +1,34 @@
+/*
+ * 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.net.Uri;
+
+/**
+ * Action callbacks that can be sent by a multiple phone number picker.
+ */
+public interface OnMultiplePhoneNumberPickerActionListener {
+
+    /**
+     * Returns the selected phone numbers to the requester.
+     */
+    void onPhoneNumbersSelectedAction(Uri[] dataUris);
+
+    /**
+     * Closes the picker without changing the selection.
+     */
+    void onFinishAction();
+}
diff --git a/src/com/android/contacts/list/OnPostalAddressPickerActionListener.java b/src/com/android/contacts/list/OnPostalAddressPickerActionListener.java
new file mode 100644
index 0000000..6ecde61
--- /dev/null
+++ b/src/com/android/contacts/list/OnPostalAddressPickerActionListener.java
@@ -0,0 +1,29 @@
+/*
+ * 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.net.Uri;
+
+/**
+ * Action callbacks that can be sent by a postal address picker.
+ */
+public interface OnPostalAddressPickerActionListener  {
+
+    /**
+     * Returns the selected phone number to the requester.
+     */
+    void onPickPostalAddressAction(Uri dataUri);
+}
diff --git a/src/com/android/contacts/list/PostalAddressListAdapter.java b/src/com/android/contacts/list/PostalAddressListAdapter.java
new file mode 100644
index 0000000..951a933
--- /dev/null
+++ b/src/com/android/contacts/list/PostalAddressListAdapter.java
@@ -0,0 +1,183 @@
+/*
+ * 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.StructuredPostal;
+import android.provider.ContactsContract.Data;
+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;
+
+/**
+ * A cursor adapter for the {@link StructuredPostal#CONTENT_TYPE} content type.
+ */
+public class PostalAddressListAdapter extends ContactEntryListAdapter {
+
+    protected static class PostalQuery {
+        private static final String[] PROJECTION_PRIMARY = new String[] {
+            StructuredPostal._ID,                       // 0
+            StructuredPostal.TYPE,                      // 1
+            StructuredPostal.LABEL,                     // 2
+            StructuredPostal.DATA,                      // 3
+            StructuredPostal.PHOTO_ID,                  // 4
+            StructuredPostal.LOOKUP_KEY,                // 5
+            StructuredPostal.DISPLAY_NAME_PRIMARY,      // 6
+        };
+
+        private static final String[] PROJECTION_ALTERNATIVE = new String[] {
+            StructuredPostal._ID,                       // 0
+            StructuredPostal.TYPE,                      // 1
+            StructuredPostal.LABEL,                     // 2
+            StructuredPostal.DATA,                      // 3
+            StructuredPostal.PHOTO_ID,                  // 4
+            StructuredPostal.LOOKUP_KEY,                // 5
+            StructuredPostal.DISPLAY_NAME_ALTERNATIVE,  // 6
+        };
+
+        public static final int POSTAL_ID           = 0;
+        public static final int POSTAL_TYPE         = 1;
+        public static final int POSTAL_LABEL        = 2;
+        public static final int POSTAL_ADDRESS      = 3;
+        public static final int POSTAL_PHOTO_ID     = 4;
+        public static final int POSTAL_LOOKUP_KEY   = 5;
+        public static final int POSTAL_DISPLAY_NAME = 6;
+    }
+
+    private final CharSequence mUnknownNameText;
+
+    public PostalAddressListAdapter(Context context) {
+        super(context);
+
+        mUnknownNameText = context.getText(android.R.string.unknownName);
+    }
+
+    @Override
+    public void configureLoader(CursorLoader loader, long directoryId) {
+        final Builder builder = StructuredPostal.CONTENT_URI.buildUpon()
+                .appendQueryParameter(ContactsContract.REMOVE_DUPLICATE_ENTRIES, "true");
+        if (isSectionHeaderDisplayEnabled()) {
+            builder.appendQueryParameter(StructuredPostal.EXTRA_ADDRESS_BOOK_INDEX, "true");
+        }
+        loader.setUri(builder.build());
+
+        if (getContactNameDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
+            loader.setProjection(PostalQuery.PROJECTION_PRIMARY);
+        } else {
+            loader.setProjection(PostalQuery.PROJECTION_ALTERNATIVE);
+        }
+
+        if (getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) {
+            loader.setSortOrder(StructuredPostal.SORT_KEY_PRIMARY);
+        } else {
+            loader.setSortOrder(StructuredPostal.SORT_KEY_ALTERNATIVE);
+        }
+    }
+
+    @Override
+    public String getContactDisplayName(int position) {
+        return ((Cursor) getItem(position)).getString(PostalQuery.POSTAL_DISPLAY_NAME);
+    }
+
+    /**
+     * Builds a {@link Data#CONTENT_URI} for the current cursor
+     * position.
+     */
+    public Uri getDataUri(int position) {
+        long id = ((Cursor)getItem(position)).getLong(PostalQuery.POSTAL_ID);
+        return ContentUris.withAppendedId(Data.CONTENT_URI, 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.setIsSectionHeaderEnabled(isSectionHeaderDisplayEnabled());
+        return view;
+    }
+
+    @Override
+    protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+        super.bindView(itemView, partition, cursor, position);
+        ContactListItemView view = (ContactListItemView)itemView;
+        bindSectionHeaderAndDivider(view, position);
+        bindName(view, cursor);
+        bindViewId(view, cursor, PostalQuery.POSTAL_ID);
+        bindPhoto(view, cursor);
+        bindPostalAddress(view, cursor);
+    }
+
+    protected void bindPostalAddress(ContactListItemView view, Cursor cursor) {
+        CharSequence label = null;
+        if (!cursor.isNull(PostalQuery.POSTAL_TYPE)) {
+            final int type = cursor.getInt(PostalQuery.POSTAL_TYPE);
+            final String customLabel = cursor.getString(PostalQuery.POSTAL_LABEL);
+
+            // TODO cache
+            label = StructuredPostal.getTypeLabel(getContext().getResources(), type, customLabel);
+        }
+        view.setLabel(label);
+        view.showData(cursor, PostalQuery.POSTAL_ADDRESS);
+    }
+
+    protected void bindSectionHeaderAndDivider(final ContactListItemView view, int position) {
+        final int section = getSectionForPosition(position);
+        if (getPositionForSection(section) == position) {
+            String title = (String)getSections()[section];
+            view.setSectionHeader(title);
+        } else {
+            view.setSectionHeader(null);
+        }
+    }
+
+    protected void bindName(final ContactListItemView view, Cursor cursor) {
+        view.showDisplayName(cursor, PostalQuery.POSTAL_DISPLAY_NAME, getContactNameDisplayOrder());
+    }
+
+    protected void bindPhoto(final ContactListItemView view, Cursor cursor) {
+        long photoId = 0;
+        if (!cursor.isNull(PostalQuery.POSTAL_PHOTO_ID)) {
+            photoId = cursor.getLong(PostalQuery.POSTAL_PHOTO_ID);
+        }
+
+        DefaultImageRequest request = null;
+        if (photoId == 0) {
+            request = getDefaultImageRequestFromCursor(cursor, PostalQuery.POSTAL_DISPLAY_NAME,
+                    PostalQuery.POSTAL_LOOKUP_KEY);
+        }
+
+        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, getCircularPhotos(),
+                request);
+    }
+//
+//    protected void bindSearchSnippet(final ContactListItemView view, Cursor cursor) {
+//        view.showSnippet(cursor, SUMMARY_SNIPPET_MIMETYPE_COLUMN_INDEX,
+//                SUMMARY_SNIPPET_DATA1_COLUMN_INDEX, SUMMARY_SNIPPET_DATA4_COLUMN_INDEX);
+//    }
+
+}
diff --git a/src/com/android/contacts/list/PostalAddressPickerFragment.java b/src/com/android/contacts/list/PostalAddressPickerFragment.java
new file mode 100644
index 0000000..c64e173
--- /dev/null
+++ b/src/com/android/contacts/list/PostalAddressPickerFragment.java
@@ -0,0 +1,92 @@
+/*
+ * 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.net.Uri;
+import android.view.LayoutInflater;
+import android.view.View;
+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.
+ */
+public class PostalAddressPickerFragment
+        extends ContactEntryListFragment<ContactEntryListAdapter> {
+    private OnPostalAddressPickerActionListener mListener;
+
+    public PostalAddressPickerFragment() {
+        setQuickContactEnabled(false);
+        setPhotoLoaderEnabled(true);
+        setSectionHeaderDisplayEnabled(true);
+        setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_DATA_SHORTCUT);
+    }
+
+    public void setOnPostalAddressPickerActionListener(
+            OnPostalAddressPickerActionListener listener) {
+        this.mListener = listener;
+    }
+
+    @Override
+    protected void onItemClick(int position, long id) {
+        if (getAdapter().getItem(position) == null) {
+            return;
+        }
+        if (!isLegacyCompatibilityMode()) {
+            PostalAddressListAdapter adapter = (PostalAddressListAdapter)getAdapter();
+            pickPostalAddress(adapter.getDataUri(position));
+        } else {
+            LegacyPostalAddressListAdapter adapter = (LegacyPostalAddressListAdapter)getAdapter();
+            pickPostalAddress(adapter.getContactMethodUri(position));
+        }
+    }
+
+    @Override
+    protected ContactEntryListAdapter createListAdapter() {
+        if (!isLegacyCompatibilityMode()) {
+            PostalAddressListAdapter adapter = new PostalAddressListAdapter(getActivity());
+            adapter.setSectionHeaderDisplayEnabled(true);
+            adapter.setDisplayPhotos(true);
+            return adapter;
+        } else {
+            LegacyPostalAddressListAdapter adapter =
+                    new LegacyPostalAddressListAdapter(getActivity());
+            adapter.setSectionHeaderDisplayEnabled(false);
+            adapter.setDisplayPhotos(false);
+            return adapter;
+        }
+    }
+
+    @Override
+    protected View inflateView(LayoutInflater inflater, ViewGroup container) {
+        return inflater.inflate(R.layout.contact_list_content, null);
+    }
+
+    @Override
+    protected void onCreateView(LayoutInflater inflater, ViewGroup container) {
+        super.onCreateView(inflater, container);
+
+        setVisibleScrollbarEnabled(!isLegacyCompatibilityMode());
+    }
+
+    private void pickPostalAddress(Uri uri) {
+        mListener.onPickPostalAddressAction(uri);
+    }
+}
diff --git a/src/com/android/contacts/list/UiIntentActions.java b/src/com/android/contacts/list/UiIntentActions.java
new file mode 100644
index 0000000..6ea984f
--- /dev/null
+++ b/src/com/android/contacts/list/UiIntentActions.java
@@ -0,0 +1,135 @@
+/*
+ * 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.list;
+
+/**
+ * Intent actions related to the Contacts app UI. In the past we decided to store these in a single
+ * location in order to easily expose them via ContactsContract. We eventually decided
+ * this wasn't useful.
+ */
+public class UiIntentActions {
+    /**
+     * The action for the default contacts list tab.
+     */
+    public static final String LIST_DEFAULT =
+            "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 the contacts list tab.
+     */
+    public static final String LIST_GROUP_ACTION =
+            "com.android.contacts.action.LIST_GROUP";
+
+    /**
+     * 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 =
+            "com.android.contacts.action.LIST_ALL_CONTACTS";
+
+    /**
+     * The action for the contacts with phone numbers list tab.
+     */
+    public static final String LIST_CONTACTS_WITH_PHONES_ACTION =
+            "com.android.contacts.action.LIST_CONTACTS_WITH_PHONES";
+
+    /**
+     * The action for the starred contacts list tab.
+     */
+    public static final String LIST_STARRED_ACTION =
+            "com.android.contacts.action.LIST_STARRED";
+
+    /**
+     * The action for the frequent contacts list tab.
+     */
+    public static final String LIST_FREQUENT_ACTION =
+            "com.android.contacts.action.LIST_FREQUENT";
+
+    /**
+     * The action for the "Join Contact" picker.
+     */
+    public static final String PICK_JOIN_CONTACT_ACTION =
+            "com.android.contacts.action.JOIN_CONTACT";
+
+    /**
+     * The action for the "strequent" contacts list tab. It first lists the starred
+     * contacts in alphabetical order and then the frequent contacts in descending
+     * order of the number of times they have been contacted.
+     */
+    public static final String LIST_STREQUENT_ACTION =
+            "com.android.contacts.action.LIST_STREQUENT";
+
+    /**
+     * A key for to be used as an intent extra to set the activity
+     * title to a custom String value.
+     */
+    public static final String TITLE_EXTRA_KEY =
+            "com.android.contacts.extra.TITLE_EXTRA";
+
+    /**
+     * Used as an int extra field in {@link #FILTER_CONTACTS_ACTION}
+     * intents to supply the text on which to filter.
+     */
+    public static final String FILTER_TEXT_EXTRA_KEY =
+            "com.android.contacts.extra.FILTER_TEXT";
+
+    /**
+     * Used with JOIN_CONTACT action to set the target for aggregation. This action type
+     * uses contact ids instead of contact uris for the sake of backwards compatibility.
+     * <p>
+     * Type: LONG
+     */
+    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/quickcontact/Action.java b/src/com/android/contacts/quickcontact/Action.java
new file mode 100644
index 0000000..7d904ab
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/Action.java
@@ -0,0 +1,77 @@
+/*
+ * 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.quickcontact;
+
+import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+
+import com.android.contacts.common.Collapser;
+
+/**
+ * Abstract definition of an action that could be performed, along with
+ * string description and icon.
+ */
+public interface Action extends Collapser.Collapsible<Action> {
+    public CharSequence getBody();
+    public CharSequence getSubtitle();
+
+    public String getMimeType();
+
+    /** Returns an icon that can be clicked for the alternate action. */
+    public Drawable getAlternateIcon();
+
+    /** Returns the content description of the icon for the alternate action. */
+    public String getAlternateIconDescription();
+
+    /** Build an {@link Intent} that will perform this action. */
+    public Intent getIntent();
+
+    /** Build an {@link Intent} that will perform the alternate action. */
+    public Intent getAlternateIntent();
+
+    /** Checks if the contact data for this action is primary. */
+    public boolean isPrimary();
+
+    /** Checks if the contact data for this action is super primary. */
+    public boolean isSuperPrimary();
+
+    /**
+     * Returns a lookup (@link Uri) for the contact data item or null if there is no data item
+     * corresponding to this row
+     */
+    public Uri getDataUri();
+
+    /**
+     * Returns the id of the contact data item or -1 of there is no data item corresponding to this
+     * row
+     */
+    public long getDataId();
+
+    /** Returns the presence of this item or -1 if it was never set */
+    public int getPresence();
+
+    /**
+     * Returns the number of times this action has been used.
+     */
+    public Integer getTimesUsed();
+
+    /**
+     * Returns the last time this action was used.
+     */
+    public Long getLastTimeUsed();
+}
diff --git a/src/com/android/contacts/quickcontact/ActionMultiMap.java b/src/com/android/contacts/quickcontact/ActionMultiMap.java
new file mode 100644
index 0000000..ff9d677
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/ActionMultiMap.java
@@ -0,0 +1,50 @@
+/*
+ * 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.quickcontact;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+/**
+ * Provide a simple way of collecting one or more {@link Action} objects
+ * under a MIME-type key.
+ */
+public class ActionMultiMap extends HashMap<String, ArrayList<Action>> {
+    public void put(String mimeType, Action info) {
+       put(mimeType, info, false);
+    }
+
+    /**
+     * Puts the (mimeType,Action) tuple into the multimap at the front if
+     * the 'front' flag is set to true
+     */
+    public void put(String mimeType, Action info, boolean front) {
+        // Put the info first
+        ArrayList<Action> collectList = get(mimeType);
+
+        // Create list for this MIME-type if needed
+        if (collectList == null) {
+            collectList = new ArrayList<Action>();
+            put(mimeType, collectList);
+        }
+        if (front) {
+            collectList.add(0, info);
+        } else {
+            collectList.add(info);
+        }
+    }
+}
diff --git a/src/com/android/contacts/quickcontact/CheckableImageView.java b/src/com/android/contacts/quickcontact/CheckableImageView.java
new file mode 100644
index 0000000..d1b75cb
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/CheckableImageView.java
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+
+package com.android.contacts.quickcontact;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.Checkable;
+import android.widget.ImageView;
+
+/**
+ * A special variation of ImageView that can be used as a checkable object.
+ * This is used as the background view of quickcontact chiclet, which is in checked state
+ * when disambig list is shown. Otherwise, it works identically to a ImageView.
+ */
+public class CheckableImageView extends ImageView implements Checkable {
+    private boolean mChecked;
+
+    private static final int[] CHECKED_STATE_SET = {
+        android.R.attr.state_checked
+    };
+
+    public CheckableImageView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    public int[] onCreateDrawableState(int extraSpace) {
+        final int[] drawableState = super.onCreateDrawableState(extraSpace + 1);
+        if (isChecked()) {
+            mergeDrawableStates(drawableState, CHECKED_STATE_SET);
+        }
+        return drawableState;
+    }
+
+    public void toggle() {
+        setChecked(!mChecked);
+    }
+
+    public boolean isChecked() {
+        return mChecked;
+    }
+
+    public void setChecked(boolean checked) {
+        if (mChecked != checked) {
+            mChecked = checked;
+            refreshDrawableState();
+        }
+    }
+}
diff --git a/src/com/android/contacts/quickcontact/DataAction.java b/src/com/android/contacts/quickcontact/DataAction.java
new file mode 100644
index 0000000..5a49c77
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/DataAction.java
@@ -0,0 +1,351 @@
+/*
+ * 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.quickcontact;
+
+import android.content.ComponentName;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.Data;
+import android.telecom.PhoneAccount;
+import android.text.TextUtils;
+import android.util.Log;
+
+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.quickcontact.WebAddress.ParseException;
+import com.android.contacts.util.PhoneCapabilityTester;
+import com.android.contacts.util.StructuredPostalUtils;
+
+/**
+ * Description of a specific {@link Data#_ID} item, with style information
+ * defined by a {@link DataKind}.
+ */
+public class DataAction implements Action {
+    private static final String TAG = "DataAction";
+
+    private final Context mContext;
+    private final DataKind mKind;
+    private final String mMimeType;
+    private final Integer mTimesUsed;
+    private final Long mLastTimeUsed;
+
+    private CharSequence mBody;
+    private CharSequence mSubtitle;
+    private Intent mIntent;
+    private Intent mAlternateIntent;
+    private int mAlternateIconDescriptionRes;
+    private int mAlternateIconRes;
+    private int mPresence = -1;
+
+    private Uri mDataUri;
+    private long mDataId;
+    private boolean mIsPrimary;
+    private boolean mIsSuperPrimary;
+
+    /**
+     * Create an action from common {@link Data} elements.
+     */
+    public DataAction(Context context, DataItem item, DataKind kind) {
+        mContext = context;
+        mKind = kind;
+        mMimeType = item.getMimeType();
+        mTimesUsed = item.getTimesUsed();
+        mLastTimeUsed = item.getLastTimeUsed();
+
+        // Determine type for subtitle
+        mSubtitle = "";
+        if (item.hasKindTypeColumn(kind)) {
+            final int typeValue = item.getKindTypeColumn(kind);
+
+            // get type string
+            for (EditType type : kind.typeList) {
+                if (type.rawValue == typeValue) {
+                    if (type.customColumn == null) {
+                        // Non-custom type. Get its description from the resource
+                        mSubtitle = context.getString(type.labelRes);
+                    } else {
+                        // Custom type. Read it from the database
+                        mSubtitle = item.getContentValues().getAsString(type.customColumn);
+                    }
+                    break;
+                }
+            }
+        }
+
+        mIsPrimary = item.isPrimary();
+        mIsSuperPrimary = item.isSuperPrimary();
+        mBody = item.buildDataStringForDisplay(context, kind);
+
+        mDataId = item.getId();
+        mDataUri = ContentUris.withAppendedId(Data.CONTENT_URI, mDataId);
+
+        final boolean hasPhone = PhoneCapabilityTester.isPhone(mContext);
+        final ComponentName smsComponent = PhoneCapabilityTester.getSmsComponent(mContext);
+        final boolean hasSms = (smsComponent != null);
+
+        // Handle well-known MIME-types with special care
+        if (item instanceof PhoneDataItem) {
+            if (PhoneCapabilityTester.isPhone(mContext)) {
+                PhoneDataItem phone = (PhoneDataItem) item;
+                final String number = phone.getNumber();
+                if (!TextUtils.isEmpty(number)) {
+
+                    final Intent phoneIntent = hasPhone ? CallUtil.getCallIntent(number)
+                            : null;
+                    Intent smsIntent = null;
+                    if (hasSms) {
+                        smsIntent = new Intent(Intent.ACTION_SENDTO,
+                                Uri.fromParts(ContactsUtils.SCHEME_SMSTO, number, null));
+                        smsIntent.setComponent(smsComponent);
+                    }
+
+                    // Configure Icons and Intents. Notice actionIcon is already set to the phone
+                    if (hasPhone && hasSms) {
+                        mIntent = phoneIntent;
+                        mAlternateIntent = smsIntent;
+                        mAlternateIconRes = kind.iconAltRes;
+                        mAlternateIconDescriptionRes = kind.iconAltDescriptionRes;
+                    } else if (hasPhone) {
+                        mIntent = phoneIntent;
+                    } else if (hasSms) {
+                        mIntent = smsIntent;
+                    }
+                }
+            }
+        } else if (item instanceof SipAddressDataItem) {
+            if (PhoneCapabilityTester.isSipPhone(mContext)) {
+                final SipAddressDataItem sip = (SipAddressDataItem) item;
+                final String address = sip.getSipAddress();
+                if (!TextUtils.isEmpty(address)) {
+                    final Uri callUri = Uri.fromParts(PhoneAccount.SCHEME_SIP, address, null);
+                    mIntent = CallUtil.getCallIntent(callUri);
+                    // Note that this item will get a SIP-specific variant
+                    // of the "call phone" icon, rather than the standard
+                    // app icon for the Phone app (which we show for
+                    // regular phone numbers.)  That's because the phone
+                    // app explicitly specifies an android:icon attribute
+                    // for the SIP-related intent-filters in its manifest.
+                }
+            }
+        } else if (item instanceof EmailDataItem) {
+            final EmailDataItem email = (EmailDataItem) item;
+            final String address = email.getData();
+            if (!TextUtils.isEmpty(address)) {
+                final Uri mailUri = Uri.fromParts(ContactsUtils.SCHEME_MAILTO, address, null);
+                mIntent = new Intent(Intent.ACTION_SENDTO, mailUri);
+            }
+
+        } else if (item instanceof WebsiteDataItem) {
+            final WebsiteDataItem website = (WebsiteDataItem) item;
+            final String url = website.getUrl();
+            if (!TextUtils.isEmpty(url)) {
+                try {
+                    final WebAddress webAddress = new WebAddress(url);
+                    mIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(webAddress.toString()));
+                } catch (ParseException e) {
+                    mIntent = null;
+                }
+            }
+
+        } else if (item instanceof ImDataItem) {
+            ImDataItem im = (ImDataItem) item;
+            final boolean isEmail = im.isCreatedFromEmail();
+            if (isEmail || im.isProtocolValid()) {
+                final int protocol = isEmail ? Im.PROTOCOL_GOOGLE_TALK : im.getProtocol();
+
+                if (isEmail) {
+                    // Use Google Talk string when using Email, and clear data
+                    // Uri so we don't try saving Email as primary.
+                    mSubtitle = Im.getProtocolLabel(context.getResources(), Im.PROTOCOL_GOOGLE_TALK,
+                            null);
+                    mDataUri = null;
+                }
+
+                String host = im.getCustomProtocol();
+                String data = im.getData();
+                if (protocol != Im.PROTOCOL_CUSTOM) {
+                    // Try bringing in a well-known host for specific protocols
+                    host = ContactsUtils.lookupProviderNameFromId(protocol);
+                }
+
+                if (!TextUtils.isEmpty(host) && !TextUtils.isEmpty(data)) {
+                    final String authority = host.toLowerCase();
+                    final Uri imUri = new Uri.Builder().scheme(ContactsUtils.SCHEME_IMTO).authority(
+                            authority).appendPath(data).build();
+                    mIntent = new Intent(Intent.ACTION_SENDTO, imUri);
+
+                    // If the address is also available for a video chat, we'll show the capability
+                    // as a secondary action.
+                    final int chatCapability = im.getChatCapability();
+                    final boolean isVideoChatCapable =
+                            (chatCapability & Im.CAPABILITY_HAS_CAMERA) != 0;
+                    final boolean isAudioChatCapable =
+                            (chatCapability & Im.CAPABILITY_HAS_VOICE) != 0;
+                    if (isVideoChatCapable || isAudioChatCapable) {
+                        mAlternateIntent = new Intent(
+                                Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call"));
+                        if (isVideoChatCapable) {
+                            mAlternateIconRes = R.drawable.sym_action_videochat_holo_light;
+                            mAlternateIconDescriptionRes = R.string.video_chat;
+                        } else {
+                            mAlternateIconRes = R.drawable.sym_action_audiochat_holo_light;
+                            mAlternateIconDescriptionRes = R.string.audio_chat;
+                        }
+                    }
+                }
+            }
+        } else if (item instanceof StructuredPostalDataItem) {
+            StructuredPostalDataItem postal = (StructuredPostalDataItem) item;
+            final String postalAddress = postal.getFormattedAddress();
+            if (!TextUtils.isEmpty(postalAddress)) {
+                mIntent = StructuredPostalUtils.getViewPostalAddressIntent(postalAddress);
+            }
+        }
+
+        if (mIntent == null) {
+            // Otherwise fall back to default VIEW action
+            mIntent = new Intent(Intent.ACTION_VIEW);
+            mIntent.setDataAndType(mDataUri, item.getMimeType());
+        }
+
+        mIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
+    }
+
+    @Override
+    public int getPresence() {
+        return mPresence;
+    }
+
+    public void setPresence(int presence) {
+        mPresence = presence;
+    }
+
+    @Override
+    public CharSequence getSubtitle() {
+        return mSubtitle;
+    }
+
+    @Override
+    public CharSequence getBody() {
+        return mBody;
+    }
+
+    @Override
+    public String getMimeType() {
+        return mMimeType;
+    }
+
+    @Override
+    public Uri getDataUri() {
+        return mDataUri;
+    }
+
+    @Override
+    public long getDataId() {
+        return mDataId;
+    }
+
+    @Override
+    public boolean isPrimary() {
+        return mIsPrimary;
+    }
+
+    @Override
+    public boolean isSuperPrimary() {
+        return mIsSuperPrimary;
+    }
+
+    @Override
+    public Drawable getAlternateIcon() {
+        if (mAlternateIconRes == 0) return null;
+
+        final String resourcePackageName = mKind.resourcePackageName;
+        if (resourcePackageName == null) {
+            return mContext.getResources().getDrawable(mAlternateIconRes);
+        }
+
+        final PackageManager pm = mContext.getPackageManager();
+        return pm.getDrawable(resourcePackageName, mAlternateIconRes, null);
+    }
+
+    @Override
+    public String getAlternateIconDescription() {
+        if (mAlternateIconDescriptionRes == 0) return null;
+        return mContext.getResources().getString(mAlternateIconDescriptionRes);
+    }
+
+    @Override
+    public Intent getIntent() {
+        return mIntent;
+    }
+
+    @Override
+    public Intent getAlternateIntent() {
+        return mAlternateIntent;
+    }
+
+    @Override
+    public void collapseWith(Action other) {
+        // No-op
+    }
+
+    @Override
+    public boolean shouldCollapseWith(Action t, Context context) {
+        if (t == null) {
+            return false;
+        }
+        if (!(t instanceof DataAction)) {
+            Log.e(TAG, "t must be DataAction");
+            return false;
+        }
+        DataAction that = (DataAction)t;
+        if (!MoreContactUtils.shouldCollapse(mMimeType, mBody, that.mMimeType, that.mBody)) {
+            return false;
+        }
+        if (!TextUtils.equals(mMimeType, that.mMimeType)
+                || !ContactsUtils.areIntentActionEqual(mIntent, that.mIntent)) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public Integer getTimesUsed() {
+        return mTimesUsed;
+    }
+
+    @Override
+    public Long getLastTimeUsed() {
+        return mLastTimeUsed;
+    }
+}
diff --git a/src/com/android/contacts/quickcontact/DirectoryContactUtil.java b/src/com/android/contacts/quickcontact/DirectoryContactUtil.java
new file mode 100644
index 0000000..c4969cc
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/DirectoryContactUtil.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.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 java.util.ArrayList;
+
+/**
+ * Utility class to support adding directory contacts.
+ *
+ * This class is coupled with {@link QuickContactActivity}, but is left out of
+ * QuickContactActivity.java to avoid ballooning the size of the file.
+ */
+public class DirectoryContactUtil {
+
+    public static boolean isDirectoryContact(Contact contactData) {
+        // Not a directory contact? Nothing to fix here
+        if (contactData == null || !contactData.isDirectoryEntry()) return false;
+
+        // No export support? Too bad
+        return contactData.getDirectoryExportSupport() != Directory.EXPORT_SUPPORT_NONE;
+    }
+
+    public static void createCopy(
+            ArrayList<ContentValues> values, AccountWithDataSet account,
+            Context context) {
+        Toast.makeText(context, R.string.toast_making_personal_copy,
+                Toast.LENGTH_LONG).show();
+        Intent serviceIntent = ContactSaveService.createNewRawContactIntent(
+                context, values, account,
+                QuickContactActivity.class, Intent.ACTION_VIEW);
+        context.startService(serviceIntent);
+    }
+}
diff --git a/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java b/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
new file mode 100644
index 0000000..db6d80a
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
@@ -0,0 +1,1219 @@
+/*
+ * 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.quickcontact;
+
+import android.animation.Animator;
+import android.animation.Animator.AnimatorListener;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.graphics.ColorFilter;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.support.v7.widget.CardView;
+import android.text.Spannable;
+import android.text.TextUtils;
+import android.transition.ChangeBounds;
+import android.transition.Fade;
+import android.transition.Transition;
+import android.transition.Transition.TransitionListener;
+import android.transition.TransitionManager;
+import android.transition.TransitionSet;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.Property;
+import android.view.ContextMenu.ContextMenuInfo;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewConfiguration;
+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 java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Display entries in a LinearLayout that can be expanded to show all entries.
+ */
+public class ExpandingEntryCardView extends CardView {
+
+    private static final String TAG = "ExpandingEntryCardView";
+    private static final int DURATION_EXPAND_ANIMATION_FADE_IN = 200;
+    private static final int DURATION_COLLAPSE_ANIMATION_FADE_OUT = 75;
+    private static final int DELAY_EXPAND_ANIMATION_FADE_IN = 100;
+
+    public static final int DURATION_EXPAND_ANIMATION_CHANGE_BOUNDS = 300;
+    public static final int DURATION_COLLAPSE_ANIMATION_CHANGE_BOUNDS = 300;
+
+    private static final Property<View, Integer> VIEW_LAYOUT_HEIGHT_PROPERTY =
+            new Property<View, Integer>(Integer.class, "height") {
+                @Override
+                public void set(View view, Integer height) {
+                    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)
+                            view.getLayoutParams();
+                    params.height = height;
+                    view.setLayoutParams(params);
+                }
+
+                @Override
+                public Integer get(View view) {
+                    return view.getLayoutParams().height;
+                }
+            };
+
+    /**
+     * Entry data.
+     */
+    public static final class Entry {
+        // No action when clicking a button is specified.
+        public static final int ACTION_NONE = 1;
+        // Button action is an intent.
+        public static final int ACTION_INTENT = 2;
+        // Button action will open the call with subject dialog.
+        public static final int ACTION_CALL_WITH_SUBJECT = 3;
+
+        private final int mId;
+        private final Drawable mIcon;
+        private final String mHeader;
+        private final String mSubHeader;
+        private final Drawable mSubHeaderIcon;
+        private final String mText;
+        private final Drawable mTextIcon;
+        private Spannable mPrimaryContentDescription;
+        private final Intent mIntent;
+        private final Drawable mAlternateIcon;
+        private final Intent mAlternateIntent;
+        private Spannable mAlternateContentDescription;
+        private final boolean mShouldApplyColor;
+        private final boolean mIsEditable;
+        private final EntryContextMenuInfo mEntryContextMenuInfo;
+        private final Drawable mThirdIcon;
+        private final Intent mThirdIntent;
+        private final String mThirdContentDescription;
+        private final int mIconResourceId;
+        private final int mThirdAction;
+        private final Bundle mThirdExtras;
+
+        public Entry(int id, Drawable mainIcon, String header, String subHeader,
+                Drawable subHeaderIcon, String text, Drawable textIcon,
+                Spannable primaryContentDescription, Intent intent,
+                Drawable alternateIcon, Intent alternateIntent,
+                Spannable alternateContentDescription, boolean shouldApplyColor, boolean isEditable,
+                EntryContextMenuInfo entryContextMenuInfo, Drawable thirdIcon, Intent thirdIntent,
+                String thirdContentDescription, int thirdAction, Bundle thirdExtras,
+                int iconResourceId) {
+            mId = id;
+            mIcon = mainIcon;
+            mHeader = header;
+            mSubHeader = subHeader;
+            mSubHeaderIcon = subHeaderIcon;
+            mText = text;
+            mTextIcon = textIcon;
+            mPrimaryContentDescription = primaryContentDescription;
+            mIntent = intent;
+            mAlternateIcon = alternateIcon;
+            mAlternateIntent = alternateIntent;
+            mAlternateContentDescription = alternateContentDescription;
+            mShouldApplyColor = shouldApplyColor;
+            mIsEditable = isEditable;
+            mEntryContextMenuInfo = entryContextMenuInfo;
+            mThirdIcon = thirdIcon;
+            mThirdIntent = thirdIntent;
+            mThirdContentDescription = thirdContentDescription;
+            mThirdAction = thirdAction;
+            mThirdExtras = thirdExtras;
+            mIconResourceId = iconResourceId;
+        }
+
+        Drawable getIcon() {
+            return mIcon;
+        }
+
+        String getHeader() {
+            return mHeader;
+        }
+
+        String getSubHeader() {
+            return mSubHeader;
+        }
+
+        Drawable getSubHeaderIcon() {
+            return mSubHeaderIcon;
+        }
+
+        public String getText() {
+            return mText;
+        }
+
+        Drawable getTextIcon() {
+            return mTextIcon;
+        }
+
+        Spannable getPrimaryContentDescription() {
+            return mPrimaryContentDescription;
+        }
+
+        Intent getIntent() {
+            return mIntent;
+        }
+
+        Drawable getAlternateIcon() {
+            return mAlternateIcon;
+        }
+
+        Intent getAlternateIntent() {
+            return mAlternateIntent;
+        }
+
+        Spannable getAlternateContentDescription() {
+            return mAlternateContentDescription;
+        }
+
+        boolean shouldApplyColor() {
+            return mShouldApplyColor;
+        }
+
+        boolean isEditable() {
+            return mIsEditable;
+        }
+
+        int getId() {
+            return mId;
+        }
+
+        EntryContextMenuInfo getEntryContextMenuInfo() {
+            return mEntryContextMenuInfo;
+        }
+
+        Drawable getThirdIcon() {
+            return mThirdIcon;
+        }
+
+        Intent getThirdIntent() {
+            return mThirdIntent;
+        }
+
+        String getThirdContentDescription() {
+            return mThirdContentDescription;
+        }
+
+        int getIconResourceId() {
+            return mIconResourceId;
+        }
+
+        public int getThirdAction() {
+            return mThirdAction;
+        }
+
+        public Bundle getThirdExtras() {
+            return mThirdExtras;
+        }
+    }
+
+    public interface ExpandingEntryCardViewListener {
+        void onCollapse(int heightDelta);
+        void onExpand();
+        void onExpandDone();
+    }
+
+    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;
+    /**
+     * The max number of entries to show in a collapsed card. If there are less entries passed in,
+     * then they are all shown.
+     */
+    private int mCollapsedEntriesCount;
+    private ExpandingEntryCardViewListener mListener;
+    private List<List<Entry>> mEntries;
+    private int mNumEntries = 0;
+    private boolean mAllEntriesInflated = false;
+    private List<List<View>> mEntryViews;
+    private LinearLayout mEntriesViewGroup;
+    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
+     * provides a smoother animation.
+     */
+    private List<View> mSeparators;
+    private LinearLayout mContainer;
+
+    private final OnClickListener mExpandCollapseButtonListener = new OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            if (mIsExpanded) {
+                collapse();
+            } else {
+                expand();
+            }
+        }
+    };
+
+    public ExpandingEntryCardView(Context context) {
+        this(context, null);
+    }
+
+    public ExpandingEntryCardView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        LayoutInflater inflater = LayoutInflater.from(context);
+        View expandingEntryCardView = inflater.inflate(R.layout.expanding_entry_card_view, this);
+        mEntriesViewGroup = (LinearLayout)
+                expandingEntryCardView.findViewById(R.id.content_area_linear_layout);
+        mTitleTextView = (TextView) expandingEntryCardView.findViewById(R.id.title);
+        mContainer = (LinearLayout) expandingEntryCardView.findViewById(R.id.container);
+
+        mExpandCollapseButton = inflater.inflate(
+                R.layout.quickcontact_expanding_entry_card_button, this, false);
+        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);
+    }
+
+    /**
+     * Sets the Entry list to display.
+     *
+     * @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) {
+        LayoutInflater layoutInflater = LayoutInflater.from(getContext());
+        mIsExpanded = isExpanded;
+        mIsAlwaysExpanded = isAlwaysExpanded;
+        // If isAlwaysExpanded is true, mIsExpanded should be true
+        mIsExpanded |= mIsAlwaysExpanded;
+        mEntryViews = new ArrayList<List<View>>(entries.size());
+        mEntries = entries;
+        mNumEntries = 0;
+        mAllEntriesInflated = false;
+        mShowFirstEntryTypeTwice = showFirstEntryTypeTwice;
+        for (List<Entry> entryList : mEntries) {
+            mNumEntries += entryList.size();
+            mEntryViews.add(new ArrayList<View>());
+        }
+        mCollapsedEntriesCount = Math.min(numInitialVisibleEntries, mNumEntries);
+        // We need a separator between each list, but not after the last one
+        if (entries.size() > 1) {
+            mSeparators = new ArrayList<>(entries.size() - 1);
+        }
+        mListener = listener;
+        mAnimationViewGroup = animationViewGroup;
+
+        if (mIsExpanded) {
+            updateExpandCollapseButton(getCollapseButtonText(), /* duration = */ 0);
+            inflateAllEntries(layoutInflater);
+        } else {
+            updateExpandCollapseButton(getExpandButtonText(), /* duration = */ 0);
+            inflateInitialEntries(layoutInflater);
+        }
+        insertEntriesIntoViewGroup();
+        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;
+    }
+
+    @Override
+    public void setOnCreateContextMenuListener (OnCreateContextMenuListener listener) {
+        mOnCreateContextMenuListener = listener;
+    }
+
+    private List<View> calculateEntriesToRemoveDuringCollapse() {
+        final List<View> viewsToRemove = getViewsToDisplay(true);
+        final List<View> viewsCollapsed = getViewsToDisplay(false);
+        viewsToRemove.removeAll(viewsCollapsed);
+        return viewsToRemove;
+    }
+
+    private void insertEntriesIntoViewGroup() {
+        mEntriesViewGroup.removeAllViews();
+
+        for (View view : getViewsToDisplay(mIsExpanded)) {
+            mEntriesViewGroup.addView(view);
+        }
+
+        removeView(mExpandCollapseButton);
+        if (mCollapsedEntriesCount < mNumEntries
+                && mExpandCollapseButton.getParent() == null && !mIsAlwaysExpanded) {
+            mContainer.addView(mExpandCollapseButton, -1);
+        }
+    }
+
+    /**
+     * Returns the list of views that should be displayed. This changes depending on whether
+     * the card is expanded or collapsed.
+     */
+    private List<View> getViewsToDisplay(boolean isExpanded) {
+        final List<View> viewsToDisplay = new ArrayList<View>();
+        if (isExpanded) {
+            for (int i = 0; i < mEntryViews.size(); i++) {
+                List<View> viewList = mEntryViews.get(i);
+                if (i > 0) {
+                    View separator;
+                    if (mSeparators.size() <= i - 1) {
+                        separator = generateSeparator(viewList.get(0));
+                        mSeparators.add(separator);
+                    } else {
+                        separator = mSeparators.get(i - 1);
+                    }
+                    viewsToDisplay.add(separator);
+                }
+                for (View view : viewList) {
+                    viewsToDisplay.add(view);
+                }
+            }
+        } else {
+            // We want to insert mCollapsedEntriesCount entries into the group. extraEntries is the
+            // number of entries that need to be added that are not the head element of a list
+            // to reach mCollapsedEntriesCount.
+            int numInViewGroup = 0;
+            int extraEntries = mCollapsedEntriesCount - mEntryViews.size();
+            for (int i = 0; i < mEntryViews.size() && numInViewGroup < mCollapsedEntriesCount;
+                    i++) {
+                List<View> entryViewList = mEntryViews.get(i);
+                if (i > 0) {
+                    View separator;
+                    if (mSeparators.size() <= i - 1) {
+                        separator = generateSeparator(entryViewList.get(0));
+                        mSeparators.add(separator);
+                    } else {
+                        separator = mSeparators.get(i - 1);
+                    }
+                    viewsToDisplay.add(separator);
+                }
+                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++) {
+                    viewsToDisplay.add(entryViewList.get(j));
+                    numInViewGroup++;
+                    extraEntries--;
+                }
+            }
+        }
+
+        formatEntryIfFirst(viewsToDisplay);
+        return viewsToDisplay;
+    }
+
+    private void formatEntryIfFirst(List<View> entriesViewGroup) {
+        // If no title and the first entry in the group, add extra padding
+        if (TextUtils.isEmpty(mTitleTextView.getText()) &&
+                entriesViewGroup.size() > 0) {
+            final View entry = entriesViewGroup.get(0);
+            entry.setPadding(entry.getPaddingLeft(),
+                    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.getPaddingBottom());
+        }
+    }
+
+    private View generateSeparator(View entry) {
+        View separator = new View(getContext());
+        Resources res = getResources();
+
+        separator.setBackgroundColor(res.getColor(
+                R.color.divider_line_color_light));
+        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
+                ViewGroup.LayoutParams.MATCH_PARENT, mDividerLineHeightPixels);
+        // The separator is aligned with the text in the entry. This is offset by a default
+        // margin. If there is an icon present, the icon's width and margin are added
+        int marginStart = res.getDimensionPixelSize(
+                R.dimen.expanding_entry_card_item_padding_start);
+        ImageView entryIcon = (ImageView) entry.findViewById(R.id.icon);
+        if (entryIcon.getVisibility() == View.VISIBLE) {
+            int imageWidthAndMargin =
+                    res.getDimensionPixelSize(R.dimen.expanding_entry_card_item_icon_width) +
+                    res.getDimensionPixelSize(R.dimen.expanding_entry_card_item_image_spacing);
+            marginStart += imageWidthAndMargin;
+        }
+        layoutParams.setMarginStart(marginStart);
+        separator.setLayoutParams(layoutParams);
+        return separator;
+    }
+
+    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);
+        }
+    }
+
+    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);
+        }
+    }
+
+    /**
+     * Inflates the initial entries to be shown.
+     */
+    private void inflateInitialEntries(LayoutInflater layoutInflater) {
+        // If the number of collapsed entries equals total entries, inflate all
+        if (mCollapsedEntriesCount == mNumEntries) {
+            inflateAllEntries(layoutInflater);
+        } else {
+            // Otherwise inflate the top entry from each list
+            // extraEntries is used to add extra entries until mCollapsedEntriesCount is reached.
+            int numInflated = 0;
+            int extraEntries = mCollapsedEntriesCount - mEntries.size();
+            for (int i = 0; i < mEntries.size() && numInflated < mCollapsedEntriesCount; i++) {
+                List<Entry> entryList = mEntries.get(i);
+                List<View> entryViewList = mEntryViews.get(i);
+
+                entryViewList.add(createEntryView(layoutInflater, entryList.get(0),
+                        /* 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
+                        && extraEntries > 0; j++) {
+                    entryViewList.add(createEntryView(layoutInflater, entryList.get(j),
+                            /* showIcon = */ View.INVISIBLE));
+                    numInflated++;
+                    extraEntries--;
+                }
+            }
+        }
+    }
+
+    /**
+     * Inflates all entries.
+     */
+    private void inflateAllEntries(LayoutInflater layoutInflater) {
+        if (mAllEntriesInflated) {
+            return;
+        }
+        for (int i = 0; i < mEntries.size(); i++) {
+            List<Entry> entryList = mEntries.get(i);
+            List<View> viewList = mEntryViews.get(i);
+            for (int j = viewList.size(); j < entryList.size(); j++) {
+                final int iconVisibility;
+                final Entry entry = entryList.get(j);
+                // If the entry does not have an icon, mark gone. Else if it has an icon, show
+                // for the first Entry in the list only
+                if (entry.getIcon() == null) {
+                    iconVisibility = View.GONE;
+                } else if (j == 0) {
+                    iconVisibility = View.VISIBLE;
+                } else {
+                    iconVisibility = View.INVISIBLE;
+                }
+                viewList.add(createEntryView(layoutInflater, entry, iconVisibility));
+            }
+        }
+        mAllEntriesInflated = true;
+    }
+
+    public void setColorAndFilter(int color, ColorFilter colorFilter) {
+        mThemeColor = color;
+        mThemeColorFilter = colorFilter;
+        applyColor();
+    }
+
+    public void setEntryHeaderColor(int color) {
+        if (mEntries != null) {
+            for (List<View> entryList : mEntryViews) {
+                for (View entryView : entryList) {
+                    TextView header = (TextView) entryView.findViewById(R.id.header);
+                    if (header != null) {
+                        header.setTextColor(color);
+                    }
+                }
+            }
+        }
+    }
+
+    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.
+     * 1. Title
+     * 2. Entry icons
+     * 3. Expand/Collapse Text
+     * 4. Expand/Collapse Button
+     */
+    public void applyColor() {
+        if (mThemeColor != 0 && mThemeColorFilter != null) {
+            // Title
+            if (mTitleTextView != null) {
+                mTitleTextView.setTextColor(mThemeColor);
+            }
+
+            // Entry icons
+            if (mEntries != null) {
+                for (List<Entry> entryList : mEntries) {
+                    for (Entry entry : entryList) {
+                        if (entry.shouldApplyColor()) {
+                            Drawable icon = entry.getIcon();
+                            if (icon != null) {
+                                icon.mutate();
+                                icon.setColorFilter(mThemeColorFilter);
+                            }
+                        }
+                        Drawable alternateIcon = entry.getAlternateIcon();
+                        if (alternateIcon != null) {
+                            alternateIcon.mutate();
+                            alternateIcon.setColorFilter(mThemeColorFilter);
+                        }
+                        Drawable thirdIcon = entry.getThirdIcon();
+                        if (thirdIcon != null) {
+                            thirdIcon.mutate();
+                            thirdIcon.setColorFilter(mThemeColorFilter);
+                        }
+                    }
+                }
+            }
+
+            // Expand/Collapse
+            mExpandCollapseTextView.setTextColor(mThemeColor);
+            mExpandCollapseArrow.setColorFilter(mThemeColorFilter);
+        }
+    }
+
+    private View createEntryView(LayoutInflater layoutInflater, final Entry entry,
+            int iconVisibility) {
+        final EntryView view = (EntryView) layoutInflater.inflate(
+                R.layout.expanding_entry_card_item, this, false);
+
+        view.setContextMenuInfo(entry.getEntryContextMenuInfo());
+        if (!TextUtils.isEmpty(entry.getPrimaryContentDescription())) {
+            view.setContentDescription(entry.getPrimaryContentDescription());
+        }
+
+        final ImageView icon = (ImageView) view.findViewById(R.id.icon);
+        icon.setVisibility(iconVisibility);
+        if (entry.getIcon() != null) {
+            icon.setImageDrawable(entry.getIcon());
+        }
+        final TextView header = (TextView) view.findViewById(R.id.header);
+        if (!TextUtils.isEmpty(entry.getHeader())) {
+            header.setText(entry.getHeader());
+        } else {
+            header.setVisibility(View.GONE);
+        }
+
+        final TextView subHeader = (TextView) view.findViewById(R.id.sub_header);
+        if (!TextUtils.isEmpty(entry.getSubHeader())) {
+            subHeader.setText(entry.getSubHeader());
+        } else {
+            subHeader.setVisibility(View.GONE);
+        }
+
+        final ImageView subHeaderIcon = (ImageView) view.findViewById(R.id.icon_sub_header);
+        if (entry.getSubHeaderIcon() != null) {
+            subHeaderIcon.setImageDrawable(entry.getSubHeaderIcon());
+        } else {
+            subHeaderIcon.setVisibility(View.GONE);
+        }
+
+        final TextView text = (TextView) view.findViewById(R.id.text);
+        if (!TextUtils.isEmpty(entry.getText())) {
+            text.setText(entry.getText());
+        } else {
+            text.setVisibility(View.GONE);
+        }
+
+        final ImageView textIcon = (ImageView) view.findViewById(R.id.icon_text);
+        if (entry.getTextIcon() != null) {
+            textIcon.setImageDrawable(entry.getTextIcon());
+        } else {
+            textIcon.setVisibility(View.GONE);
+        }
+
+        if (entry.getIntent() != null) {
+            view.setOnClickListener(mOnClickListener);
+            view.setTag(new EntryTag(entry.getId(), entry.getIntent()));
+        }
+
+        if (entry.getIntent() == null && entry.getEntryContextMenuInfo() == null) {
+            // Remove the click effect
+            view.setBackground(null);
+        }
+
+        // If only the header is visible, add a top margin to match icon's top margin.
+        // Also increase the space below the header for visual comfort.
+        if (header.getVisibility() == View.VISIBLE && subHeader.getVisibility() == View.GONE &&
+                text.getVisibility() == View.GONE) {
+            RelativeLayout.LayoutParams headerLayoutParams =
+                    (RelativeLayout.LayoutParams) header.getLayoutParams();
+            headerLayoutParams.topMargin = (int) (getResources().getDimension(
+                    R.dimen.expanding_entry_card_item_header_only_margin_top));
+            headerLayoutParams.bottomMargin += (int) (getResources().getDimension(
+                    R.dimen.expanding_entry_card_item_header_only_margin_bottom));
+            header.setLayoutParams(headerLayoutParams);
+        }
+
+        // Adjust the top padding size for entries with an invisible icon. The padding depends on
+        // if there is a sub header or text section
+        if (iconVisibility == View.INVISIBLE &&
+                (!TextUtils.isEmpty(entry.getSubHeader()) || !TextUtils.isEmpty(entry.getText()))) {
+            view.setPaddingRelative(view.getPaddingStart(),
+                    getResources().getDimensionPixelSize(
+                            R.dimen.expanding_entry_card_item_no_icon_margin_top),
+                    view.getPaddingEnd(),
+                    view.getPaddingBottom());
+        } else if (iconVisibility == View.INVISIBLE &&  TextUtils.isEmpty(entry.getSubHeader())
+                && TextUtils.isEmpty(entry.getText())) {
+            view.setPaddingRelative(view.getPaddingStart(), 0, view.getPaddingEnd(),
+                    view.getPaddingBottom());
+        }
+
+        final ImageView alternateIcon = (ImageView) view.findViewById(R.id.icon_alternate);
+        final ImageView thirdIcon = (ImageView) view.findViewById(R.id.third_icon);
+
+        if (entry.getAlternateIcon() != null && entry.getAlternateIntent() != null) {
+            alternateIcon.setImageDrawable(entry.getAlternateIcon());
+            alternateIcon.setOnClickListener(mOnClickListener);
+            alternateIcon.setTag(new EntryTag(entry.getId(), entry.getAlternateIntent()));
+            alternateIcon.setVisibility(View.VISIBLE);
+            alternateIcon.setContentDescription(entry.getAlternateContentDescription());
+        }
+
+        if (entry.getThirdIcon() != null && entry.getThirdAction() != Entry.ACTION_NONE) {
+            thirdIcon.setImageDrawable(entry.getThirdIcon());
+            if (entry.getThirdAction() == Entry.ACTION_INTENT) {
+                thirdIcon.setOnClickListener(mOnClickListener);
+                thirdIcon.setTag(new EntryTag(entry.getId(), entry.getThirdIntent()));
+            } else if (entry.getThirdAction() == Entry.ACTION_CALL_WITH_SUBJECT) {
+                thirdIcon.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        Object tag = v.getTag();
+                        if (!(tag instanceof Bundle)) {
+                            return;
+                        }
+
+                        Context context = getContext();
+                        if (context instanceof Activity) {
+                            CallSubjectDialog.start((Activity) context, entry.getThirdExtras());
+                        }
+                    }
+                });
+                thirdIcon.setTag(entry.getThirdExtras());
+            }
+            thirdIcon.setVisibility(View.VISIBLE);
+            thirdIcon.setContentDescription(entry.getThirdContentDescription());
+        }
+
+        // Set a custom touch listener for expanding the extra icon touch areas
+        view.setOnTouchListener(new EntryTouchListener(view, alternateIcon, thirdIcon));
+        view.setOnCreateContextMenuListener(mOnCreateContextMenuListener);
+
+        return view;
+    }
+
+    private void updateExpandCollapseButton(CharSequence buttonText, long duration) {
+        if (mIsExpanded) {
+            final ObjectAnimator animator = ObjectAnimator.ofFloat(mExpandCollapseArrow,
+                    "rotation", 180);
+            animator.setDuration(duration);
+            animator.start();
+        } else {
+            final ObjectAnimator animator = ObjectAnimator.ofFloat(mExpandCollapseArrow,
+                    "rotation", 0);
+            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);
+
+        Fade fadeIn = new Fade(Fade.IN);
+        fadeIn.setDuration(DURATION_EXPAND_ANIMATION_FADE_IN);
+        fadeIn.setStartDelay(DELAY_EXPAND_ANIMATION_FADE_IN);
+
+        TransitionSet transitionSet = new TransitionSet();
+        transitionSet.addTransition(boundsTransition);
+        transitionSet.addTransition(fadeIn);
+
+        transitionSet.excludeTarget(R.id.text, /* exclude = */ true);
+
+        final ViewGroup transitionViewContainer = mAnimationViewGroup == null ?
+                this : mAnimationViewGroup;
+
+        transitionSet.addListener(new TransitionListener() {
+            @Override
+            public void onTransitionStart(Transition transition) {
+                mListener.onExpand();
+            }
+
+            @Override
+            public void onTransitionEnd(Transition transition) {
+                mListener.onExpandDone();
+            }
+
+            @Override
+            public void onTransitionCancel(Transition transition) {
+            }
+
+            @Override
+            public void onTransitionPause(Transition transition) {
+            }
+
+            @Override
+            public void onTransitionResume(Transition transition) {
+            }
+        });
+
+        TransitionManager.beginDelayedTransition(transitionViewContainer, transitionSet);
+
+        mIsExpanded = true;
+        // In order to insert new entries, we may need to inflate them for the first time
+        inflateAllEntries(LayoutInflater.from(getContext()));
+        insertEntriesIntoViewGroup();
+        updateExpandCollapseButton(getCollapseButtonText(),
+                DURATION_EXPAND_ANIMATION_CHANGE_BOUNDS);
+    }
+
+    private void collapse() {
+        final List<View> views = calculateEntriesToRemoveDuringCollapse();
+
+        // This animation requires layout changes, unlike the expand() animation: the action bar
+        // might get scrolled open in order to fill empty space. As a result, we can't use
+        // ChangeBounds here. Instead manually animate view height and alpha. This isn't as
+        // efficient as the bounds and translation changes performed by ChangeBounds. Nonetheless, a
+        // reasonable frame-rate is achieved collapsing a dozen elements on a user Svelte N4. So the
+        // performance hit doesn't justify writing a less maintainable animation.
+        final AnimatorSet set = new AnimatorSet();
+        final List<Animator> animators = new ArrayList<Animator>(views.size());
+        int totalSizeChange = 0;
+        for (View viewToRemove : views) {
+            final ObjectAnimator animator = ObjectAnimator.ofObject(viewToRemove,
+                    VIEW_LAYOUT_HEIGHT_PROPERTY, null, viewToRemove.getHeight(), 0);
+            totalSizeChange += viewToRemove.getHeight();
+            animator.setDuration(DURATION_COLLAPSE_ANIMATION_CHANGE_BOUNDS);
+            animators.add(animator);
+            viewToRemove.animate().alpha(0).setDuration(DURATION_COLLAPSE_ANIMATION_FADE_OUT);
+        }
+        set.playTogether(animators);
+        set.start();
+        set.addListener(new AnimatorListener() {
+            @Override
+            public void onAnimationStart(Animator animation) {
+            }
+
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                // Now that the views have been animated away, actually remove them from the view
+                // hierarchy. Reset their appearance so that they look appropriate when they
+                // get added back later.
+                insertEntriesIntoViewGroup();
+                for (View view : views) {
+                    if (view instanceof EntryView) {
+                        VIEW_LAYOUT_HEIGHT_PROPERTY.set(view, LayoutParams.WRAP_CONTENT);
+                    } else {
+                        VIEW_LAYOUT_HEIGHT_PROPERTY.set(view, mDividerLineHeightPixels);
+                    }
+                    view.animate().cancel();
+                    view.setAlpha(1);
+                }
+            }
+
+            @Override
+            public void onAnimationCancel(Animator animation) {
+            }
+
+            @Override
+            public void onAnimationRepeat(Animator animation) {
+            }
+        });
+
+        mListener.onCollapse(totalSizeChange);
+        mIsExpanded = false;
+        updateExpandCollapseButton(getExpandButtonText(),
+                DURATION_COLLAPSE_ANIMATION_CHANGE_BOUNDS);
+    }
+
+    /**
+     * Returns whether the view is currently in its expanded state.
+     */
+    public boolean isExpanded() {
+        return mIsExpanded;
+    }
+
+    /**
+     * Sets the title text of this ExpandingEntryCardView.
+     * @param title The title to set. A null title will result in the title being removed.
+     */
+    public void setTitle(String title) {
+        if (mTitleTextView == null) {
+            Log.e(TAG, "mTitleTextView is null");
+        }
+        mTitleTextView.setText(title);
+        mTitleTextView.setVisibility(TextUtils.isEmpty(title) ? View.GONE : View.VISIBLE);
+        findViewById(R.id.title_separator).setVisibility(TextUtils.isEmpty(title) ?
+                View.GONE : View.VISIBLE);
+        // If the title is set after children have been added, reset the top entry's padding to
+        // the default. Else if the title is cleared after children have been added, set
+        // the extra top padding
+        if (!TextUtils.isEmpty(title) && mEntriesViewGroup.getChildCount() > 0) {
+            View firstEntry = mEntriesViewGroup.getChildAt(0);
+            firstEntry.setPadding(firstEntry.getPaddingLeft(),
+                    getResources().getDimensionPixelSize(
+                            R.dimen.expanding_entry_card_item_padding_top),
+                    firstEntry.getPaddingRight(),
+                    firstEntry.getPaddingBottom());
+        } else if (!TextUtils.isEmpty(title) && mEntriesViewGroup.getChildCount() > 0) {
+            View firstEntry = mEntriesViewGroup.getChildAt(0);
+            firstEntry.setPadding(firstEntry.getPaddingLeft(),
+                    getResources().getDimensionPixelSize(
+                            R.dimen.expanding_entry_card_item_padding_top) +
+                            getResources().getDimensionPixelSize(
+                                    R.dimen.expanding_entry_card_null_title_top_extra_padding),
+                    firstEntry.getPaddingRight(),
+                    firstEntry.getPaddingBottom());
+        }
+    }
+
+    public boolean shouldShow() {
+        return mEntries != null && mEntries.size() > 0;
+    }
+
+    public static final class EntryView extends RelativeLayout {
+        private EntryContextMenuInfo mEntryContextMenuInfo;
+
+        public EntryView(Context context) {
+            super(context);
+        }
+
+        public EntryView(Context context, AttributeSet attrs) {
+            super(context, attrs);
+        }
+
+        public void setContextMenuInfo(EntryContextMenuInfo info) {
+            mEntryContextMenuInfo = info;
+        }
+
+        @Override
+        protected ContextMenuInfo getContextMenuInfo() {
+            return mEntryContextMenuInfo;
+        }
+    }
+
+    public static final class EntryContextMenuInfo implements ContextMenuInfo {
+        private final String mCopyText;
+        private final String mCopyLabel;
+        private final String mMimeType;
+        private final long mId;
+        private final boolean mIsSuperPrimary;
+
+        public EntryContextMenuInfo(String copyText, String copyLabel, String mimeType, long id,
+                boolean isSuperPrimary) {
+            mCopyText = copyText;
+            mCopyLabel = copyLabel;
+            mMimeType = mimeType;
+            mId = id;
+            mIsSuperPrimary = isSuperPrimary;
+        }
+
+        public String getCopyText() {
+            return mCopyText;
+        }
+
+        public String getCopyLabel() {
+            return mCopyLabel;
+        }
+
+        public String getMimeType() {
+            return mMimeType;
+        }
+
+        public long getId() {
+            return mId;
+        }
+
+        public boolean isSuperPrimary() {
+            return mIsSuperPrimary;
+        }
+    }
+
+    static final class EntryTag {
+        private final int mId;
+        private final Intent mIntent;
+
+        public EntryTag(int id, Intent intent) {
+            mId = id;
+            mIntent = intent;
+        }
+
+        public int getId() {
+            return mId;
+        }
+
+        public Intent getIntent() {
+            return mIntent;
+        }
+    }
+
+    /**
+     * This custom touch listener increases the touch area for the second and third icons, if
+     * they are present. This is necessary to maintain other properties on an entry view, like
+     * using a top padding on entry. Based off of {@link android.view.TouchDelegate}
+     */
+    private static final class EntryTouchListener implements View.OnTouchListener {
+        private final View mEntry;
+        private final ImageView mAlternateIcon;
+        private final ImageView mThirdIcon;
+        /** mTouchedView locks in a view on touch down */
+        private View mTouchedView;
+        /** mSlop adds some space to account for touches that are just outside the hit area */
+        private int mSlop;
+
+        public EntryTouchListener(View entry, ImageView alternateIcon, ImageView thirdIcon) {
+            mEntry = entry;
+            mAlternateIcon = alternateIcon;
+            mThirdIcon = thirdIcon;
+            mSlop = ViewConfiguration.get(entry.getContext()).getScaledTouchSlop();
+        }
+
+        @Override
+        public boolean onTouch(View v, MotionEvent event) {
+            View touchedView = mTouchedView;
+            boolean sendToTouched = false;
+            boolean hit = true;
+            boolean handled = false;
+
+            switch (event.getAction()) {
+                case MotionEvent.ACTION_DOWN:
+                    if (hitThirdIcon(event)) {
+                        mTouchedView = mThirdIcon;
+                        sendToTouched = true;
+                    } else if (hitAlternateIcon(event)) {
+                        mTouchedView = mAlternateIcon;
+                        sendToTouched = true;
+                    } else {
+                        mTouchedView = mEntry;
+                        sendToTouched = false;
+                    }
+                    touchedView = mTouchedView;
+                    break;
+                case MotionEvent.ACTION_UP:
+                case MotionEvent.ACTION_MOVE:
+                    sendToTouched = mTouchedView != null && mTouchedView != mEntry;
+                    if (sendToTouched) {
+                        final Rect slopBounds = new Rect();
+                        touchedView.getHitRect(slopBounds);
+                        slopBounds.inset(-mSlop, -mSlop);
+                        if (!slopBounds.contains((int) event.getX(), (int) event.getY())) {
+                            hit = false;
+                        }
+                    }
+                    break;
+                case MotionEvent.ACTION_CANCEL:
+                    sendToTouched = mTouchedView != null && mTouchedView != mEntry;
+                    mTouchedView = null;
+                    break;
+            }
+            if (sendToTouched) {
+                if (hit) {
+                    event.setLocation(touchedView.getWidth() / 2, touchedView.getHeight() / 2);
+                } else {
+                    // Offset event coordinates to be outside the target view (in case it does
+                    // something like tracking pressed state)
+                    event.setLocation(-(mSlop * 2), -(mSlop * 2));
+                }
+                handled = touchedView.dispatchTouchEvent(event);
+            }
+            return handled;
+        }
+
+        private boolean hitThirdIcon(MotionEvent event) {
+            if (mEntry.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
+                return mThirdIcon.getVisibility() == View.VISIBLE &&
+                        event.getX() < mThirdIcon.getRight();
+            } else {
+                return mThirdIcon.getVisibility() == View.VISIBLE &&
+                        event.getX() > mThirdIcon.getLeft();
+            }
+        }
+
+        /**
+         * Should be used after checking if third icon was hit
+         */
+        private boolean hitAlternateIcon(MotionEvent event) {
+            // LayoutParams used to add the start margin to the touch area
+            final RelativeLayout.LayoutParams alternateIconParams =
+                    (RelativeLayout.LayoutParams) mAlternateIcon.getLayoutParams();
+            if (mEntry.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
+                return mAlternateIcon.getVisibility() == View.VISIBLE &&
+                        event.getX() < mAlternateIcon.getRight() + alternateIconParams.rightMargin;
+            } else {
+                return mAlternateIcon.getVisibility() == View.VISIBLE &&
+                        event.getX() > mAlternateIcon.getLeft() - alternateIconParams.leftMargin;
+            }
+        }
+    }
+}
diff --git a/src/com/android/contacts/quickcontact/InvisibleContactUtil.java b/src/com/android/contacts/quickcontact/InvisibleContactUtil.java
new file mode 100644
index 0000000..fa1132b
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/InvisibleContactUtil.java
@@ -0,0 +1,114 @@
+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 java.util.List;
+
+/**
+ * Utility class to support adding invisible contacts. Ie, contacts that don't belong to the
+ * default group.
+ */
+public class InvisibleContactUtil {
+
+    public static boolean isInvisibleAndAddable(Contact contactData, Context context) {
+        // Only local contacts
+        if (contactData == null || contactData.isDirectoryEntry()) return false;
+
+        // User profile cannot be added to contacts
+        if (contactData.isUserProfile()) return false;
+
+        // Only if exactly one raw contact
+        if (contactData.getRawContacts().size() != 1) return false;
+
+        // test if the default group is assigned
+        final List<GroupMetaData> groups = contactData.getGroupMetaData();
+
+        // For accounts without group support, groups is null
+        if (groups == null) return false;
+
+        // remember the default group id. no default group? bail out early
+        final long defaultGroupId = getDefaultGroupId(groups);
+        if (defaultGroupId == -1) return false;
+
+        final RawContact rawContact = (RawContact) contactData.getRawContacts().get(0);
+        final AccountType type = rawContact.getAccountType(context);
+        // Offline or non-writeable account? Nothing to fix
+        if (type == null || !type.areContactsWritable()) return false;
+
+        // Check whether the contact is in the default group
+        boolean isInDefaultGroup = false;
+        for (DataItem dataItem : Iterables.filter(
+                rawContact.getDataItems(), GroupMembershipDataItem.class)) {
+            GroupMembershipDataItem groupMembership = (GroupMembershipDataItem) dataItem;
+            final Long groupId = groupMembership.getGroupRowId();
+            if (groupId != null && groupId == defaultGroupId) {
+                isInDefaultGroup = true;
+                break;
+            }
+        }
+
+        return !isInDefaultGroup;
+    }
+
+    public static void addToDefaultGroup(Contact contactData, 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;
+
+        // add the group membership to the current state
+        final RawContactDeltaList contactDeltaList = contactData.createRawContactDeltaList();
+        final RawContactDelta rawContactEntityDelta = contactDeltaList.get(0);
+
+        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(
+                context);
+        final AccountType type = rawContactEntityDelta.getAccountType(accountTypes);
+        final DataKind groupMembershipKind = type.getKindForMimetype(
+                GroupMembership.CONTENT_ITEM_TYPE);
+        final ValuesDelta entry = RawContactModifier.insertChild(rawContactEntityDelta,
+                groupMembershipKind);
+        if (entry == null) return;
+        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 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()) {
+                // two default groups? return neither
+                if (defaultGroupId != -1) return -1;
+                defaultGroupId = group.getGroupId();
+            }
+        }
+        return defaultGroupId;
+    }
+}
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
new file mode 100644
index 0000000..c595f23
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -0,0 +1,3036 @@
+/*
+ * 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.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.SearchManager;
+import android.content.ActivityNotFoundException;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.Intent;
+import android.content.Loader;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.res.ColorStateList;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Color;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffColorFilter;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+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;
+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.Relation;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+import android.provider.ContactsContract.CommonDataKinds.Website;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+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.graphics.drawable.VectorDrawableCompat;
+import android.support.v4.app.ActivityCompat;
+import android.support.v4.content.ContextCompat;
+import android.support.v7.graphics.Palette;
+import android.support.v7.widget.CardView;
+import android.telecom.PhoneAccount;
+import android.telecom.TelecomManager;
+import android.text.BidiFormatter;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.TextDirectionHeuristics;
+import android.text.TextUtils;
+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;
+import android.view.MotionEvent;
+import android.view.View;
+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.ContactSaveService;
+import com.android.contacts.ContactsActivity;
+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.PermissionsUtil;
+import com.android.contacts.common.util.UriUtils;
+import com.android.contacts.common.util.ViewUtil;
+import com.android.contacts.detail.ContactDisplayUtils;
+import com.android.contacts.editor.AggregationSuggestionEngine;
+import com.android.contacts.editor.AggregationSuggestionEngine.Suggestion;
+import com.android.contacts.editor.ContactEditorFragment;
+import com.android.contacts.editor.EditorIntents;
+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.SmsInteractionsLoader;
+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.ImageViewDrawableSetter;
+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.widget.MultiShrinkScroller;
+import com.android.contacts.widget.MultiShrinkScroller.MultiShrinkScrollerListener;
+import com.android.contacts.widget.QuickContactImageView;
+import com.android.contactsbind.HelpUtils;
+
+import com.google.common.collect.Lists;
+
+import java.lang.SecurityException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Collections;
+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;
+
+/**
+ * Mostly translucent {@link Activity} that shows QuickContact dialog. It loads
+ * data asynchronously, and then shows a popup with details centered around
+ * {@link Intent#getSourceBounds()}.
+ */
+public class QuickContactActivity extends ContactsActivity
+        implements AggregationSuggestionEngine.Listener {
+
+    /**
+     * QuickContacts immediately takes up the full screen. All possible information is shown.
+     * This value for {@link android.provider.ContactsContract.QuickContact#EXTRA_MODE}
+     * should only be used by the Contacts app.
+     */
+    public static final int MODE_FULLY_EXPANDED = 4;
+
+    /** 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 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 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";
+
+    /** 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";
+
+    @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_VIEW_PROFILE = "view";
+    private static final String MIMETYPE_HANGOUTS =
+            "vnd.android.cursor.item/vnd.googleplus.profile.comm";
+    private static final String HANGOUTS_DATA_5_VIDEO = "hangout";
+    private static final String HANGOUTS_DATA_5_MESSAGE = "conversation";
+    private static final String CALL_ORIGIN_QUICK_CONTACTS_ACTIVITY =
+            "com.android.contacts.quickcontact.QuickContactActivity";
+
+    /**
+     * The URI used to load the the Contact. Once the contact is loaded, use Contact#getLookupUri()
+     * instead of referencing this URI.
+     */
+    private Uri mLookupUri;
+    private String[] mExcludeMimes;
+    private int mExtraMode;
+    private String mExtraPrioritizedMimeType;
+    private int mStatusBarColor;
+    private boolean mHasAlreadyBeenOpened;
+    private boolean mOnlyOnePhoneNumber;
+    private boolean mOnlyOneEmail;
+
+    private QuickContactImageView mPhotoView;
+    private ExpandingEntryCardView mContactCard;
+    private ExpandingEntryCardView mNoContactDetailsCard;
+    private ExpandingEntryCardView mRecentCard;
+    private ExpandingEntryCardView mAboutCard;
+    private ExpandingEntryCardView mPermissionExplanationCard;
+
+    // Suggestion card.
+    private boolean mShouldShowSuggestions = false;
+    private CardView mCollapsedSuggestionCardView;
+    private CardView mExpandSuggestionCardView;
+    private View mCollapsedSuggestionHeader;
+    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}.
+     */
+    private Cp2DataCardModel mCachedCp2DataCardModel;
+    /**
+     *  This scrim's opacity is controlled in two different ways. 1) Before the initial entrance
+     *  animation finishes, the opacity is animated by a value animator. This is designed to
+     *  distract the user from the length of the initial loading time. 2) After the initial
+     *  entrance animation, the opacity is directly related to scroll position.
+     */
+    private ColorDrawable mWindowScrim;
+    private boolean mIsEntranceAnimationFinished;
+    private MaterialColorMapUtils mMaterialColorMapUtils;
+    private boolean mIsExitAnimationInProgress;
+    private boolean mHasComputedThemeColor;
+
+    /**
+     * Used to stop the ExpandingEntry cards from adjusting between an entry click and the intent
+     * being launched.
+     */
+    private boolean mHasIntentLaunched;
+
+    private Contact mContactData;
+    private ContactLoader mContactLoader;
+    private PorterDuffColorFilter mColorFilter;
+    private int mColorFilterColor;
+
+    private final ImageViewDrawableSetter mPhotoSetter = new ImageViewDrawableSetter();
+
+    /**
+     * {@link #LEADING_MIMETYPES} is used to sort MIME-types.
+     *
+     * <p>The MIME-types in {@link #LEADING_MIMETYPES} appear in the front of the dialog,
+     * in the order specified here.</p>
+     */
+    private static final List<String> LEADING_MIMETYPES = Lists.newArrayList(
+            Phone.CONTENT_ITEM_TYPE, SipAddress.CONTENT_ITEM_TYPE, Email.CONTENT_ITEM_TYPE,
+            StructuredPostal.CONTENT_ITEM_TYPE);
+
+    private static final List<String> SORTED_ABOUT_CARD_MIMETYPES = Lists.newArrayList(
+            Nickname.CONTENT_ITEM_TYPE,
+            // Phonetic name is inserted after nickname if it is available.
+            // No mimetype for phonetic name exists.
+            Website.CONTENT_ITEM_TYPE,
+            Organization.CONTENT_ITEM_TYPE,
+            Event.CONTENT_ITEM_TYPE,
+            Relation.CONTENT_ITEM_TYPE,
+            Im.CONTENT_ITEM_TYPE,
+            GroupMembership.CONTENT_ITEM_TYPE,
+            Identity.CONTENT_ITEM_TYPE,
+            Note.CONTENT_ITEM_TYPE);
+
+    private static final BidiFormatter sBidiFormatter = BidiFormatter.getInstance();
+
+    /** Id for the background contact loader */
+    private static final int LOADER_CONTACT_ID = 0;
+
+    /** Id for the background Sms Loader */
+    private static final int LOADER_SMS_ID = 1;
+    private static final int MAX_SMS_RETRIEVE = 3;
+
+    /** Id for the back Calendar Loader */
+    private static final int LOADER_CALENDAR_ID = 2;
+    private static final String KEY_LOADER_EXTRA_EMAILS =
+            QuickContactActivity.class.getCanonicalName() + ".KEY_LOADER_EXTRA_EMAILS";
+    private static final int MAX_PAST_CALENDAR_RETRIEVE = 3;
+    private static final int MAX_FUTURE_CALENDAR_RETRIEVE = 3;
+    private static final long PAST_MILLISECOND_TO_SEARCH_LOCAL_CALENDAR =
+            1L * 24L * 60L * 60L * 1000L /* 1 day */;
+    private static final long FUTURE_MILLISECOND_TO_SEARCH_LOCAL_CALENDAR =
+            7L * 24L * 60L * 60L * 1000L /* 7 days */;
+
+    /** Id for the background Call Log Loader */
+    private static final int LOADER_CALL_LOG_ID = 3;
+    private static final int MAX_CALL_LOG_RETRIEVE = 3;
+    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,
+        LOADER_CALENDAR_ID,
+        LOADER_CALL_LOG_ID};
+    /**
+     * ConcurrentHashMap constructor params: 4 is initial table size, 0.9f is
+     * load factor before resizing, 1 means we only expect a single thread to
+     * write to the map so make only a single shard
+     */
+    private Map<Integer, List<ContactInteraction>> mRecentLoaderResults =
+        new ConcurrentHashMap<>(4, 0.9f, 1);
+
+    private static final String FRAGMENT_TAG_SELECT_ACCOUNT = "select_account_fragment";
+
+    final OnClickListener mEntryClickHandler = new OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            final Object entryTagObject = v.getTag();
+            if (entryTagObject == null || !(entryTagObject instanceof EntryTag)) {
+                Log.w(TAG, "EntryTag was not used correctly");
+                return;
+            }
+            final EntryTag entryTag = (EntryTag) entryTagObject;
+            final Intent intent = entryTag.getIntent();
+            final int dataId = entryTag.getId();
+
+            if (dataId == CARD_ENTRY_ID_EDIT_CONTACT) {
+                editContact();
+                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()) {
+                    Bundle extras = new Bundle();
+                    extras.putParcelable(TouchPointManager.TOUCH_POINT,
+                            TouchPointManager.getInstance().getPoint());
+                    intent.putExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS, extras);
+                }
+            }
+
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+            mHasIntentLaunched = true;
+            try {
+                ImplicitIntentsUtil.startActivityInAppIfPossible(QuickContactActivity.this, intent);
+            } catch (SecurityException ex) {
+                Toast.makeText(QuickContactActivity.this, R.string.missing_app,
+                        Toast.LENGTH_SHORT).show();
+                Log.e(TAG, "QuickContacts does not have permission to launch "
+                        + intent);
+            } catch (ActivityNotFoundException ex) {
+                Toast.makeText(QuickContactActivity.this, R.string.missing_app,
+                        Toast.LENGTH_SHORT).show();
+            }
+
+            // Default to USAGE_TYPE_CALL. Usage is summed among all types for sorting each data id
+            // so the exact usage type is not necessary in all cases
+            String usageType = DataUsageFeedback.USAGE_TYPE_CALL;
+
+            final Uri intentUri = intent.getData();
+            if ((intentUri != null && intentUri.getScheme() != null &&
+                    intentUri.getScheme().equals(ContactsUtils.SCHEME_SMSTO)) ||
+                    (intent.getType() != null && intent.getType().equals(MIMETYPE_SMS))) {
+                usageType = DataUsageFeedback.USAGE_TYPE_SHORT_TEXT;
+            }
+
+            // Data IDs start at 1 so anything less is invalid
+            if (dataId > 0) {
+                final Uri dataUsageUri = DataUsageFeedback.FEEDBACK_URI.buildUpon()
+                        .appendPath(String.valueOf(dataId))
+                        .appendQueryParameter(DataUsageFeedback.USAGE_TYPE, usageType)
+                        .build();
+                try {
+                    final boolean successful = getContentResolver().update(
+                            dataUsageUri, new ContentValues(), null, null) > 0;
+                    if (!successful) {
+                        Log.w(TAG, "DataUsageFeedback increment failed");
+                    }
+                } catch (SecurityException ex) {
+                    Log.w(TAG, "DataUsageFeedback increment failed", ex);
+                }
+            } else {
+                Log.w(TAG, "Invalid Data ID");
+            }
+        }
+    };
+
+    final ExpandingEntryCardViewListener mExpandingEntryCardViewListener
+            = new ExpandingEntryCardViewListener() {
+        @Override
+        public void onCollapse(int heightDelta) {
+            mScroller.prepareForShrinkingScrollChild(heightDelta);
+        }
+
+        @Override
+        public void onExpand() {
+            mScroller.setDisableTouchesForSuppressLayout(/* areTouchesDisabled = */ true);
+        }
+
+        @Override
+        public void onExpandDone() {
+            mScroller.setDisableTouchesForSuppressLayout(/* areTouchesDisabled = */ false);
+        }
+    };
+
+    @Override
+    public void onAggregationSuggestionChange() {
+        if (!mShouldShowSuggestions) {
+            return;
+        }
+        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());
+                }
+
+                final Long[] contactIdsArray = mSelectedAggregationIds.toArray(
+                        new Long[mSelectedAggregationIds.size()]);
+                final long[] contactIdsArray2 = new long[contactIdsArray.length];
+                for (int i = 0; i < contactIdsArray.length; i++) {
+                    contactIdsArray2[i] = contactIdsArray[i];
+                }
+
+                final Intent intent = ContactSaveService.createJoinSeveralContactsIntent(
+                        QuickContactActivity.this, contactIdsArray2);
+                QuickContactActivity.this.startService(intent);
+
+                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;
+        static final int SET_DEFAULT = 2;
+    }
+
+    private final OnCreateContextMenuListener mEntryContextMenuListener =
+            new OnCreateContextMenuListener() {
+        @Override
+        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
+            if (menuInfo == null) {
+                return;
+            }
+            final EntryContextMenuInfo info = (EntryContextMenuInfo) menuInfo;
+            menu.setHeaderTitle(info.getCopyText());
+            menu.add(ContextMenu.NONE, ContextMenuIds.COPY_TEXT,
+                    ContextMenu.NONE, getString(R.string.copy_text));
+
+            // Don't allow setting or clearing of defaults for non-editable contacts
+            if (!isContactEditable()) {
+                return;
+            }
+
+            final String selectedMimeType = info.getMimeType();
+
+            // Defaults to true will only enable the detail to be copied to the clipboard.
+            boolean onlyOneOfMimeType = true;
+
+            // Only allow primary support for Phone and Email content types
+            if (Phone.CONTENT_ITEM_TYPE.equals(selectedMimeType)) {
+                onlyOneOfMimeType = mOnlyOnePhoneNumber;
+            } else if (Email.CONTENT_ITEM_TYPE.equals(selectedMimeType)) {
+                onlyOneOfMimeType = mOnlyOneEmail;
+            }
+
+            // Checking for previously set default
+            if (info.isSuperPrimary()) {
+                menu.add(ContextMenu.NONE, ContextMenuIds.CLEAR_DEFAULT,
+                        ContextMenu.NONE, getString(R.string.clear_default));
+            } else if (!onlyOneOfMimeType) {
+                menu.add(ContextMenu.NONE, ContextMenuIds.SET_DEFAULT,
+                        ContextMenu.NONE, getString(R.string.set_default));
+            }
+        }
+    };
+
+    @Override
+    public boolean onContextItemSelected(MenuItem item) {
+        EntryContextMenuInfo menuInfo;
+        try {
+            menuInfo = (EntryContextMenuInfo) item.getMenuInfo();
+        } catch (ClassCastException e) {
+            Log.e(TAG, "bad menuInfo", e);
+            return false;
+        }
+
+        switch (item.getItemId()) {
+            case ContextMenuIds.COPY_TEXT:
+                ClipboardUtils.copyText(this, menuInfo.getCopyLabel(), menuInfo.getCopyText(),
+                        true);
+                return true;
+            case ContextMenuIds.SET_DEFAULT:
+                final Intent setIntent = ContactSaveService.createSetSuperPrimaryIntent(this,
+                        menuInfo.getId());
+                this.startService(setIntent);
+                return true;
+            case ContextMenuIds.CLEAR_DEFAULT:
+                final Intent clearIntent = ContactSaveService.createClearPrimaryIntent(this,
+                        menuInfo.getId());
+                this.startService(clearIntent);
+                return true;
+            default:
+                throw new IllegalArgumentException("Unknown menu option " + item.getItemId());
+        }
+    }
+
+    /**
+     * 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
+        public void onScrolledOffBottom() {
+            finish();
+        }
+
+        @Override
+        public void onEnterFullscreen() {
+            updateStatusBarColor();
+        }
+
+        @Override
+        public void onExitFullscreen() {
+            updateStatusBarColor();
+        }
+
+        @Override
+        public void onStartScrollOffBottom() {
+            mIsExitAnimationInProgress = true;
+        }
+
+        @Override
+        public void onEntranceAnimationDone() {
+            mIsEntranceAnimationFinished = true;
+        }
+
+        @Override
+        public void onTransparentViewHeightChange(float ratio) {
+            if (mIsEntranceAnimationFinished) {
+                mWindowScrim.setAlpha((int) (0xFF * ratio));
+            }
+        }
+    };
+
+
+    /**
+     * Data items are compared to the same mimetype based off of three qualities:
+     * 1. Super primary
+     * 2. Primary
+     * 3. Times used
+     */
+    private final Comparator<DataItem> mWithinMimeTypeDataItemComparator =
+            new Comparator<DataItem>() {
+        @Override
+        public int compare(DataItem lhs, DataItem rhs) {
+            if (!lhs.getMimeType().equals(rhs.getMimeType())) {
+                Log.wtf(TAG, "Comparing DataItems with different mimetypes lhs.getMimeType(): " +
+                        lhs.getMimeType() + " rhs.getMimeType(): " + rhs.getMimeType());
+                return 0;
+            }
+
+            if (lhs.isSuperPrimary()) {
+                return -1;
+            } else if (rhs.isSuperPrimary()) {
+                return 1;
+            } else if (lhs.isPrimary() && !rhs.isPrimary()) {
+                return -1;
+            } else if (!lhs.isPrimary() && rhs.isPrimary()) {
+                return 1;
+            } else {
+                final int lhsTimesUsed =
+                        lhs.getTimesUsed() == null ? 0 : lhs.getTimesUsed();
+                final int rhsTimesUsed =
+                        rhs.getTimesUsed() == null ? 0 : rhs.getTimesUsed();
+
+                return rhsTimesUsed - lhsTimesUsed;
+            }
+        }
+    };
+
+    /**
+     * Sorts among different mimetypes based off:
+     * 1. Whether one of the mimetypes is the prioritized mimetype
+     * 2. Number of times used
+     * 3. Last time used
+     * 4. Statically defined
+     */
+    private final Comparator<List<DataItem>> mAmongstMimeTypeDataItemComparator =
+            new Comparator<List<DataItem>> () {
+        @Override
+        public int compare(List<DataItem> lhsList, List<DataItem> rhsList) {
+            final DataItem lhs = lhsList.get(0);
+            final DataItem rhs = rhsList.get(0);
+            final String lhsMimeType = lhs.getMimeType();
+            final String rhsMimeType = rhs.getMimeType();
+
+            // 1. Whether one of the mimetypes is the prioritized mimetype
+            if (!TextUtils.isEmpty(mExtraPrioritizedMimeType) && !lhsMimeType.equals(rhsMimeType)) {
+                if (rhsMimeType.equals(mExtraPrioritizedMimeType)) {
+                    return 1;
+                }
+                if (lhsMimeType.equals(mExtraPrioritizedMimeType)) {
+                    return -1;
+                }
+            }
+
+            // 2. Number of times used
+            final int lhsTimesUsed = lhs.getTimesUsed() == null ? 0 : lhs.getTimesUsed();
+            final int rhsTimesUsed = rhs.getTimesUsed() == null ? 0 : rhs.getTimesUsed();
+            final int timesUsedDifference = rhsTimesUsed - lhsTimesUsed;
+            if (timesUsedDifference != 0) {
+                return timesUsedDifference;
+            }
+
+            // 3. Last time used
+            final long lhsLastTimeUsed =
+                    lhs.getLastTimeUsed() == null ? 0 : lhs.getLastTimeUsed();
+            final long rhsLastTimeUsed =
+                    rhs.getLastTimeUsed() == null ? 0 : rhs.getLastTimeUsed();
+            final long lastTimeUsedDifference = rhsLastTimeUsed - lhsLastTimeUsed;
+            if (lastTimeUsedDifference > 0) {
+                return 1;
+            } else if (lastTimeUsedDifference < 0) {
+                return -1;
+            }
+
+            // 4. Resort to a statically defined mimetype order.
+            if (!lhsMimeType.equals(rhsMimeType)) {
+                for (String mimeType : LEADING_MIMETYPES) {
+                    if (lhsMimeType.equals(mimeType)) {
+                        return -1;
+                    } else if (rhsMimeType.equals(mimeType)) {
+                        return 1;
+                    }
+                }
+            }
+            return 0;
+        }
+    };
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent ev) {
+        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+            TouchPointManager.getInstance().setPoint((int) ev.getRawX(), (int) ev.getRawY());
+        }
+        return super.dispatchTouchEvent(ev);
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        Trace.beginSection("onCreate()");
+        super.onCreate(savedInstanceState);
+
+        if (RequestPermissionsActivity.startPermissionActivity(this)) {
+            return;
+        }
+
+        // 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);
+
+        if (CompatUtils.isLollipopCompatible()) {
+            getWindow().setStatusBarColor(Color.TRANSPARENT);
+        }
+
+        processIntent(getIntent());
+
+        // Show QuickContact in front of soft input
+        getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
+                WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
+
+        setContentView(R.layout.quickcontact_activity);
+
+        mMaterialColorMapUtils = new MaterialColorMapUtils(getResources());
+
+        mScroller = (MultiShrinkScroller) findViewById(R.id.multiscroller);
+
+        mContactCard = (ExpandingEntryCardView) findViewById(R.id.communication_card);
+        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);
+
+        if (mShouldShowSuggestions) {
+            mCollapsedSuggestionCardView = (CardView) findViewById(R.id.collapsed_suggestion_card);
+            mExpandSuggestionCardView = (CardView) findViewById(R.id.expand_suggestion_card);
+            mCollapsedSuggestionHeader = 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();
+            }
+            mCollapsedSuggestionHeader.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);
+        mRecentCard.setTitle(getResources().getString(R.string.recent_card_title));
+
+        mAboutCard.setOnClickListener(mEntryClickHandler);
+        mAboutCard.setOnCreateContextMenuListener(mEntryContextMenuListener);
+
+        mPhotoView = (QuickContactImageView) findViewById(R.id.photo);
+        final View transparentView = findViewById(R.id.transparent_view);
+        if (mScroller != null) {
+            transparentView.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    mScroller.scrollOffBottom();
+                }
+            });
+        }
+
+        // Allow a shadow to be shown under the toolbar.
+        ViewUtil.addRectangularOutlineProvider(findViewById(R.id.toolbar_parent), getResources());
+
+        final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+        setActionBar(toolbar);
+        getActionBar().setTitle(null);
+        // Put a TextView with a known resource id into the ActionBar. This allows us to easily
+        // find the correct TextView location & size later.
+        toolbar.addView(getLayoutInflater().inflate(R.layout.quickcontact_title_placeholder, null));
+
+        mHasAlreadyBeenOpened = savedInstanceState != null;
+        mIsEntranceAnimationFinished = mHasAlreadyBeenOpened;
+        mWindowScrim = new ColorDrawable(SCRIM_COLOR);
+        mWindowScrim.setAlpha(0);
+        getWindow().setBackgroundDrawable(mWindowScrim);
+
+        mScroller.initialize(mMultiShrinkScrollerListener, mExtraMode == MODE_FULLY_EXPANDED,
+                /* maximumHeaderTextSize */ -1,
+                /* shouldUpdateNameViewHeight */ true);
+        // mScroller needs to perform asynchronous measurements after initalize(), therefore
+        // we can't mark this as GONE.
+        mScroller.setVisibility(View.INVISIBLE);
+
+        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
+                    public void run() {
+                        if (!mHasAlreadyBeenOpened) {
+                            // The initial scrim opacity must match the scrim opacity that would be
+                            // achieved by scrolling to the starting position.
+                            final float alphaRatio = mExtraMode == MODE_FULLY_EXPANDED ?
+                                    1 : mScroller.getStartingTransparentHeightRatio();
+                            final int duration = getResources().getInteger(
+                                    android.R.integer.config_shortAnimTime);
+                            final int desiredAlpha = (int) (0xFF * alphaRatio);
+                            ObjectAnimator o = ObjectAnimator.ofInt(mWindowScrim, "alpha", 0,
+                                    desiredAlpha).setDuration(duration);
+
+                            o.start();
+                        }
+                    }
+                });
+
+        if (savedInstanceState != null) {
+            final int color = savedInstanceState.getInt(KEY_THEME_COLOR, 0);
+            SchedulingUtils.doOnPreDraw(mScroller, /* drawNextFrame = */ false,
+                    new Runnable() {
+                        @Override
+                        public void run() {
+                            // Need to wait for the pre draw before setting the initial scroll
+                            // value. Prior to pre draw all scroll values are invalid.
+                            if (mHasAlreadyBeenOpened) {
+                                mScroller.setVisibility(View.VISIBLE);
+                                mScroller.setScroll(mScroller.getScrollNeededToBeFullScreen());
+                            }
+                            // Need to wait for pre draw for setting the theme color. Setting the
+                            // header tint before the MultiShrinkScroller has been measured will
+                            // cause incorrect tinting calculations.
+                            if (color != 0) {
+                                setThemeColor(mMaterialColorMapUtils
+                                        .calculatePrimaryAndSecondaryColor(color));
+                            }
+                        }
+                    });
+        }
+
+        Trace.endSection();
+    }
+
+    @Override
+    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);
+        setResult(resultCode, data);
+        if (deletedOrSplit) {
+            finish();
+        } else if (requestCode == REQUEST_CODE_CONTACT_SELECTION_ACTIVITY &&
+                resultCode != RESULT_CANCELED) {
+            processIntent(data);
+        }
+    }
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+        mHasAlreadyBeenOpened = true;
+        mIsEntranceAnimationFinished = true;
+        mHasComputedThemeColor = false;
+        processIntent(intent);
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle savedInstanceState) {
+        super.onSaveInstanceState(savedInstanceState);
+        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);
+    }
+
+    private void processIntent(Intent intent) {
+        if (intent == null) {
+            finish();
+            return;
+        }
+        Uri lookupUri = intent.getData();
+        if (intent.getBooleanExtra(EXTRA_CONTACT_EDITED, false)) {
+            setResult(ContactEditorBaseActivity.RESULT_CODE_EDITED);
+        }
+
+        // Check to see whether it comes from the old version.
+        if (lookupUri != null && LEGACY_AUTHORITY.equals(lookupUri.getAuthority())) {
+            final long rawContactId = ContentUris.parseId(lookupUri);
+            lookupUri = RawContacts.getContactLookupUri(getContentResolver(),
+                    ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId));
+        }
+        mExtraMode = getIntent().getIntExtra(QuickContact.EXTRA_MODE, QuickContact.MODE_LARGE);
+        if (isMultiWindowOnPhone()) {
+            mExtraMode = QuickContact.MODE_LARGE;
+        }
+        mExtraPrioritizedMimeType =
+                getIntent().getStringExtra(QuickContact.EXTRA_PRIORITIZED_MIMETYPE);
+        final Uri oldLookupUri = mLookupUri;
+
+        if (lookupUri == null) {
+            finish();
+            return;
+        }
+        mLookupUri = lookupUri;
+        mExcludeMimes = intent.getStringArrayExtra(QuickContact.EXTRA_EXCLUDE_MIMES);
+        if (oldLookupUri == null) {
+            mContactLoader = (ContactLoader) getLoaderManager().initLoader(
+                    LOADER_CONTACT_ID, null, mLoaderContactCallbacks);
+        } else if (oldLookupUri != mLookupUri) {
+            // 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);
+            mCachedCp2DataCardModel = null;
+        }
+        mContactLoader.forceLoad();
+
+        NfcHandler.register(this, mLookupUri);
+    }
+
+    private void destroyInteractionLoaders() {
+        for (int interactionLoaderId : mRecentLoaderIds) {
+            getLoaderManager().destroyLoader(interactionLoaderId);
+        }
+    }
+
+    private void runEntranceAnimation() {
+        if (mHasAlreadyBeenOpened) {
+            return;
+        }
+        mHasAlreadyBeenOpened = true;
+        mScroller.scrollUpForEntranceAnimation(/* scrollToCurrentPosition */ !isMultiWindowOnPhone()
+                && (mExtraMode != MODE_FULLY_EXPANDED));
+    }
+
+    private boolean isMultiWindowOnPhone() {
+        return MultiWindowCompat.isInMultiWindowMode(this) && PhoneCapabilityTester.isPhone(this);
+    }
+
+    /** Assign this string to the view if it is not empty. */
+    private void setHeaderNameText(int resId) {
+        if (mScroller != null) {
+            mScroller.setTitle(getText(resId) == null ? null : getText(resId).toString(),
+                    /* isPhoneNumber= */ false);
+        }
+    }
+
+    /** Assign this string to the view if it is not empty. */
+    private void setHeaderNameText(String value, boolean isPhoneNumber) {
+        if (!TextUtils.isEmpty(value)) {
+            if (mScroller != null) {
+                mScroller.setTitle(value, isPhoneNumber);
+            }
+        }
+    }
+
+    /**
+     * Check if the given MIME-type appears in the list of excluded MIME-types
+     * that the most-recent caller requested.
+     */
+    private boolean isMimeExcluded(String mimeType) {
+        if (mExcludeMimes == null) return false;
+        for (String excludedMime : mExcludeMimes) {
+            if (TextUtils.equals(excludedMime, mimeType)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Handle the result from the ContactLoader
+     */
+    private void bindContactData(final Contact data) {
+        Trace.beginSection("bindContactData");
+        mContactData = data;
+        invalidateOptionsMenu();
+
+        Trace.endSection();
+        Trace.beginSection("Set display photo & name");
+
+        mPhotoView.setIsBusiness(mContactData.isDisplayNameFromOrganization());
+        mPhotoSetter.setupContactPhoto(data, mPhotoView);
+        extractAndApplyTintFromPhotoViewAsynchronously();
+        final String displayName = ContactDisplayUtils.getDisplayName(this, data).toString();
+        setHeaderNameText(
+                displayName, mContactData.getDisplayNameSource() == DisplayNameSources.PHONE);
+        final String phoneticName = ContactDisplayUtils.getPhoneticName(this, data);
+        if (mScroller != null) {
+            // Show phonetic name only when it doesn't equal the display name.
+            if (!TextUtils.isEmpty(phoneticName) && !phoneticName.equals(displayName)) {
+                mScroller.setPhoneticName(phoneticName);
+            } else {
+                mScroller.setPhoneticNameGone();
+            }
+        }
+
+        Trace.endSection();
+
+        mEntriesAndActionsTask = new AsyncTask<Void, Void, Cp2DataCardModel>() {
+
+            @Override
+            protected Cp2DataCardModel doInBackground(
+                    Void... params) {
+                return generateDataModelFromContact(data);
+            }
+
+            @Override
+            protected void onPostExecute(Cp2DataCardModel cardDataModel) {
+                super.onPostExecute(cardDataModel);
+                // Check that original AsyncTask parameters are still valid and the activity
+                // is still running before binding to UI. A new intent could invalidate
+                // the results, for example.
+                if (data == mContactData && !isCancelled()) {
+                    bindDataToCards(cardDataModel);
+                    showActivity();
+                }
+            }
+        };
+        mEntriesAndActionsTask.execute();
+    }
+
+    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;
+        }
+        String[] phoneNumbers = null;
+        if (phoneDataItems != null) {
+            phoneNumbers = new String[phoneDataItems.size()];
+            for (int i = 0; i < phoneDataItems.size(); ++i) {
+                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(
+                LOADER_SMS_ID,
+                phonesExtraBundle,
+                mLoaderInteractionsCallbacks);
+        Trace.endSection();
+
+        Trace.beginSection("start call log loader");
+        getLoaderManager().initLoader(
+                LOADER_CALL_LOG_ID,
+                phonesExtraBundle,
+                mLoaderInteractionsCallbacks);
+        Trace.endSection();
+
+
+        Trace.beginSection("start calendar loader");
+        final List<DataItem> emailDataItems = dataItemsMap.get(Email.CONTENT_ITEM_TYPE);
+        if (emailDataItems != null && emailDataItems.size() == 1) {
+            mOnlyOneEmail = true;
+        }
+        String[] emailAddresses = null;
+        if (emailDataItems != null) {
+            emailAddresses = new String[emailDataItems.size()];
+            for (int i = 0; i < emailDataItems.size(); ++i) {
+                emailAddresses[i] = ((EmailDataItem) emailDataItems.get(i)).getAddress();
+            }
+        }
+        final Bundle emailsExtraBundle = new Bundle();
+        emailsExtraBundle.putStringArray(KEY_LOADER_EXTRA_EMAILS, emailAddresses);
+        getLoaderManager().initLoader(
+                LOADER_CALENDAR_ID,
+                emailsExtraBundle,
+                mLoaderInteractionsCallbacks);
+        Trace.endSection();
+    }
+
+    private void showActivity() {
+        if (mScroller != null) {
+            mScroller.setVisibility(View.VISIBLE);
+            SchedulingUtils.doOnPreDraw(mScroller, /* drawNextFrame = */ false,
+                    new Runnable() {
+                        @Override
+                        public void run() {
+                            runEntranceAnimation();
+                        }
+                    });
+        }
+    }
+
+    private List<List<Entry>> buildAboutCardEntries(Map<String, List<DataItem>> dataItemsMap) {
+        final List<List<Entry>> aboutCardEntries = new ArrayList<>();
+        for (String mimetype : SORTED_ABOUT_CARD_MIMETYPES) {
+            final List<DataItem> mimeTypeItems = dataItemsMap.get(mimetype);
+            if (mimeTypeItems == null) {
+                continue;
+            }
+            // Set aboutCardTitleOut = null, since SORTED_ABOUT_CARD_MIMETYPES doesn't contain
+            // the name mimetype.
+            final List<Entry> aboutEntries = dataItemsToEntries(mimeTypeItems,
+                    /* aboutCardTitleOut = */ null);
+            if (aboutEntries.size() > 0) {
+                aboutCardEntries.add(aboutEntries);
+            }
+        }
+        return aboutCardEntries;
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        // If returning from a launched activity, repopulate the contact and about card
+        if (mHasIntentLaunched) {
+            mHasIntentLaunched = false;
+            populateContactAndAboutCard(mCachedCp2DataCardModel, /* shouldAddPhoneticName */ false);
+        }
+
+        // When exiting the activity and resuming, we want to force a full reload of all the
+        // interaction data in case something changed in the background. On screen rotation,
+        // we don't need to do this. And, mCachedCp2DataCardModel will be null, so we won't.
+        if (mCachedCp2DataCardModel != null) {
+            destroyInteractionLoaders();
+            startInteractionLoaders(mCachedCp2DataCardModel);
+        }
+    }
+
+    private void populateSuggestionCard() {
+        if (!mShouldShowSuggestions) {
+            return;
+        }
+        // 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));
+    }
+
+    private void populateContactAndAboutCard(Cp2DataCardModel cp2DataCardModel,
+            boolean shouldAddPhoneticName) {
+        mCachedCp2DataCardModel = cp2DataCardModel;
+        if (mHasIntentLaunched || cp2DataCardModel == null) {
+            return;
+        }
+        Trace.beginSection("bind contact card");
+
+        final List<List<Entry>> contactCardEntries = cp2DataCardModel.contactCardEntries;
+        final List<List<Entry>> aboutCardEntries = cp2DataCardModel.aboutCardEntries;
+        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,
+                    mExpandingEntryCardViewListener,
+                    mScroller,
+                    firstEntriesArePrioritizedMimeType);
+            mContactCard.setVisibility(View.VISIBLE);
+        } else {
+            mContactCard.setVisibility(View.GONE);
+        }
+        Trace.endSection();
+
+        Trace.beginSection("bind about card");
+        // Phonetic name is not a data item, so the entry needs to be created separately
+        // But if mCachedCp2DataCardModel is passed to this method (e.g. returning from editor
+        // without saving any changes), then it should include phoneticName and the phoneticName
+        // shouldn't be changed. If this is the case, we shouldn't add it again. b/27459294
+        final String phoneticName = mContactData.getPhoneticName();
+        if (shouldAddPhoneticName && !TextUtils.isEmpty(phoneticName)) {
+            Entry phoneticEntry = new Entry(/* viewId = */ -1,
+                    /* icon = */ null,
+                    getResources().getString(R.string.name_phonetic),
+                    phoneticName,
+                    /* subHeaderIcon = */ null,
+                    /* text = */ null,
+                    /* textIcon = */ null,
+                    /* primaryContentDescription = */ null,
+                    /* intent = */ null,
+                    /* alternateIcon = */ null,
+                    /* alternateIntent = */ null,
+                    /* alternateContentDescription = */ null,
+                    /* shouldApplyColor = */ false,
+                    /* isEditable = */ false,
+                    /* EntryContextMenuInfo = */ new EntryContextMenuInfo(phoneticName,
+                            getResources().getString(R.string.name_phonetic),
+                            /* mimeType = */ null, /* id = */ -1, /* isPrimary = */ false),
+                    /* thirdIcon = */ null,
+                    /* thirdIntent = */ null,
+                    /* thirdContentDescription = */ null,
+                    /* thirdAction = */ Entry.ACTION_NONE,
+                    /* thirdExtras = */ null,
+                    /* iconResourceId = */  0);
+            List<Entry> phoneticList = new ArrayList<>();
+            phoneticList.add(phoneticEntry);
+            // Phonetic name comes after nickname. Check to see if the first entry type is nickname
+            if (aboutCardEntries.size() > 0 && aboutCardEntries.get(0).get(0).getHeader().equals(
+                    getResources().getString(R.string.header_nickname_entry))) {
+                aboutCardEntries.add(1, phoneticList);
+            } else {
+                aboutCardEntries.add(0, phoneticList);
+            }
+        }
+
+        if (!TextUtils.isEmpty(customAboutCardName)) {
+            mAboutCard.setTitle(customAboutCardName);
+        }
+
+        mAboutCard.initialize(aboutCardEntries,
+                /* numInitialVisibleEntries = */ 1,
+                /* isExpanded = */ true,
+                /* isAlwaysExpanded = */ true,
+                mExpandingEntryCardViewListener,
+                mScroller);
+
+        if (contactCardEntries.size() == 0 && aboutCardEntries.size() == 0) {
+            initializeNoContactDetailCard();
+        } 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);
+        }
+        Trace.endSection();
+    }
+
+    /**
+     * Create a card that shows "Add email" and "Add phone number" entries in grey.
+     */
+    private void initializeNoContactDetailCard() {
+        final Drawable phoneIcon = getResources().getDrawable(
+                R.drawable.ic_phone_24dp).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,
+                /* 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_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);
+
+        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);
+
+        final int subHeaderTextColor = getResources().getColor(
+                R.color.quickcontact_entry_sub_header_text_color);
+        final PorterDuffColorFilter greyColorFilter =
+                new PorterDuffColorFilter(subHeaderTextColor, PorterDuff.Mode.SRC_ATOP);
+        mNoContactDetailsCard.initialize(promptEntries, 2, /* isExpanded = */ true,
+                /* isAlwaysExpanded = */ true, mExpandingEntryCardViewListener, mScroller);
+        mNoContactDetailsCard.setVisibility(View.VISIBLE);
+        mNoContactDetailsCard.setEntryHeaderColor(subHeaderTextColor);
+        mNoContactDetailsCard.setColorAndFilter(subHeaderTextColor, greyColorFilter);
+    }
+
+    /**
+     * Builds the {@link DataItem}s Map out of the Contact.
+     * @param data The contact to build the data from.
+     * @return A pair containing a list of data items sorted within mimetype and sorted
+     *  amongst mimetype. The map goes from mimetype string to the sorted list of data items within
+     *  mimetype
+     */
+    private Cp2DataCardModel generateDataModelFromContact(
+            Contact data) {
+        Trace.beginSection("Build data items map");
+
+        final Map<String, List<DataItem>> dataItemsMap = new HashMap<>();
+
+        final ResolveCache cache = ResolveCache.getInstance(this);
+        for (RawContact rawContact : data.getRawContacts()) {
+            for (DataItem dataItem : rawContact.getDataItems()) {
+                dataItem.setRawContactId(rawContact.getId());
+
+                final String mimeType = dataItem.getMimeType();
+                if (mimeType == null) continue;
+
+                final AccountType accountType = rawContact.getAccountType(this);
+                final DataKind dataKind = AccountTypeManager.getInstance(this)
+                        .getKindOrFallback(accountType, mimeType);
+                if (dataKind == null) continue;
+
+                dataItem.setDataKind(dataKind);
+
+                final boolean hasData = !TextUtils.isEmpty(dataItem.buildDataString(this,
+                        dataKind));
+
+                if (isMimeExcluded(mimeType) || !hasData) continue;
+
+                List<DataItem> dataItemListByType = dataItemsMap.get(mimeType);
+                if (dataItemListByType == null) {
+                    dataItemListByType = new ArrayList<>();
+                    dataItemsMap.put(mimeType, dataItemListByType);
+                }
+                dataItemListByType.add(dataItem);
+            }
+        }
+        Trace.endSection();
+
+        Trace.beginSection("sort within mimetypes");
+        /*
+         * Sorting is a multi part step. The end result is to a have a sorted list of the most
+         * used data items, one per mimetype. Then, within each mimetype, the list of data items
+         * for that type is also sorted, based off of {super primary, primary, times used} in that
+         * order.
+         */
+        final List<List<DataItem>> dataItemsList = new ArrayList<>();
+        for (List<DataItem> mimeTypeDataItems : dataItemsMap.values()) {
+            // Remove duplicate data items
+            Collapser.collapseList(mimeTypeDataItems, this);
+            // Sort within mimetype
+            Collections.sort(mimeTypeDataItems, mWithinMimeTypeDataItemComparator);
+            // Add to the list of data item lists
+            dataItemsList.add(mimeTypeDataItems);
+        }
+        Trace.endSection();
+
+        Trace.beginSection("sort amongst mimetypes");
+        // Sort amongst mimetypes to bubble up the top data items for the contact card
+        Collections.sort(dataItemsList, mAmongstMimeTypeDataItemComparator);
+        Trace.endSection();
+
+        Trace.beginSection("cp2 data items to entries");
+
+        final List<List<Entry>> contactCardEntries = new ArrayList<>();
+        final List<List<Entry>> aboutCardEntries = buildAboutCardEntries(dataItemsMap);
+        final MutableString aboutCardName = new MutableString();
+
+        for (int i = 0; i < dataItemsList.size(); ++i) {
+            final List<DataItem> dataItemsByMimeType = dataItemsList.get(i);
+            final DataItem topDataItem = dataItemsByMimeType.get(0);
+            if (SORTED_ABOUT_CARD_MIMETYPES.contains(topDataItem.getMimeType())) {
+                // About card mimetypes are built in buildAboutCardEntries, skip here
+                continue;
+            } else {
+                List<Entry> contactEntries = dataItemsToEntries(dataItemsList.get(i),
+                        aboutCardName);
+                if (contactEntries.size() > 0) {
+                    contactCardEntries.add(contactEntries);
+                }
+            }
+        }
+
+        Trace.endSection();
+
+        final Cp2DataCardModel dataModel = new Cp2DataCardModel();
+        dataModel.customAboutCardName = aboutCardName.value;
+        dataModel.aboutCardEntries = aboutCardEntries;
+        dataModel.contactCardEntries = contactCardEntries;
+        dataModel.dataItemsMap = dataItemsMap;
+        return dataModel;
+    }
+
+    /**
+     * Class used to hold the About card and Contact cards' data model that gets generated
+     * on a background thread. All data is from CP2.
+     */
+    private static class Cp2DataCardModel {
+        /**
+         * A map between a mimetype string and the corresponding list of data items. The data items
+         * are in sorted order using mWithinMimeTypeDataItemComparator.
+         */
+        public Map<String, List<DataItem>> dataItemsMap;
+        public List<List<Entry>> aboutCardEntries;
+        public List<List<Entry>> contactCardEntries;
+        public String customAboutCardName;
+    }
+
+    private static class MutableString {
+        public String value;
+    }
+
+    /**
+     * Converts a {@link DataItem} into an {@link ExpandingEntryCardView.Entry} for display.
+     * If the {@link ExpandingEntryCardView.Entry} has no visual elements, null is returned.
+     *
+     * This runs on a background thread. This is set as static to avoid accidentally adding
+     * additional dependencies on unsafe things (like the Activity).
+     *
+     * @param dataItem The {@link DataItem} to convert.
+     * @param secondDataItem A second {@link DataItem} to help build a full entry for some
+     *  mimetypes
+     * @return The {@link ExpandingEntryCardView.Entry}, or null if no visual elements are present.
+     */
+    private static Entry dataItemToEntry(DataItem dataItem, DataItem secondDataItem,
+            Context context, Contact contactData,
+            final MutableString aboutCardName) {
+        Drawable icon = null;
+        String header = null;
+        String subHeader = null;
+        Drawable subHeaderIcon = null;
+        String text = null;
+        Drawable textIcon = null;
+        StringBuilder primaryContentDescription = new StringBuilder();
+        Spannable phoneContentDescription = null;
+        Spannable smsContentDescription = null;
+        Intent intent = null;
+        boolean shouldApplyColor = true;
+        Drawable alternateIcon = null;
+        Intent alternateIntent = null;
+        StringBuilder alternateContentDescription = new StringBuilder();
+        final boolean isEditable = false;
+        EntryContextMenuInfo entryContextMenuInfo = null;
+        Drawable thirdIcon = null;
+        Intent thirdIntent = null;
+        int thirdAction = Entry.ACTION_NONE;
+        String thirdContentDescription = null;
+        Bundle thirdExtras = null;
+        int iconResourceId = 0;
+
+        context = context.getApplicationContext();
+        final Resources res = context.getResources();
+        DataKind kind = dataItem.getDataKind();
+
+        if (dataItem instanceof ImDataItem) {
+            final ImDataItem im = (ImDataItem) dataItem;
+            intent = ContactsUtils.buildImIntent(context, im).first;
+            final boolean isEmail = im.isCreatedFromEmail();
+            final int protocol;
+            if (!im.isProtocolValid()) {
+                protocol = Im.PROTOCOL_CUSTOM;
+            } else {
+                protocol = isEmail ? Im.PROTOCOL_GOOGLE_TALK : im.getProtocol();
+            }
+            if (protocol == Im.PROTOCOL_CUSTOM) {
+                // If the protocol is custom, display the "IM" entry header as well to distinguish
+                // this entry from other ones
+                header = res.getString(R.string.header_im_entry);
+                subHeader = Im.getProtocolLabel(res, protocol,
+                        im.getCustomProtocol()).toString();
+                text = im.getData();
+            } else {
+                header = Im.getProtocolLabel(res, protocol,
+                        im.getCustomProtocol()).toString();
+                subHeader = im.getData();
+            }
+            entryContextMenuInfo = new EntryContextMenuInfo(im.getData(), header,
+                    dataItem.getMimeType(), dataItem.getId(), dataItem.isSuperPrimary());
+        } else if (dataItem instanceof OrganizationDataItem) {
+            final OrganizationDataItem organization = (OrganizationDataItem) dataItem;
+            header = res.getString(R.string.header_organization_entry);
+            subHeader = organization.getCompany();
+            entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header,
+                    dataItem.getMimeType(), dataItem.getId(), dataItem.isSuperPrimary());
+            text = organization.getTitle();
+        } else if (dataItem instanceof NicknameDataItem) {
+            final NicknameDataItem nickname = (NicknameDataItem) dataItem;
+            // Build nickname entries
+            final boolean isNameRawContact =
+                (contactData.getNameRawContactId() == dataItem.getRawContactId());
+
+            final boolean duplicatesTitle =
+                isNameRawContact
+                && contactData.getDisplayNameSource() == DisplayNameSources.NICKNAME;
+
+            if (!duplicatesTitle) {
+                header = res.getString(R.string.header_nickname_entry);
+                subHeader = nickname.getName();
+                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);
+            subHeader = note.getNote();
+            entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header,
+                    dataItem.getMimeType(), dataItem.getId(), dataItem.isSuperPrimary());
+        } else if (dataItem instanceof WebsiteDataItem) {
+            final WebsiteDataItem website = (WebsiteDataItem) dataItem;
+            header = res.getString(R.string.header_website_entry);
+            subHeader = website.getUrl();
+            entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header,
+                    dataItem.getMimeType(), dataItem.getId(), dataItem.isSuperPrimary());
+            try {
+                final WebAddress webAddress = new WebAddress(website.buildDataStringForDisplay
+                        (context, kind));
+                intent = new Intent(Intent.ACTION_VIEW, Uri.parse(webAddress.toString()));
+            } catch (final ParseException e) {
+                Log.e(TAG, "Couldn't parse website: " + website.buildDataStringForDisplay(
+                        context, kind));
+            }
+        } else if (dataItem instanceof EventDataItem) {
+            final EventDataItem event = (EventDataItem) dataItem;
+            final String dataString = event.buildDataStringForDisplay(context, kind);
+            final Calendar cal = DateUtils.parseDate(dataString, false);
+            if (cal != null) {
+                final Date nextAnniversary =
+                        DateUtils.getNextAnnualDate(cal);
+                final Uri.Builder builder = CalendarContract.CONTENT_URI.buildUpon();
+                builder.appendPath("time");
+                ContentUris.appendId(builder, nextAnniversary.getTime());
+                intent = new Intent(Intent.ACTION_VIEW).setData(builder.build());
+            }
+            header = res.getString(R.string.header_event_entry);
+            if (event.hasKindTypeColumn(kind)) {
+                subHeader = EventCompat.getTypeLabel(res, event.getKindTypeColumn(kind),
+                        event.getLabel()).toString();
+            }
+            text = DateUtils.formatDate(context, dataString);
+            entryContextMenuInfo = new EntryContextMenuInfo(text, header,
+                    dataItem.getMimeType(), dataItem.getId(), dataItem.isSuperPrimary());
+        } else if (dataItem instanceof RelationDataItem) {
+            final RelationDataItem relation = (RelationDataItem) dataItem;
+            final String dataString = relation.buildDataStringForDisplay(context, kind);
+            if (!TextUtils.isEmpty(dataString)) {
+                intent = new Intent(Intent.ACTION_SEARCH);
+                intent.putExtra(SearchManager.QUERY, dataString);
+                intent.setType(Contacts.CONTENT_TYPE);
+            }
+            header = res.getString(R.string.header_relation_entry);
+            subHeader = relation.getName();
+            entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header,
+                    dataItem.getMimeType(), dataItem.getId(), dataItem.isSuperPrimary());
+            if (relation.hasKindTypeColumn(kind)) {
+                text = Relation.getTypeLabel(res,
+                        relation.getKindTypeColumn(kind),
+                        relation.getLabel()).toString();
+            }
+        } else if (dataItem instanceof PhoneDataItem) {
+            final PhoneDataItem phone = (PhoneDataItem) dataItem;
+            String phoneLabel = null;
+            if (!TextUtils.isEmpty(phone.getNumber())) {
+                primaryContentDescription.append(res.getString(R.string.call_other)).append(" ");
+                header = sBidiFormatter.unicodeWrap(phone.buildDataStringForDisplay(context, kind),
+                        TextDirectionHeuristics.LTR);
+                entryContextMenuInfo = new EntryContextMenuInfo(header,
+                        res.getString(R.string.phoneLabelsGroup), dataItem.getMimeType(),
+                        dataItem.getId(), dataItem.isSuperPrimary());
+                if (phone.hasKindTypeColumn(kind)) {
+                    final int kindTypeColumn = phone.getKindTypeColumn(kind);
+                    final String label = phone.getLabel();
+                    phoneLabel = label;
+                    if (kindTypeColumn == Phone.TYPE_CUSTOM && TextUtils.isEmpty(label)) {
+                        text = "";
+                    } else {
+                        text = Phone.getTypeLabel(res, kindTypeColumn, label).toString();
+                        phoneLabel= text;
+                        primaryContentDescription.append(text).append(" ");
+                    }
+                }
+                primaryContentDescription.append(header);
+                phoneContentDescription = com.android.contacts.common.util.ContactDisplayUtils
+                        .getTelephoneTtsSpannable(primaryContentDescription.toString(), header);
+                icon = res.getDrawable(R.drawable.ic_phone_24dp);
+                iconResourceId = R.drawable.ic_phone_24dp;
+                if (PhoneCapabilityTester.isPhone(context)) {
+                    intent = CallUtil.getCallIntent(phone.getNumber());
+                }
+                alternateIntent = new Intent(Intent.ACTION_SENDTO,
+                        Uri.fromParts(ContactsUtils.SCHEME_SMSTO, phone.getNumber(), null));
+
+                alternateIcon = res.getDrawable(R.drawable.ic_message_24dp_mirrored);
+                alternateContentDescription.append(res.getString(R.string.sms_custom, header));
+                smsContentDescription = com.android.contacts.common.util.ContactDisplayUtils
+                        .getTelephoneTtsSpannable(alternateContentDescription.toString(), header);
+
+                int videoCapability = CallUtil.getVideoCallingAvailability(context);
+                boolean isPresenceEnabled =
+                        (videoCapability & CallUtil.VIDEO_CALLING_PRESENCE) != 0;
+                boolean isVideoEnabled = (videoCapability & CallUtil.VIDEO_CALLING_ENABLED) != 0;
+
+                if (CallUtil.isCallWithSubjectSupported(context)) {
+                    thirdIcon = res.getDrawable(R.drawable.ic_call_note_white_24dp);
+                    thirdAction = Entry.ACTION_CALL_WITH_SUBJECT;
+                    thirdContentDescription =
+                            res.getString(R.string.call_with_a_note);
+                    // Create a bundle containing the data the call subject dialog requires.
+                    thirdExtras = new Bundle();
+                    thirdExtras.putLong(CallSubjectDialog.ARG_PHOTO_ID,
+                            contactData.getPhotoId());
+                    thirdExtras.putParcelable(CallSubjectDialog.ARG_PHOTO_URI,
+                            UriUtils.parseUriOrNull(contactData.getPhotoUri()));
+                    thirdExtras.putParcelable(CallSubjectDialog.ARG_CONTACT_URI,
+                            contactData.getLookupUri());
+                    thirdExtras.putString(CallSubjectDialog.ARG_NAME_OR_NUMBER,
+                            contactData.getDisplayName());
+                    thirdExtras.putBoolean(CallSubjectDialog.ARG_IS_BUSINESS, false);
+                    thirdExtras.putString(CallSubjectDialog.ARG_NUMBER,
+                            phone.getNumber());
+                    thirdExtras.putString(CallSubjectDialog.ARG_DISPLAY_NUMBER,
+                            phone.getFormattedPhoneNumber());
+                    thirdExtras.putString(CallSubjectDialog.ARG_NUMBER_LABEL,
+                            phoneLabel);
+                } else if (isVideoEnabled) {
+                    // Check to ensure carrier presence indicates the number supports video calling.
+                    int carrierPresence = dataItem.getCarrierPresence();
+                    boolean isPresent = (carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) != 0;
+
+                    if ((isPresenceEnabled && isPresent) || !isPresenceEnabled) {
+                        thirdIcon = res.getDrawable(R.drawable.ic_videocam);
+                        thirdAction = Entry.ACTION_INTENT;
+                        thirdIntent = CallUtil.getVideoCallIntent(phone.getNumber(),
+                                CALL_ORIGIN_QUICK_CONTACTS_ACTIVITY);
+                        thirdContentDescription =
+                                res.getString(R.string.description_video_call);
+                    }
+                }
+            }
+        } else if (dataItem instanceof EmailDataItem) {
+            final EmailDataItem email = (EmailDataItem) dataItem;
+            final String address = email.getData();
+            if (!TextUtils.isEmpty(address)) {
+                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);
+                header = email.getAddress();
+                entryContextMenuInfo = new EntryContextMenuInfo(header,
+                        res.getString(R.string.emailLabelsGroup), dataItem.getMimeType(),
+                        dataItem.getId(), dataItem.isSuperPrimary());
+                if (email.hasKindTypeColumn(kind)) {
+                    text = Email.getTypeLabel(res, email.getKindTypeColumn(kind),
+                            email.getLabel()).toString();
+                    primaryContentDescription.append(text).append(" ");
+                }
+                primaryContentDescription.append(header);
+                icon = res.getDrawable(R.drawable.ic_email_24dp);
+                iconResourceId = R.drawable.ic_email_24dp;
+            }
+        } else if (dataItem instanceof StructuredPostalDataItem) {
+            StructuredPostalDataItem postal = (StructuredPostalDataItem) dataItem;
+            final String postalAddress = postal.getFormattedAddress();
+            if (!TextUtils.isEmpty(postalAddress)) {
+                primaryContentDescription.append(res.getString(R.string.map_other)).append(" ");
+                intent = StructuredPostalUtils.getViewPostalAddressIntent(postalAddress);
+                header = postal.getFormattedAddress();
+                entryContextMenuInfo = new EntryContextMenuInfo(header,
+                        res.getString(R.string.postalLabelsGroup), dataItem.getMimeType(),
+                        dataItem.getId(), dataItem.isSuperPrimary());
+                if (postal.hasKindTypeColumn(kind)) {
+                    text = StructuredPostal.getTypeLabel(res,
+                            postal.getKindTypeColumn(kind), postal.getLabel()).toString();
+                    primaryContentDescription.append(text).append(" ");
+                }
+                primaryContentDescription.append(header);
+                alternateIntent =
+                        StructuredPostalUtils.getViewPostalAddressDirectionsIntent(postalAddress);
+                alternateIcon = res.getDrawable(R.drawable.ic_directions_24dp);
+                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;
+            }
+        } else if (dataItem instanceof SipAddressDataItem) {
+            final SipAddressDataItem sip = (SipAddressDataItem) dataItem;
+            final String address = sip.getSipAddress();
+            if (!TextUtils.isEmpty(address)) {
+                primaryContentDescription.append(res.getString(R.string.call_other)).append(
+                        " ");
+                if (PhoneCapabilityTester.isSipPhone(context)) {
+                    final Uri callUri = Uri.fromParts(PhoneAccount.SCHEME_SIP, address, null);
+                    intent = CallUtil.getCallIntent(callUri);
+                }
+                header = address;
+                entryContextMenuInfo = new EntryContextMenuInfo(header,
+                        res.getString(R.string.phoneLabelsGroup), dataItem.getMimeType(),
+                        dataItem.getId(), dataItem.isSuperPrimary());
+                if (sip.hasKindTypeColumn(kind)) {
+                    text = SipAddress.getTypeLabel(res,
+                            sip.getKindTypeColumn(kind), sip.getLabel()).toString();
+                    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;
+            }
+        } else if (dataItem instanceof StructuredNameDataItem) {
+            // If the name is already set and this is not the super primary value then leave the
+            // current value. This way we show the super primary value when we are able to.
+            if (dataItem.isSuperPrimary() || aboutCardName.value == null
+                    || aboutCardName.value.isEmpty()) {
+                final String givenName = ((StructuredNameDataItem) dataItem).getGivenName();
+                if (!TextUtils.isEmpty(givenName)) {
+                    aboutCardName.value = res.getString(R.string.about_card_title) +
+                            " " + givenName;
+                } else {
+                    aboutCardName.value = res.getString(R.string.about_card_title);
+                }
+            }
+        } else {
+            // Custom DataItem
+            header = dataItem.buildDataStringForDisplay(context, kind);
+            text = kind.typeColumn;
+            intent = new Intent(Intent.ACTION_VIEW);
+            final Uri uri = ContentUris.withAppendedId(Data.CONTENT_URI, dataItem.getId());
+            intent.setDataAndType(uri, 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:
+                        icon = res.getDrawable(R.drawable.ic_google_plus_black_24dp);
+                        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 HangoutsDataItemModel itemModel =
+                                    new HangoutsDataItemModel(intent, alternateIntent,
+                                            dataItem, secondDataItem, alternateContentDescription,
+                                            header, text, context);
+
+                            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.ic_hangout_video_24dp);
+                            } else {
+                                icon = res.getDrawable(R.drawable.ic_hangout_24dp);
+                            }
+                        }
+                        break;
+                    default:
+                        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;
+                }
+            }
+        }
+
+        if (intent != null) {
+            // Do not set the intent is there are no resolves
+            if (!PhoneCapabilityTester.isIntentRegistered(context, intent)) {
+                intent = null;
+            }
+        }
+
+        if (alternateIntent != null) {
+            // Do not set the alternate intent is there are no resolves
+            if (!PhoneCapabilityTester.isIntentRegistered(context, alternateIntent)) {
+                alternateIntent = null;
+            } else if (TextUtils.isEmpty(alternateContentDescription)) {
+                // Attempt to use package manager to find a suitable content description if needed
+                alternateContentDescription.append(getIntentResolveLabel(alternateIntent, context));
+            }
+        }
+
+        // If the Entry has no visual elements, return null
+        if (icon == null && TextUtils.isEmpty(header) && TextUtils.isEmpty(subHeader) &&
+                subHeaderIcon == null && TextUtils.isEmpty(text) && textIcon == null) {
+            return null;
+        }
+
+        // Ignore dataIds from the Me profile.
+        final int dataId = dataItem.getId() > Integer.MAX_VALUE ?
+                -1 : (int) dataItem.getId();
+
+        return new Entry(dataId, icon, header, subHeader, subHeaderIcon, text, textIcon,
+                phoneContentDescription == null
+                        ? new SpannableString(primaryContentDescription.toString())
+                        : phoneContentDescription,
+                intent, alternateIcon, alternateIntent,
+                smsContentDescription == null
+                        ? new SpannableString(alternateContentDescription.toString())
+                        : smsContentDescription,
+                shouldApplyColor, isEditable,
+                entryContextMenuInfo, thirdIcon, thirdIntent, thirdContentDescription, thirdAction,
+                thirdExtras, iconResourceId);
+    }
+
+    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)) {
+            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) {
+                final Entry entry = dataItemToEntry(dataItem, /* secondDataItem = */ null,
+                        this, mContactData, aboutCardTitleOut);
+                if (entry != null) {
+                    entries.add(entry);
+                }
+            }
+            return entries;
+        }
+    }
+
+    /**
+     * Put the data items into buckets based on the raw contact id
+     */
+    private Map<Long, List<DataItem>> dataItemsToBucket(List<DataItem> dataItems) {
+        final Map<Long, List<DataItem>> buckets = new HashMap<>();
+        for (DataItem dataItem : dataItems) {
+            List<DataItem> bucket = buckets.get(dataItem.getRawContactId());
+            if (bucket == null) {
+                bucket = new ArrayList<>();
+                buckets.put(dataItem.getRawContactId(), bucket);
+            }
+            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 : dataItemsToBucket(dataItems).values()) {
+            if (bucket.size() == 2) {
+                // Use the pair to build an entry
+                final Entry entry = dataItemToEntry(bucket.get(0),
+                        /* secondDataItem = */ bucket.get(1), this, mContactData,
+                        /* aboutCardName = */ null);
+                if (entry != null) {
+                    entries.add(entry);
+                }
+            } else {
+                for (DataItem dataItem : bucket) {
+                    final Entry entry = dataItemToEntry(dataItem, /* secondDataItem = */ null,
+                            this, mContactData, /* aboutCardName = */ null);
+                    if (entry != null) {
+                        entries.add(entry);
+                    }
+                }
+            }
+        }
+        return entries;
+    }
+
+    /**
+     * Used for statically passing around Hangouts data items and entry fields to
+     * populateHangoutsDataItemModel.
+     */
+    private static final class HangoutsDataItemModel {
+        public Intent intent;
+        public Intent alternateIntent;
+        public DataItem dataItem;
+        public DataItem secondDataItem;
+        public StringBuilder alternateContentDescription;
+        public String header;
+        public String text;
+        public Context context;
+
+        public HangoutsDataItemModel(Intent intent, Intent alternateIntent, DataItem dataItem,
+                DataItem secondDataItem, StringBuilder alternateContentDescription, String header,
+                String text, Context context) {
+            this.intent = intent;
+            this.alternateIntent = alternateIntent;
+            this.dataItem = dataItem;
+            this.secondDataItem = secondDataItem;
+            this.alternateContentDescription = alternateContentDescription;
+            this.header = header;
+            this.text = text;
+            this.context = context;
+        }
+    }
+
+    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());
+        // There is no guarantee the order the data items come in. Second
+        // data item does not necessarily mean it's the alternate.
+        // Hangouts video should be alternate. Swap if needed
+        if (HANGOUTS_DATA_5_VIDEO.equals(
+                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.text = dataModel.secondDataItem.getDataKind().typeColumn;
+        } else if (HANGOUTS_DATA_5_MESSAGE.equals(
+                dataModel.dataItem.getContentValues().getAsString(Data.DATA5))) {
+            dataModel.alternateIntent = secondIntent;
+            dataModel.alternateContentDescription = new StringBuilder(
+                    dataModel.secondDataItem.buildDataStringForDisplay(dataModel.context,
+                            dataModel.secondDataItem.getDataKind()));
+        }
+    }
+
+    private static String getIntentResolveLabel(Intent intent, Context context) {
+        final List<ResolveInfo> matches = context.getPackageManager().queryIntentActivities(intent,
+                PackageManager.MATCH_DEFAULT_ONLY);
+
+        // Pick first match, otherwise best found
+        ResolveInfo bestResolve = null;
+        final int size = matches.size();
+        if (size == 1) {
+            bestResolve = matches.get(0);
+        } else if (size > 1) {
+            bestResolve = ResolveCache.getInstance(context).getBestResolve(intent, matches);
+        }
+
+        if (bestResolve == null) {
+            return null;
+        }
+
+        return String.valueOf(bestResolve.loadLabel(context.getPackageManager()));
+    }
+
+    /**
+     * Asynchronously extract the most vibrant color from the PhotoView. Once extracted,
+     * apply this tint to {@link MultiShrinkScroller}. This operation takes about 20-30ms
+     * on a Nexus 5.
+     */
+    private void extractAndApplyTintFromPhotoViewAsynchronously() {
+        if (mScroller == null) {
+            return;
+        }
+        final Drawable imageViewDrawable = mPhotoView.getDrawable();
+        new AsyncTask<Void, Void, MaterialPalette>() {
+            @Override
+            protected MaterialPalette doInBackground(Void... params) {
+
+                if (imageViewDrawable instanceof BitmapDrawable && mContactData != null
+                        && mContactData.getThumbnailPhotoBinaryData() != null
+                        && mContactData.getThumbnailPhotoBinaryData().length > 0) {
+                    // Perform the color analysis on the thumbnail instead of the full sized
+                    // image, so that our results will be as similar as possible to the Bugle
+                    // app.
+                    final Bitmap bitmap = BitmapFactory.decodeByteArray(
+                            mContactData.getThumbnailPhotoBinaryData(), 0,
+                            mContactData.getThumbnailPhotoBinaryData().length);
+                    try {
+                        final int primaryColor = colorFromBitmap(bitmap);
+                        if (primaryColor != 0) {
+                            return mMaterialColorMapUtils.calculatePrimaryAndSecondaryColor(
+                                    primaryColor);
+                        }
+                    } finally {
+                        bitmap.recycle();
+                    }
+                }
+                if (imageViewDrawable instanceof LetterTileDrawable) {
+                    final int primaryColor = ((LetterTileDrawable) imageViewDrawable).getColor();
+                    return mMaterialColorMapUtils.calculatePrimaryAndSecondaryColor(primaryColor);
+                }
+                return MaterialColorMapUtils.getDefaultPrimaryAndSecondaryColors(getResources());
+            }
+
+            @Override
+            protected void onPostExecute(MaterialPalette palette) {
+                super.onPostExecute(palette);
+                if (mHasComputedThemeColor) {
+                    // If we had previously computed a theme color from the contact photo,
+                    // then do not update the theme color. Changing the theme color several
+                    // seconds after QC has started, as a result of an updated/upgraded photo,
+                    // is a jarring experience. On the other hand, changing the theme color after
+                    // a rotation or onNewIntent() is perfectly fine.
+                    return;
+                }
+                // Check that the Photo has not changed. If it has changed, the new tint
+                // color needs to be extracted
+                if (imageViewDrawable == mPhotoView.getDrawable()) {
+                    mHasComputedThemeColor = true;
+                    setThemeColor(palette);
+                    // update color and photo in suggestion card
+                    onAggregationSuggestionChange();
+                }
+            }
+        }.execute();
+    }
+
+    private void setThemeColor(MaterialPalette palette) {
+        // If the color is invalid, use the predefined default
+        mColorFilterColor = palette.mPrimaryColor;
+        mScroller.setHeaderTintColor(mColorFilterColor);
+        mStatusBarColor = palette.mSecondaryColor;
+        updateStatusBarColor();
+
+        mColorFilter =
+                new PorterDuffColorFilter(mColorFilterColor, PorterDuff.Mode.SRC_ATOP);
+        mContactCard.setColorAndFilter(mColorFilterColor, mColorFilter);
+        mRecentCard.setColorAndFilter(mColorFilterColor, mColorFilter);
+        mAboutCard.setColorAndFilter(mColorFilterColor, mColorFilter);
+        if (mShouldShowSuggestions) {
+            mSuggestionsCancelButton.setTextColor(mColorFilterColor);
+        }
+    }
+
+    private void updateStatusBarColor() {
+        if (mScroller == null || !CompatUtils.isLollipopCompatible()) {
+            return;
+        }
+        final int desiredStatusBarColor;
+        // Only use a custom status bar color if QuickContacts touches the top of the viewport.
+        if (mScroller.getScrollNeededToBeFullScreen() <= 0) {
+            desiredStatusBarColor = mStatusBarColor;
+        } else {
+            desiredStatusBarColor = Color.TRANSPARENT;
+        }
+        // Animate to the new color.
+        final ObjectAnimator animation = ObjectAnimator.ofInt(getWindow(), "statusBarColor",
+                getWindow().getStatusBarColor(), desiredStatusBarColor);
+        animation.setDuration(ANIMATION_STATUS_BAR_COLOR_CHANGE_DURATION);
+        animation.setEvaluator(new ArgbEvaluator());
+        animation.start();
+    }
+
+    private int colorFromBitmap(Bitmap bitmap) {
+        // Author of Palette recommends using 24 colors when analyzing profile photos.
+        final int NUMBER_OF_PALETTE_COLORS = 24;
+        final Palette palette = Palette.generate(bitmap, NUMBER_OF_PALETTE_COLORS);
+        if (palette != null && palette.getVibrantSwatch() != null) {
+            return palette.getVibrantSwatch().getRgb();
+        }
+        return 0;
+    }
+
+    private List<Entry> contactInteractionsToEntries(List<ContactInteraction> interactions) {
+        final List<Entry> entries = new ArrayList<>();
+        for (ContactInteraction interaction : interactions) {
+            if (interaction == null) {
+                continue;
+            }
+            entries.add(new Entry(/* id = */ -1,
+                    interaction.getIcon(this),
+                    interaction.getViewHeader(this),
+                    interaction.getViewBody(this),
+                    interaction.getBodyIcon(this),
+                    interaction.getViewFooter(this),
+                    interaction.getFooterIcon(this),
+                    interaction.getContentDescription(this),
+                    interaction.getIntent(),
+                    /* alternateIcon = */ null,
+                    /* alternateIntent = */ null,
+                    /* alternateContentDescription = */ null,
+                    /* shouldApplyColor = */ true,
+                    /* isEditable = */ false,
+                    /* EntryContextMenuInfo = */ null,
+                    /* thirdIcon = */ null,
+                    /* thirdIntent = */ null,
+                    /* thirdContentDescription = */ null,
+                    /* thirdAction = */ Entry.ACTION_NONE,
+                    /* thirdActionExtras = */ null,
+                    interaction.getIconResourceId()));
+        }
+        return entries;
+    }
+
+    private final LoaderCallbacks<Contact> mLoaderContactCallbacks =
+            new LoaderCallbacks<Contact>() {
+        @Override
+        public void onLoaderReset(Loader<Contact> loader) {
+            mContactData = null;
+        }
+
+        @Override
+        public void onLoadFinished(Loader<Contact> loader, Contact data) {
+            Trace.beginSection("onLoadFinished()");
+            try {
+
+                if (isFinishing()) {
+                    return;
+                }
+                if (data.isError()) {
+                    // This means either the contact is invalid or we had an
+                    // internal error such as an acore crash.
+                    Log.i(TAG, "Failed to load contact: " + ((ContactLoader)loader).getLookupUri());
+                    Toast.makeText(QuickContactActivity.this, R.string.invalidContactMessage,
+                            Toast.LENGTH_LONG).show();
+                    finish();
+                    return;
+                }
+                if (data.isNotFound()) {
+                    Log.i(TAG, "No contact found: " + ((ContactLoader)loader).getLookupUri());
+                    Toast.makeText(QuickContactActivity.this, R.string.invalidContactMessage,
+                            Toast.LENGTH_LONG).show();
+                    finish();
+                    return;
+                }
+
+                bindContactData(data);
+
+            } finally {
+                Trace.endSection();
+            }
+        }
+
+        @Override
+        public Loader<Contact> onCreateLoader(int id, Bundle args) {
+            if (mLookupUri == null) {
+                Log.wtf(TAG, "Lookup uri wasn't initialized. Loader was started too early");
+            }
+            // 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*/);
+        }
+    };
+
+    @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();
+            }
+        } else {
+            super.onBackPressed();
+        }
+    }
+
+    @Override
+    public void finish() {
+        super.finish();
+
+        // override transitions to skip the standard window animations
+        overridePendingTransition(0, 0);
+    }
+
+    private final LoaderCallbacks<List<ContactInteraction>> mLoaderInteractionsCallbacks =
+            new LoaderCallbacks<List<ContactInteraction>>() {
+
+        @Override
+        public Loader<List<ContactInteraction>> onCreateLoader(int id, Bundle args) {
+            Loader<List<ContactInteraction>> loader = null;
+            switch (id) {
+                case LOADER_SMS_ID:
+                    loader = new SmsInteractionsLoader(
+                            QuickContactActivity.this,
+                            args.getStringArray(KEY_LOADER_EXTRA_PHONES),
+                            MAX_SMS_RETRIEVE);
+                    break;
+                case LOADER_CALENDAR_ID:
+                    final String[] emailsArray = args.getStringArray(KEY_LOADER_EXTRA_EMAILS);
+                    List<String> emailsList = null;
+                    if (emailsArray != null) {
+                        emailsList = Arrays.asList(args.getStringArray(KEY_LOADER_EXTRA_EMAILS));
+                    }
+                    loader = new CalendarInteractionsLoader(
+                            QuickContactActivity.this,
+                            emailsList,
+                            MAX_FUTURE_CALENDAR_RETRIEVE,
+                            MAX_PAST_CALENDAR_RETRIEVE,
+                            FUTURE_MILLISECOND_TO_SEARCH_LOCAL_CALENDAR,
+                            PAST_MILLISECOND_TO_SEARCH_LOCAL_CALENDAR);
+                    break;
+                case LOADER_CALL_LOG_ID:
+                    loader = new CallLogInteractionsLoader(
+                            QuickContactActivity.this,
+                            args.getStringArray(KEY_LOADER_EXTRA_PHONES),
+                            args.getStringArray(KEY_LOADER_EXTRA_SIP_NUMBERS),
+                            MAX_CALL_LOG_RETRIEVE);
+            }
+            return loader;
+        }
+
+        @Override
+        public void onLoadFinished(Loader<List<ContactInteraction>> loader,
+                List<ContactInteraction> data) {
+            mRecentLoaderResults.put(loader.getId(), data);
+
+            if (isAllRecentDataLoaded()) {
+                bindRecentData();
+            }
+        }
+
+        @Override
+        public void onLoaderReset(Loader<List<ContactInteraction>> loader) {
+            mRecentLoaderResults.remove(loader.getId());
+        }
+    };
+
+    private boolean isAllRecentDataLoaded() {
+        return mRecentLoaderResults.size() == mRecentLoaderIds.length;
+    }
+
+    private void bindRecentData() {
+        final List<ContactInteraction> allInteractions = new ArrayList<>();
+        final List<List<Entry>> interactionsWrapper = new ArrayList<>();
+
+        // Serialize mRecentLoaderResults into a single list. This should be done on the main
+        // thread to avoid races against mRecentLoaderResults edits.
+        for (List<ContactInteraction> loaderInteractions : mRecentLoaderResults.values()) {
+            allInteractions.addAll(loaderInteractions);
+        }
+
+        mRecentDataTask = new AsyncTask<Void, Void, Void>() {
+            @Override
+            protected Void doInBackground(Void... params) {
+                Trace.beginSection("sort recent loader results");
+
+                // Sort the interactions by most recent
+                Collections.sort(allInteractions, new Comparator<ContactInteraction>() {
+                    @Override
+                    public int compare(ContactInteraction a, ContactInteraction b) {
+                        if (a == null && b == null) {
+                            return 0;
+                        }
+                        if (a == null) {
+                            return 1;
+                        }
+                        if (b == null) {
+                            return -1;
+                        }
+                        if (a.getInteractionDate() > b.getInteractionDate()) {
+                            return -1;
+                        }
+                        if (a.getInteractionDate() == b.getInteractionDate()) {
+                            return 0;
+                        }
+                        return 1;
+                    }
+                });
+
+                Trace.endSection();
+                Trace.beginSection("contactInteractionsToEntries");
+
+                // Wrap each interaction in its own list so that an icon is displayed for each entry
+                for (Entry contactInteraction : contactInteractionsToEntries(allInteractions)) {
+                    List<Entry> entryListWrapper = new ArrayList<>(1);
+                    entryListWrapper.add(contactInteraction);
+                    interactionsWrapper.add(entryListWrapper);
+                }
+
+                Trace.endSection();
+                return null;
+            }
+
+            @Override
+            protected void onPostExecute(Void aVoid) {
+                super.onPostExecute(aVoid);
+                Trace.beginSection("initialize recents card");
+
+                if (allInteractions.size() > 0) {
+                    mRecentCard.initialize(interactionsWrapper,
+                    /* numInitialVisibleEntries = */ MIN_NUM_COLLAPSED_RECENT_ENTRIES_SHOWN,
+                    /* isExpanded = */ mRecentCard.isExpanded(), /* isAlwaysExpanded = */ false,
+                            mExpandingEntryCardViewListener, mScroller);
+                    mRecentCard.setVisibility(View.VISIBLE);
+                }
+
+                Trace.endSection();
+                Trace.beginSection("initialize permission explanation card");
+
+                final Drawable historyIcon = VectorDrawableCompat.create(
+                        getResources(), R.drawable.ic_history_24dp, 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.ic_history_24dp);
+
+                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) {
+                    mPermissionExplanationCard.setVisibility(View.VISIBLE);
+                } else {
+                    mPermissionExplanationCard.setVisibility(View.GONE);
+                }
+
+                Trace.endSection();
+
+                // About card is initialized along with the contact card, but since it appears after
+                // the recent card in the UI, we hold off until making it visible until the recent
+                // card is also ready to avoid stuttering.
+                if (mAboutCard.shouldShow()) {
+                    mAboutCard.setVisibility(View.VISIBLE);
+                } else {
+                    mAboutCard.setVisibility(View.GONE);
+                }
+                mRecentDataTask = null;
+            }
+        };
+        mRecentDataTask.execute();
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+
+        if (mEntriesAndActionsTask != null) {
+            // Once the activity is stopped, we will no longer want to bind mEntriesAndActionsTask's
+            // results on the UI thread. In some circumstances Activities are killed without
+            // onStop() being called. This is not a problem, because in these circumstances
+            // the entire process will be killed.
+            mEntriesAndActionsTask.cancel(/* mayInterruptIfRunning = */ false);
+        }
+        if (mRecentDataTask != null) {
+            mRecentDataTask.cancel(/* mayInterruptIfRunning = */ false);
+        }
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        if (mAggregationSuggestionEngine != null) {
+            mAggregationSuggestionEngine.quit();
+        }
+    }
+
+    /**
+     * Returns true if it is possible to edit the current contact.
+     */
+    private boolean isContactEditable() {
+        return mContactData != null && !mContactData.isDirectoryEntry();
+    }
+
+    /**
+     * Returns true if it is possible to share the current contact.
+     */
+    private boolean isContactShareable() {
+        return mContactData != null && !mContactData.isDirectoryEntry();
+    }
+
+    private Intent getEditContactIntent() {
+        return EditorIntents.createCompactEditContactIntent(
+                mContactData.getLookupUri(),
+                mHasComputedThemeColor
+                        ? new MaterialPalette(mColorFilterColor, mStatusBarColor) : null,
+                mContactData.getPhotoId());
+    }
+
+    private void editContact() {
+        mHasIntentLaunched = true;
+        mContactLoader.cacheResult();
+        startActivityForResult(getEditContactIntent(), REQUEST_CODE_CONTACT_EDITOR_ACTIVITY);
+    }
+
+    private void deleteContact() {
+        final Uri contactUri = mContactData.getLookupUri();
+        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();
+
+            // 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);
+
+            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() {
+        final String lookupKey = mContactData.getLookupKey();
+        final Uri shareUri = Uri.withAppendedPath(Contacts.CONTENT_VCARD_URI, lookupKey);
+        final Intent intent = new Intent(Intent.ACTION_SEND);
+        intent.setType(Contacts.CONTENT_VCARD_TYPE);
+        intent.putExtra(Intent.EXTRA_STREAM, shareUri);
+
+        // Launch chooser to share contact via
+        final CharSequence chooseTitle = getResources().getQuantityString(
+                R.plurals.title_share_via, /* quantity */ 1);
+        final Intent chooseIntent = Intent.createChooser(intent, chooseTitle);
+
+        try {
+            mHasIntentLaunched = true;
+            ImplicitIntentsUtil.startActivityOutsideApp(this, chooseIntent);
+        } catch (final ActivityNotFoundException ex) {
+            Toast.makeText(this, R.string.share_error, Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    /**
+     * Creates a launcher shortcut with the current contact.
+     */
+    private void createLauncherShortcutWithContact() {
+        final ShortcutIntentBuilder builder = new ShortcutIntentBuilder(this,
+                new OnShortcutIntentCreatedListener() {
+
+                    @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();
+                    }
+
+                });
+        builder.createContactShortcutIntent(mContactData.getLookupUri());
+    }
+
+    private boolean isShortcutCreatable() {
+        if (mContactData == null || mContactData.isUserProfile() ||
+                mContactData.isDirectoryEntry()) {
+            return false;
+        }
+        final Intent createShortcutIntent = new Intent();
+        createShortcutIntent.setAction(ACTION_INSTALL_SHORTCUT);
+        final List<ResolveInfo> receivers = getPackageManager()
+                .queryBroadcastReceivers(createShortcutIntent, 0);
+        return receivers != null && receivers.size() > 0;
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        final MenuInflater inflater = getMenuInflater();
+        inflater.inflate(R.menu.quickcontact, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onPrepareOptionsMenu(Menu menu) {
+        if (mContactData != null) {
+            final MenuItem starredMenuItem = menu.findItem(R.id.menu_star);
+            ContactDisplayUtils.configureStarredMenuItem(starredMenuItem,
+                    mContactData.isDirectoryEntry(), mContactData.isUserProfile(),
+                    mContactData.getStarred());
+
+            // Configure edit MenuItem
+            final MenuItem editMenuItem = menu.findItem(R.id.menu_edit);
+            editMenuItem.setVisible(true);
+            if (DirectoryContactUtil.isDirectoryContact(mContactData) || InvisibleContactUtil
+                    .isInvisibleAndAddable(mContactData, this)) {
+                editMenuItem.setIcon(R.drawable.ic_person_add_tinted_24dp);
+                editMenuItem.setTitle(R.string.menu_add_contact);
+            } else if (isContactEditable()) {
+                editMenuItem.setIcon(R.drawable.ic_create_24dp);
+                editMenuItem.setTitle(R.string.menu_editContact);
+            } else {
+                editMenuItem.setVisible(false);
+            }
+
+            final MenuItem deleteMenuItem = menu.findItem(R.id.menu_delete);
+            deleteMenuItem.setVisible(isContactEditable() && !mContactData.isUserProfile());
+
+            final MenuItem shareMenuItem = menu.findItem(R.id.menu_share);
+            shareMenuItem.setVisible(isContactShareable());
+
+            final MenuItem shortcutMenuItem = menu.findItem(R.id.menu_create_contact_shortcut);
+            shortcutMenuItem.setVisible(isShortcutCreatable());
+
+            final MenuItem helpMenu = menu.findItem(R.id.menu_help);
+            helpMenu.setVisible(HelpUtils.isHelpAndFeedbackAvailable());
+
+            return true;
+        }
+        return false;
+    }
+
+    @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 Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
+                    intent.setType(Contacts.CONTENT_ITEM_TYPE);
+
+                    ArrayList<ContentValues> values = mContactData.getContentValues();
+
+                    // 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);
+                    }
+
+                    // 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();
+                }
+                return true;
+            case R.id.menu_delete:
+                if (isContactEditable()) {
+                    deleteContact();
+                }
+                return true;
+            case R.id.menu_share:
+                if (isContactShareable()) {
+                    shareContact();
+                }
+                return true;
+            case R.id.menu_create_contact_shortcut:
+                if (isShortcutCreatable()) {
+                    createLauncherShortcutWithContact();
+                }
+                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
new file mode 100644
index 0000000..dae10af
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/QuickContactBroadcastReceiver.java
@@ -0,0 +1,42 @@
+/*
+ * 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.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;
+
+/**
+ * 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
+ * with our own animation
+ */
+public class QuickContactBroadcastReceiver extends BroadcastReceiver {
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        final Uri dataUri = intent.getData();
+        final Intent newIntent = new Intent(QuickContact.ACTION_QUICK_CONTACT);
+        newIntent.setSourceBounds(intent.getSourceBounds());
+        newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+        newIntent.setData(dataUri);
+        ImplicitIntentsUtil.startActivityInApp(context, newIntent);
+    }
+}
diff --git a/src/com/android/contacts/quickcontact/ResolveCache.java b/src/com/android/contacts/quickcontact/ResolveCache.java
new file mode 100644
index 0000000..e6adaf3
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/ResolveCache.java
@@ -0,0 +1,216 @@
+/*
+ * 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.quickcontact;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+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;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+
+/**
+ * Internally hold a cache of scaled icons based on {@link PackageManager}
+ * queries, keyed internally on MIME-type.
+ */
+public class ResolveCache {
+    /**
+     * Specific list {@link ApplicationInfo#packageName} of apps that are
+     * prefered <strong>only</strong> for the purposes of default icons when
+     * multiple {@link ResolveInfo} are found to match. This only happens when
+     * the user has not selected a default app yet, and they will still be
+     * presented with the system disambiguation dialog.
+     * If several of this list match (e.g. Android Browser vs. Chrome), we will pick either one
+     */
+    private static final HashSet<String> sPreferResolve = Sets.newHashSet(
+            "com.android.email",
+            "com.google.android.email",
+
+            "com.android.phone",
+
+            "com.google.android.apps.maps",
+
+            "com.android.chrome",
+            "org.chromium.webview_shell",
+            "com.google.android.browser",
+            "com.android.browser");
+
+    private final Context mContext;
+    private final PackageManager mPackageManager;
+
+    private static ResolveCache sInstance;
+
+    /**
+     * Returns an instance of the ResolveCache. Only one internal instance is kept, so
+     * the argument packageManagers is ignored for all but the first call
+     */
+    public synchronized static ResolveCache getInstance(Context context) {
+        if (sInstance == null) {
+            final Context applicationContext = context.getApplicationContext();
+            sInstance = new ResolveCache(applicationContext);
+
+            // Register for package-changes so that we can flush our cache
+            final IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
+            filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
+            filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
+            filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
+            filter.addDataScheme("package");
+            applicationContext.registerReceiver(sInstance.mPackageIntentReceiver, filter);
+        }
+        return sInstance;
+    }
+
+    private synchronized static void flush() {
+        sInstance = null;
+    }
+
+    /**
+     * Called anytime a package is installed, uninstalled etc, so that we can wipe our cache
+     */
+    private BroadcastReceiver mPackageIntentReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            flush();
+        }
+    };
+
+    /**
+     * Cached entry holding the best {@link ResolveInfo} for a specific
+     * MIME-type, along with a {@link SoftReference} to its icon.
+     */
+    private static class Entry {
+        public ResolveInfo bestResolve;
+        public Drawable icon;
+    }
+
+    private HashMap<String, Entry> mCache = new HashMap<String, Entry>();
+
+
+    private ResolveCache(Context context) {
+        mContext = context;
+        mPackageManager = context.getPackageManager();
+    }
+
+    /**
+     * Get the {@link Entry} best associated with the given mimetype and intent,
+     * or create and populate a new one if it doesn't exist.
+     */
+    protected Entry getEntry(String mimeType, Intent intent) {
+        Entry entry = mCache.get(mimeType);
+        if (entry != null) return entry;
+        entry = new Entry();
+
+        if (SipAddress.CONTENT_ITEM_TYPE.equals(mimeType)
+                && !PhoneCapabilityTester.isSipPhone(mContext)) {
+            intent = null;
+        }
+
+        if (intent != null) {
+            final List<ResolveInfo> matches = mPackageManager.queryIntentActivities(intent,
+                    PackageManager.MATCH_DEFAULT_ONLY);
+
+            // Pick first match, otherwise best found
+            ResolveInfo bestResolve = null;
+            final int size = matches.size();
+            if (size == 1) {
+                bestResolve = matches.get(0);
+            } else if (size > 1) {
+                bestResolve = getBestResolve(intent, matches);
+            }
+
+            if (bestResolve != null) {
+                final Drawable icon = bestResolve.loadIcon(mPackageManager);
+
+                entry.bestResolve = bestResolve;
+                entry.icon = icon;
+            }
+        }
+
+        mCache.put(mimeType, entry);
+        return entry;
+    }
+
+    /**
+     * Best {@link ResolveInfo} when multiple found. Ties are broken by
+     * selecting first from the {@link QuickContactActivity#sPreferResolve} list of
+     * preferred packages, second by apps that live on the system partition,
+     * otherwise the app from the top of the list. This is
+     * <strong>only</strong> used for selecting a default icon for
+     * displaying in the track, and does not shortcut the system
+     * {@link Intent} disambiguation dialog.
+     */
+    protected ResolveInfo getBestResolve(Intent intent, List<ResolveInfo> matches) {
+        // Try finding preferred activity, otherwise detect disambig
+        final ResolveInfo foundResolve = mPackageManager.resolveActivity(intent,
+                PackageManager.MATCH_DEFAULT_ONLY);
+        final boolean foundDisambig = (foundResolve.match &
+                IntentFilter.MATCH_CATEGORY_MASK) == 0;
+
+        if (!foundDisambig) {
+            // Found concrete match, so return directly
+            return foundResolve;
+        }
+
+        // Accept any package from prefer list, otherwise first system app
+        ResolveInfo firstSystem = null;
+        for (ResolveInfo info : matches) {
+            final boolean isSystem = (info.activityInfo.applicationInfo.flags
+                    & ApplicationInfo.FLAG_SYSTEM) != 0;
+            final boolean isPrefer = sPreferResolve
+                    .contains(info.activityInfo.applicationInfo.packageName);
+
+            if (isPrefer) return info;
+            if (isSystem && firstSystem == null) firstSystem = info;
+        }
+
+        // Return first system found, otherwise first from list
+        return firstSystem != null ? firstSystem : matches.get(0);
+    }
+
+    /**
+     * Check {@link PackageManager} to see if any apps offer to handle the
+     * given {@link Intent}.
+     */
+    public boolean hasResolve(String mimeType, Intent intent) {
+        return getEntry(mimeType, intent).bestResolve != null;
+    }
+
+    /**
+     * Return the best icon for the given {@link Action}, which is usually
+     * based on the {@link ResolveInfo} found through a
+     * {@link PackageManager} query.
+     */
+    public Drawable getIcon(String mimeType, Intent intent) {
+        return getEntry(mimeType, intent).icon;
+    }
+
+    public void clear() {
+        mCache.clear();
+    }
+}
diff --git a/src/com/android/contacts/quickcontact/WebAddress.java b/src/com/android/contacts/quickcontact/WebAddress.java
new file mode 100644
index 0000000..d55a874
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/WebAddress.java
@@ -0,0 +1,147 @@
+/*
+ * 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.quickcontact;
+
+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.
+ *
+ * Web Address Parser
+ *
+ * This is called WebAddress, rather than URL or URI, because it
+ * attempts to parse the stuff that a user will actually type into a
+ * browser address widget.
+ *
+ * Unlike java.net.uri, this parser will not choke on URIs missing
+ * schemes.  It will only throw a ParseException if the input is
+ * really hosed.
+ *
+ * If given an https scheme but no port, fills in port
+ *
+ */
+public class WebAddress {
+
+    private String mScheme;
+    private String mHost;
+    private int mPort;
+    private String mPath;
+    private String mAuthInfo;
+
+    static final int MATCH_GROUP_SCHEME = 1;
+    static final int MATCH_GROUP_AUTHORITY = 2;
+    static final int MATCH_GROUP_HOST = 3;
+    static final int MATCH_GROUP_PORT = 4;
+    static final int MATCH_GROUP_PATH = 5;
+
+    static Pattern sAddressPattern = Pattern.compile(
+            /* scheme    */ "(?:(http|https|file)\\:\\/\\/)?" +
+            /* authority */ "(?:([-A-Za-z0-9$_.+!*'(),;?&=]+(?:\\:[-A-Za-z0-9$_.+!*'(),;?&=]+)?)@)?" +
+            /* host      */ "([" + GOOD_IRI_CHAR + "%_-][" + GOOD_IRI_CHAR + "%_\\.-]*|\\[[0-9a-fA-F:\\.]+\\])?" +
+            /* port      */ "(?:\\:([0-9]*))?" +
+            /* path      */ "(\\/?[^#]*)?" +
+            /* anchor    */ ".*", Pattern.CASE_INSENSITIVE);
+
+    /** parses given uriString. */
+    public WebAddress(String address) throws ParseException {
+        if (address == null) {
+            throw new NullPointerException();
+        }
+
+        // android.util.Log.d(LOGTAG, "WebAddress: " + address);
+
+        mScheme = "";
+        mHost = "";
+        mPort = -1;
+        mPath = "/";
+        mAuthInfo = "";
+
+        Matcher m = sAddressPattern.matcher(address);
+        String t;
+        if (m.matches()) {
+            t = m.group(MATCH_GROUP_SCHEME);
+            if (t != null) mScheme = t.toLowerCase(Locale.ROOT);
+            t = m.group(MATCH_GROUP_AUTHORITY);
+            if (t != null) mAuthInfo = t;
+            t = m.group(MATCH_GROUP_HOST);
+            if (t != null) mHost = t;
+            t = m.group(MATCH_GROUP_PORT);
+            if (t != null && t.length() > 0) {
+                // The ':' character is not returned by the regex.
+                try {
+                    mPort = Integer.parseInt(t);
+                } catch (NumberFormatException ex) {
+                    throw new ParseException("Bad port");
+                }
+            }
+            t = m.group(MATCH_GROUP_PATH);
+            if (t != null && t.length() > 0) {
+                /* handle busted myspace frontpage redirect with
+                   missing initial "/" */
+                if (t.charAt(0) == '/') {
+                    mPath = t;
+                } else {
+                    mPath = "/" + t;
+                }
+            }
+
+        } else {
+            // nothing found... outa here
+            throw new ParseException("Bad address");
+        }
+
+        /* Get port from scheme or scheme from port, if necessary and
+           possible */
+        if (mPort == 443 && mScheme.equals("")) {
+            mScheme = "https";
+        } else if (mPort == -1) {
+            if (mScheme.equals("https"))
+                mPort = 443;
+            else
+                mPort = 80; // default
+        }
+        if (mScheme.equals("")) mScheme = "http";
+    }
+
+    @Override
+    public String toString() {
+        String port = "";
+        if ((mPort != 443 && mScheme.equals("https")) ||
+                (mPort != 80 && mScheme.equals("http"))) {
+            port = ":" + Integer.toString(mPort);
+        }
+        String authInfo = "";
+        if (mAuthInfo.length() > 0) {
+            authInfo = mAuthInfo + "@";
+        }
+
+        return mScheme + "://" + authInfo + mHost + port + mPath;
+    }
+
+    public class ParseException extends Exception {
+        public String response;
+
+        ParseException(String response) {
+            this.response = response;
+        }
+    }
+}
diff --git a/src/com/android/contacts/test/EmptyFragment.java b/src/com/android/contacts/test/EmptyFragment.java
new file mode 100644
index 0000000..e35b7f1
--- /dev/null
+++ b/src/com/android/contacts/test/EmptyFragment.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.test;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+
+/**
+ * Empty fragment used for testing.
+ */
+public class EmptyFragment extends Fragment {
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        // Must return a ViewGroup, FrameLayout will do.
+        return new FrameLayout(getActivity());
+    }
+}
diff --git a/src/com/android/contacts/test/NeededForReflection.java b/src/com/android/contacts/test/NeededForReflection.java
new file mode 100644
index 0000000..feacca5
--- /dev/null
+++ b/src/com/android/contacts/test/NeededForReflection.java
@@ -0,0 +1,30 @@
+/*
+ * 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.test;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Denotes that the class, constructor, method or field is used by tests and therefore cannot be
+ * removed by tools like ProGuard.
+ */
+@Retention(RetentionPolicy.CLASS)
+@Target({ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.FIELD})
+public @interface NeededForReflection{}
diff --git a/src/com/android/contacts/util/ContactPhotoUtils.java b/src/com/android/contacts/util/ContactPhotoUtils.java
new file mode 100644
index 0000000..ce691c3
--- /dev/null
+++ b/src/com/android/contacts/util/ContactPhotoUtils.java
@@ -0,0 +1,176 @@
+/*
+ * 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.ClipData;
+import android.content.Context;
+import android.content.Intent;
+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;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+/**
+ * Utilities related to loading/saving contact photos.
+ *
+ */
+public class ContactPhotoUtils {
+    private static final String TAG = "ContactPhotoUtils";
+
+    private static final String PHOTO_DATE_FORMAT = "'IMG'_yyyyMMdd_HHmmss";
+
+    /**
+     * Generate a new, unique file to be used as an out-of-band communication
+     * channel, since hi-res Bitmaps are too big to serialize into a Bundle.
+     * This file will be passed (as a uri) to other activities (such as the gallery/camera/
+     *  cropper/etc.), and read by us once they are finished writing it.
+     */
+    public static Uri generateTempImageUri(Context context) {
+        final String  fileProviderAuthority = context.getResources().getString(
+                R.string.photo_file_provider_authority);
+        return FileProvider.getUriForFile(context, fileProviderAuthority,
+                new File(pathForTempPhoto(context, generateTempPhotoFileName())));
+    }
+
+    public static Uri generateTempCroppedImageUri(Context context) {
+        final String  fileProviderAuthority = context.getResources().getString(
+                R.string.photo_file_provider_authority);
+        return FileProvider.getUriForFile(context, fileProviderAuthority,
+                new File(pathForTempPhoto(context, generateTempCroppedPhotoFileName())));
+    }
+
+    private static String pathForTempPhoto(Context context, String fileName) {
+        final File dir = context.getCacheDir();
+        dir.mkdirs();
+        final File f = new File(dir, fileName);
+        return f.getAbsolutePath();
+    }
+
+    private static String generateTempPhotoFileName() {
+        final Date date = new Date(System.currentTimeMillis());
+        SimpleDateFormat dateFormat = new SimpleDateFormat(PHOTO_DATE_FORMAT, Locale.US);
+        return "ContactPhoto-" + dateFormat.format(date) + ".jpg";
+    }
+
+    private static String generateTempCroppedPhotoFileName() {
+        final Date date = new Date(System.currentTimeMillis());
+        SimpleDateFormat dateFormat = new SimpleDateFormat(PHOTO_DATE_FORMAT, Locale.US);
+        return "ContactPhoto-" + dateFormat.format(date) + "-cropped.jpg";
+    }
+
+    /**
+     * Given a uri pointing to a bitmap, reads it into a bitmap and returns it.
+     * @throws FileNotFoundException
+     */
+    public static Bitmap getBitmapFromUri(Context context, Uri uri) throws FileNotFoundException {
+        final InputStream imageStream = context.getContentResolver().openInputStream(uri);
+        try {
+            return BitmapFactory.decodeStream(imageStream);
+        } finally {
+            Closeables.closeQuietly(imageStream);
+        }
+    }
+
+    /**
+     * Creates a byte[] containing the PNG-compressed bitmap, or null if
+     * something goes wrong.
+     */
+    public static byte[] compressBitmap(Bitmap bitmap) {
+        final int size = bitmap.getWidth() * bitmap.getHeight() * 4;
+        final ByteArrayOutputStream out = new ByteArrayOutputStream(size);
+        try {
+            bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
+            out.flush();
+            out.close();
+            return out.toByteArray();
+        } catch (IOException e) {
+            Log.w(TAG, "Unable to serialize photo: " + e.toString());
+            return null;
+        }
+    }
+
+    public static void addCropExtras(Intent intent, int photoSize) {
+        intent.putExtra("crop", "true");
+        intent.putExtra("scale", true);
+        intent.putExtra("scaleUpIfNeeded", true);
+        intent.putExtra("aspectX", 1);
+        intent.putExtra("aspectY", 1);
+        intent.putExtra("outputX", photoSize);
+        intent.putExtra("outputY", photoSize);
+    }
+
+    /**
+     * Adds common extras to gallery intents.
+     *
+     * @param intent The intent to add extras to.
+     * @param photoUri The uri of the file to save the image to.
+     */
+    public static void addPhotoPickerExtras(Intent intent, Uri photoUri) {
+        intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
+        intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION |
+                Intent.FLAG_GRANT_READ_URI_PERMISSION);
+        intent.setClipData(ClipData.newRawUri(MediaStore.EXTRA_OUTPUT, photoUri));
+    }
+
+    /**
+     * Given an input photo stored in a uri, save it to a destination uri
+     */
+    public static boolean savePhotoFromUriToUri(Context context, Uri inputUri, Uri outputUri,
+            boolean deleteAfterSave) {
+        if (inputUri == null || outputUri == null) {
+            return false;
+        }
+        try (FileOutputStream outputStream = context.getContentResolver()
+                 .openAssetFileDescriptor(outputUri, "rw").createOutputStream();
+             InputStream inputStream = context.getContentResolver().openInputStream(inputUri)) {
+
+            final byte[] buffer = new byte[16 * 1024];
+            int length;
+            int totalLength = 0;
+            while ((length = inputStream.read(buffer)) > 0) {
+                outputStream.write(buffer, 0, length);
+                totalLength += length;
+            }
+            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;
+        } finally {
+            if (deleteAfterSave) {
+                context.getContentResolver().delete(inputUri, null, null);
+            }
+        }
+        return true;
+    }
+}
diff --git a/src/com/android/contacts/util/DialogManager.java b/src/com/android/contacts/util/DialogManager.java
new file mode 100644
index 0000000..49796db
--- /dev/null
+++ b/src/com/android/contacts/util/DialogManager.java
@@ -0,0 +1,132 @@
+/*
+ * 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.app.Activity;
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnDismissListener;
+import android.os.Bundle;
+import android.view.View;
+
+import com.android.contacts.R;
+
+/**
+ * Manages creation and destruction of Dialogs that are to be shown by Views. Unlike how Dialogs
+ * are regularly used, the Dialogs are not recycled but immediately destroyed after dismissal.
+ * To be able to do that, two IDs are required which are used consecutively.
+ * How to use:<ul>
+ * <li>The owning Activity creates on instance of this class, passing itself and two Ids that are
+ *    not used by other Dialogs of the Activity.</li>
+ * <li>Views owning Dialogs must implement {@link DialogManager.DialogShowingView}</li>
+ * <li>After creating the Views, configureManagingViews must be called to configure all views
+ *    that implement {@link DialogManager.DialogShowingView}</li>
+ * <li>In the implementation of {@link Activity#onCreateDialog}, calls for the
+ *    ViewId are forwarded to {@link DialogManager#onCreateDialog(int, Bundle)}</li>
+ * </ul>
+ * To actually show a Dialog, the View uses {@link DialogManager#showDialogInView(View, Bundle)},
+ * passing itself as a first parameter
+ */
+public class DialogManager {
+    private final Activity mActivity;
+    private boolean mUseDialogId2 = false;
+    public final static String VIEW_ID_KEY = "view_id";
+
+    public static final boolean isManagedId(int id) {
+        return (id == R.id.dialog_manager_id_1) || (id == R.id.dialog_manager_id_2);
+    }
+
+    /**
+     * Creates a new instance of this class for the given Activity.
+     * @param activity The activity this object is used for
+     */
+    public DialogManager(final Activity activity) {
+        if (activity == null) throw new IllegalArgumentException("activity must not be null");
+        mActivity = activity;
+    }
+
+    /**
+     * Called by a View to show a dialog. It has to pass itself and a Bundle with extra information.
+     * If the view can show several dialogs, it should distinguish them using an item in the Bundle.
+     * The View needs to have a valid and unique Id. This function modifies the bundle by adding a
+     * new item named {@link DialogManager#VIEW_ID_KEY}
+     */
+    public void showDialogInView(final View view, final Bundle bundle) {
+        final int viewId = view.getId();
+        if (bundle.containsKey(VIEW_ID_KEY)) {
+            throw new IllegalArgumentException("Bundle already contains a " + VIEW_ID_KEY);
+        }
+        if (viewId == View.NO_ID) {
+            throw new IllegalArgumentException("View does not have a proper ViewId");
+        }
+        bundle.putInt(VIEW_ID_KEY, viewId);
+        int dialogId = mUseDialogId2 ? R.id.dialog_manager_id_2 : R.id.dialog_manager_id_1;
+        mActivity.showDialog(dialogId, bundle);
+    }
+
+    /**
+     * Callback function called by the Activity to handle View-managed Dialogs.
+     * This function returns null if the id is not one of the two reserved Ids.
+     */
+    public Dialog onCreateDialog(final int id, final Bundle bundle) {
+        if (id == R.id.dialog_manager_id_1) {
+            mUseDialogId2 = true;
+        } else if (id == R.id.dialog_manager_id_2) {
+            mUseDialogId2 = false;
+        } else {
+            return null;
+        }
+        if (!bundle.containsKey(VIEW_ID_KEY)) {
+            throw new IllegalArgumentException("Bundle does not contain a ViewId");
+        }
+        final int viewId = bundle.getInt(VIEW_ID_KEY);
+        final View view = mActivity.findViewById(viewId);
+        if (view == null || !(view instanceof DialogShowingView)) {
+            return null;
+        }
+        final Dialog dialog = ((DialogShowingView)view).createDialog(bundle);
+        if (dialog == null) {
+            return dialog;
+        }
+
+        // As we will never re-use this dialog, we can completely kill it here
+        dialog.setOnDismissListener(new OnDismissListener() {
+            public void onDismiss(DialogInterface dialogInterface) {
+                mActivity.removeDialog(id);
+            }
+        });
+        return dialog;
+    }
+
+    /**
+     * Interface to implemented by Views that show Dialogs
+     */
+    public interface DialogShowingView {
+        /**
+         * Callback function to create a Dialog. Notice that the DialogManager overwrites the
+         * OnDismissListener on the returned Dialog, so the View should not use this Listener itself
+         */
+        Dialog createDialog(Bundle bundle);
+    }
+
+    /**
+     * Interface to implemented by Activities that host View-showing dialogs
+     */
+    public interface DialogShowingViewActivity {
+        DialogManager getDialogManager();
+    }
+}
diff --git a/src/com/android/contacts/util/HelpUtils.java b/src/com/android/contacts/util/HelpUtils.java
new file mode 100644
index 0000000..814e3ab
--- /dev/null
+++ b/src/com/android/contacts/util/HelpUtils.java
@@ -0,0 +1,141 @@
+/*
+ * 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.Context;
+import android.content.Intent;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.net.Uri;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.MenuItem;
+
+import java.util.Locale;
+
+/**
+ * Functions to easily prepare contextual help menu option items with an intent that opens up the
+ * browser to a particular URL, while taking into account the preferred language and app version.
+ */
+public class HelpUtils {
+    private final static String TAG = HelpUtils.class.getName();
+
+    /**
+     * Help URL query parameter key for the preferred language.
+     */
+    private final static String PARAM_LANGUAGE_CODE = "hl";
+
+    /**
+     * Help URL query parameter key for the app version.
+     */
+    private final static String PARAM_VERSION = "version";
+
+    /**
+     * Cached version code to prevent repeated calls to the package manager.
+     */
+    private static String sCachedVersionCode = null;
+
+    /** Static helper that is not instantiable*/
+    private HelpUtils() { }
+
+    /**
+     * Prepares the help menu item by doing the following.
+     * - If the string corresponding to the helpUrlResourceId is empty or null, then the help menu
+     *   item is made invisible.
+     * - Otherwise, this makes the help menu item visible and sets the intent for the help menu
+     *   item to view the URL.
+     *
+     * @return returns whether the help menu item has been made visible.
+     */
+    public static boolean prepareHelpMenuItem(Context context, MenuItem helpMenuItem,
+            int helpUrlResourceId) {
+        String helpUrlString = context.getResources().getString(helpUrlResourceId);
+        return prepareHelpMenuItem(context, helpMenuItem, helpUrlString);
+    }
+
+    /**
+     * Prepares the help menu item by doing the following.
+     * - If the helpUrlString is empty or null, the help menu item is made invisible.
+     * - Otherwise, this makes the help menu item visible and sets the intent for the help menu
+     *   item to view the URL.
+     *
+     * @return returns whether the help menu item has been made visible.
+     */
+    public static boolean prepareHelpMenuItem(Context context, MenuItem helpMenuItem,
+            String helpUrlString) {
+        if (TextUtils.isEmpty(helpUrlString)) {
+            // The help url string is empty or null, so set the help menu item to be invisible.
+            helpMenuItem.setVisible(false);
+
+            // return that the help menu item is not visible (i.e. false)
+            return false;
+        } else {
+            // The help url string exists, so first add in some extra query parameters.
+            final Uri fullUri = uriWithAddedParameters(context, Uri.parse(helpUrlString));
+
+            // Then, create an intent that will be fired when the user
+            // selects this help menu item.
+            Intent intent = new Intent(Intent.ACTION_VIEW, fullUri);
+            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
+                    | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
+
+            // Set the intent to the help menu item, show the help menu item in the overflow
+            // menu, and make it visible.
+            helpMenuItem.setIntent(intent);
+            helpMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
+            helpMenuItem.setVisible(true);
+
+            // return that the help menu item is visible (i.e., true)
+            return true;
+        }
+    }
+
+    /**
+     * Adds two query parameters into the Uri, namely the language code and the version code
+     * of the app's package as gotten via the context.
+     * @return the uri with added query parameters
+     */
+    private static Uri uriWithAddedParameters(Context context, Uri baseUri) {
+        Uri.Builder builder = baseUri.buildUpon();
+
+        // Add in the preferred language
+        builder.appendQueryParameter(PARAM_LANGUAGE_CODE, Locale.getDefault().toString());
+
+        // Add in the package version code
+        if (sCachedVersionCode == null) {
+            // There is no cached version code, so try to get it from the package manager.
+            try {
+                // cache the version code
+                PackageInfo info = context.getPackageManager().getPackageInfo(
+                        context.getPackageName(), 0);
+                sCachedVersionCode = Integer.toString(info.versionCode);
+
+                // append the version code to the uri
+                builder.appendQueryParameter(PARAM_VERSION, sCachedVersionCode);
+            } catch (NameNotFoundException e) {
+                // Cannot find the package name, so don't add in the version parameter
+                // This shouldn't happen.
+                Log.wtf(TAG, "Invalid package name for context", e);
+            }
+        } else {
+            builder.appendQueryParameter(PARAM_VERSION, sCachedVersionCode);
+        }
+
+        // Build the full uri and return it
+        return builder.build();
+    }
+}
diff --git a/src/com/android/contacts/util/ImageViewDrawableSetter.java b/src/com/android/contacts/util/ImageViewDrawableSetter.java
new file mode 100644
index 0000000..6147c39
--- /dev/null
+++ b/src/com/android/contacts/util/ImageViewDrawableSetter.java
@@ -0,0 +1,178 @@
+/*
+ * 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.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.TransitionDrawable;
+import android.media.ThumbnailUtils;
+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 java.util.Arrays;
+
+/**
+ * Initialized with a target ImageView. When provided with a compressed image
+ * (i.e. a byte[]), it appropriately updates the ImageView's Drawable.
+ */
+public class ImageViewDrawableSetter {
+    private ImageView mTarget;
+    private byte[] mCompressed;
+    private Drawable mPreviousDrawable;
+    private int mDurationInMillis = 0;
+    private Contact mContact;
+    private static final String TAG = "ImageViewDrawableSetter";
+
+    public ImageViewDrawableSetter() {
+    }
+
+    public ImageViewDrawableSetter(ImageView target) {
+        mTarget = target;
+    }
+
+    public Bitmap setupContactPhoto(Contact contactData, ImageView photoView) {
+        mContact = contactData;
+        setTarget(photoView);
+        return setCompressedImage(contactData.getPhotoBinaryData());
+    }
+
+    public void setTransitionDuration(int durationInMillis) {
+        mDurationInMillis = durationInMillis;
+    }
+
+    public ImageView getTarget() {
+        return mTarget;
+    }
+
+    /**
+     * Re-initialize to use new target. As a result, the next time a new image
+     * is set, it will immediately be applied to the target (there will be no
+     * fade transition).
+     */
+    protected void setTarget(ImageView target) {
+        if (mTarget != target) {
+            mTarget = target;
+            mCompressed = null;
+            mPreviousDrawable = null;
+        }
+    }
+
+    protected byte[] getCompressedImage() {
+        return mCompressed;
+    }
+
+    protected Bitmap setCompressedImage(byte[] compressed) {
+        if (mPreviousDrawable == null) {
+            // If we don't already have a drawable, skip the exit-early test
+            // below; otherwise we might not end up setting the default image.
+        } else if (mPreviousDrawable != null
+                && mPreviousDrawable instanceof BitmapDrawable
+                && Arrays.equals(mCompressed, compressed)) {
+            // TODO: the worst case is when the arrays are equal but not
+            // identical. This takes about 1ms (more with high-res photos). A
+            // possible optimization is to sparsely sample chunks of the arrays
+            // to compare.
+            return previousBitmap();
+        }
+
+        Drawable newDrawable = decodedBitmapDrawable(compressed);
+        if (newDrawable == null) {
+            newDrawable = defaultDrawable();
+        }
+
+        // Remember this for next time, so that we can check if it changed.
+        mCompressed = compressed;
+
+        // If we don't have a new Drawable, something went wrong... bail out.
+        if (newDrawable == null) return previousBitmap();
+
+        if (mPreviousDrawable == null || mDurationInMillis == 0) {
+            // Set the new one immediately.
+            mTarget.setImageDrawable(newDrawable);
+        } else {
+            // Set up a transition from the previous Drawable to the new one.
+            final Drawable[] beforeAndAfter = new Drawable[2];
+            beforeAndAfter[0] = mPreviousDrawable;
+            beforeAndAfter[1] = newDrawable;
+            final TransitionDrawable transition = new TransitionDrawable(beforeAndAfter);
+            mTarget.setImageDrawable(transition);
+            transition.startTransition(mDurationInMillis);
+        }
+
+        // Remember this for next time, so that we can transition from it to the
+        // new one.
+        mPreviousDrawable = newDrawable;
+
+        return previousBitmap();
+    }
+
+    private Bitmap previousBitmap() {
+        return (mPreviousDrawable == null) ? null
+                : mPreviousDrawable instanceof LetterTileDrawable ? null
+                : ((BitmapDrawable) mPreviousDrawable).getBitmap();
+    }
+
+    /**
+     * Obtain the default drawable for a contact when no photo is available. If this is a local
+     * contact, then use the contact's display name and lookup key (as a unique identifier) to
+     * retrieve a default drawable for this contact. If not, then use the name as the contact
+     * identifier instead.
+     */
+    private Drawable defaultDrawable() {
+        Resources resources = mTarget.getResources();
+        DefaultImageRequest request;
+        int contactType = ContactPhotoManager.TYPE_DEFAULT;
+
+        if (mContact.isDisplayNameFromOrganization()) {
+            contactType = ContactPhotoManager.TYPE_BUSINESS;
+        }
+
+        if (TextUtils.isEmpty(mContact.getLookupKey())) {
+            request = new DefaultImageRequest(null, mContact.getDisplayName(), contactType,
+                    false /* isCircular */);
+        } else {
+            request = new DefaultImageRequest(mContact.getDisplayName(), mContact.getLookupKey(),
+                    contactType, false /* isCircular */);
+        }
+        return ContactPhotoManager.getDefaultAvatarDrawableForContact(resources, true, request);
+    }
+
+    private BitmapDrawable decodedBitmapDrawable(byte[] compressed) {
+        if (compressed == null) {
+            return null;
+        }
+        final Resources rsrc = mTarget.getResources();
+        Bitmap bitmap = BitmapFactory.decodeByteArray(compressed, 0, compressed.length);
+        if (bitmap == null) {
+            return null;
+        }
+        if (bitmap.getHeight() != bitmap.getWidth()) {
+            // Crop the bitmap into a square.
+            final int size = Math.min(bitmap.getWidth(), bitmap.getHeight());
+            bitmap = ThumbnailUtils.extractThumbnail(bitmap, size, size);
+        }
+        return new BitmapDrawable(rsrc, bitmap);
+    }
+}
diff --git a/src/com/android/contacts/util/MoreMath.java b/src/com/android/contacts/util/MoreMath.java
new file mode 100644
index 0000000..db76fe4
--- /dev/null
+++ b/src/com/android/contacts/util/MoreMath.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.util;
+
+/**
+ * Useful math functions that aren't in java.lang.Math
+ */
+public class MoreMath {
+    /**
+     * If the input value lies outside of the specified range, return the nearer
+     * bound. Otherwise, return the input value, unchanged.
+     */
+    public static int clamp(int input, int lowerBound, int upperBound) {
+        if (input < lowerBound) return lowerBound;
+        if (input > upperBound) return upperBound;
+        return input;
+    }
+
+    /**
+     * If the input value lies outside of the specified range, return the nearer
+     * bound. Otherwise, return the input value, unchanged.
+     */
+    public static float clamp(float input, float lowerBound, float upperBound) {
+        if (input < lowerBound) return lowerBound;
+        if (input > upperBound) return upperBound;
+        return input;
+    }
+
+    /**
+     * If the input value lies outside of the specified range, return the nearer
+     * bound. Otherwise, return the input value, unchanged.
+     */
+    public static double clamp(double input, double lowerBound, double upperBound) {
+        if (input < lowerBound) return lowerBound;
+        if (input > upperBound) return upperBound;
+        return input;
+    }
+}
diff --git a/src/com/android/contacts/util/NotifyingAsyncQueryHandler.java b/src/com/android/contacts/util/NotifyingAsyncQueryHandler.java
new file mode 100644
index 0000000..c8cfc8d
--- /dev/null
+++ b/src/com/android/contacts/util/NotifyingAsyncQueryHandler.java
@@ -0,0 +1,66 @@
+/*
+ * 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.AsyncQueryHandler;
+import android.content.Context;
+import android.database.Cursor;
+
+import java.lang.ref.WeakReference;
+
+/**
+ * Slightly more abstract {@link AsyncQueryHandler} that helps keep a
+ * {@link WeakReference} back to a listener. Will properly close any
+ * {@link Cursor} if the listener ceases to exist.
+ * <p>
+ * This pattern can be used to perform background queries without leaking
+ * {@link Context} objects.
+ */
+public class NotifyingAsyncQueryHandler extends AsyncQueryHandler {
+    private WeakReference<AsyncQueryListener> mListener;
+
+    /**
+     * Interface to listen for completed query operations.
+     */
+    public interface AsyncQueryListener {
+        void onQueryComplete(int token, Object cookie, Cursor cursor);
+    }
+
+    public NotifyingAsyncQueryHandler(Context context, AsyncQueryListener listener) {
+        super(context.getContentResolver());
+        setQueryListener(listener);
+    }
+
+    /**
+     * Assign the given {@link AsyncQueryListener} to receive query events from
+     * asynchronous calls. Will replace any existing listener.
+     */
+    public void setQueryListener(AsyncQueryListener listener) {
+        mListener = new WeakReference<AsyncQueryListener>(listener);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
+        final AsyncQueryListener listener = mListener.get();
+        if (listener != null) {
+            listener.onQueryComplete(token, cookie, cursor);
+        } else if (cursor != null) {
+            cursor.close();
+        }
+    }
+}
diff --git a/src/com/android/contacts/util/PhoneCapabilityTester.java b/src/com/android/contacts/util/PhoneCapabilityTester.java
new file mode 100644
index 0000000..d1373f4
--- /dev/null
+++ b/src/com/android/contacts/util/PhoneCapabilityTester.java
@@ -0,0 +1,105 @@
+/*
+ * 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.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.net.Uri;
+import android.net.sip.SipManager;
+import android.provider.MediaStore;
+import android.provider.Telephony;
+import android.telephony.TelephonyManager;
+
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.compat.TelephonyManagerCompat;
+
+import java.util.List;
+
+/**
+ * Provides static functions to quickly test the capabilities of this device. The static
+ * members are not safe for threading
+ */
+public final class PhoneCapabilityTester {
+    private static boolean sIsInitialized;
+    private static boolean sIsPhone;
+    private static boolean sIsSipPhone;
+
+    /**
+     * Tests whether the Intent has a receiver registered. This can be used to show/hide
+     * functionality (like Phone, SMS)
+     */
+    public static boolean isIntentRegistered(Context context, Intent intent) {
+        final PackageManager packageManager = context.getPackageManager();
+        final List<ResolveInfo> receiverList = packageManager.queryIntentActivities(intent,
+                PackageManager.MATCH_DEFAULT_ONLY);
+        return receiverList.size() > 0;
+    }
+
+    /**
+     * Returns true if this device can be used to make phone calls
+     */
+    public static boolean isPhone(Context context) {
+        if (!sIsInitialized) initialize(context);
+        // Is the device physically capabable of making phone calls?
+        return sIsPhone;
+    }
+
+    private static void initialize(Context context) {
+        sIsPhone = TelephonyManagerCompat.isVoiceCapable(
+                (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE));
+        sIsSipPhone = sIsPhone && SipManager.isVoipSupported(context);
+        sIsInitialized = true;
+    }
+
+    /**
+     * Returns true if this device can be used to make sip calls
+     */
+    public static boolean isSipPhone(Context context) {
+        if (!sIsInitialized) initialize(context);
+        return sIsSipPhone;
+    }
+
+    /**
+     * Returns the component name to use for sending to sms or null.
+     */
+    public static ComponentName getSmsComponent(Context context) {
+        String smsPackage = Telephony.Sms.getDefaultSmsPackage(context);
+        if (smsPackage != null) {
+            final PackageManager packageManager = context.getPackageManager();
+            final Intent intent = new Intent(Intent.ACTION_SENDTO,
+                    Uri.fromParts(ContactsUtils.SCHEME_SMSTO, "", null));
+            final List<ResolveInfo> resolveInfos = packageManager.queryIntentActivities(intent, 0);
+            for (ResolveInfo resolveInfo : resolveInfos) {
+                if (smsPackage.equals(resolveInfo.activityInfo.packageName)) {
+                    return new ComponentName(smsPackage, resolveInfo.activityInfo.name);
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Returns true if there is a camera on the device
+     */
+    public static boolean isCameraIntentRegistered(Context context) {
+        final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+        return isIntentRegistered(context, intent);
+    }
+}
diff --git a/src/com/android/contacts/util/PhonebookCollatorFactory.java b/src/com/android/contacts/util/PhonebookCollatorFactory.java
new file mode 100644
index 0000000..f9847ee
--- /dev/null
+++ b/src/com/android/contacts/util/PhonebookCollatorFactory.java
@@ -0,0 +1,30 @@
+/*
+ * 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 java.text.Collator;
+import java.util.Locale;
+
+/**
+ * Returns the collator that can be used to sort contact list entries. This
+ * collator is the same as the one that is used in sqlite.
+ */
+public final class PhonebookCollatorFactory {
+    public static final Collator getCollator() {
+        return Collator.getInstance(Locale.getDefault());
+    }
+}
diff --git a/src/com/android/contacts/util/SchedulingUtils.java b/src/com/android/contacts/util/SchedulingUtils.java
new file mode 100644
index 0000000..fbb2458
--- /dev/null
+++ b/src/com/android/contacts/util/SchedulingUtils.java
@@ -0,0 +1,54 @@
+/*
+ * 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.view.View;
+import android.view.ViewTreeObserver.OnDrawListener;
+import android.view.ViewTreeObserver.OnGlobalLayoutListener;
+import android.view.ViewTreeObserver.OnPreDrawListener;
+
+/** Static methods that are useful for scheduling actions to occur at a later time. */
+public class SchedulingUtils {
+
+
+    /** Runs a piece of code after the next layout run */
+    public static void doAfterLayout(final View view, final Runnable runnable) {
+        final OnGlobalLayoutListener listener = new OnGlobalLayoutListener() {
+            @Override
+            public void onGlobalLayout() {
+                // Layout pass done, unregister for further events
+                view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
+                runnable.run();
+            }
+        };
+        view.getViewTreeObserver().addOnGlobalLayoutListener(listener);
+    }
+
+    /** Runs a piece of code just before the next draw, after layout and measurement */
+    public static void doOnPreDraw(final View view, final boolean drawNextFrame,
+            final Runnable runnable) {
+        final OnPreDrawListener listener = new OnPreDrawListener() {
+            @Override
+            public boolean onPreDraw() {
+                view.getViewTreeObserver().removeOnPreDrawListener(this);
+                runnable.run();
+                return drawNextFrame;
+            }
+        };
+        view.getViewTreeObserver().addOnPreDrawListener(listener);
+    }
+}
diff --git a/src/com/android/contacts/util/SharedPreferenceUtil.java b/src/com/android/contacts/util/SharedPreferenceUtil.java
new file mode 100644
index 0000000..e33c7aa
--- /dev/null
+++ b/src/com/android/contacts/util/SharedPreferenceUtil.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.util;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+public class SharedPreferenceUtil {
+
+    private static final String PREFERENCE_KEY_HAMBURGER_PROMO_DISPLAYED_BEFORE =
+            "hamburgerPromoDisplayedBefore";
+
+    private static final String PREFERENCE_KEY_HAMBURGER_MENU_CLICKED_BEFORE =
+            "hamburgerMenuClickedBefore";
+
+    private static final String PREFERENCE_KEY_HAMBURGER_PROMO_TRIGGER_ACTION_HAPPENED_BEFORE =
+            "hamburgerPromoTriggerActionHappenedBefore";
+
+    public static boolean getHamburgerPromoDisplayedBefore(Context context) {
+        return getSharedPreferences(context)
+                .getBoolean(PREFERENCE_KEY_HAMBURGER_PROMO_DISPLAYED_BEFORE, false);
+    }
+
+    public static void setHamburgerPromoDisplayedBefore(Context context) {
+        getSharedPreferences(context).edit()
+                .putBoolean(PREFERENCE_KEY_HAMBURGER_PROMO_DISPLAYED_BEFORE, true)
+                .apply();
+    }
+
+    public static boolean getHamburgerMenuClickedBefore(Context context) {
+        return getSharedPreferences(context)
+                .getBoolean(PREFERENCE_KEY_HAMBURGER_MENU_CLICKED_BEFORE, false);
+    }
+
+    public static void setHamburgerMenuClickedBefore(Context context) {
+        getSharedPreferences(context).edit()
+                .putBoolean(PREFERENCE_KEY_HAMBURGER_MENU_CLICKED_BEFORE, true)
+                .apply();
+    }
+
+    public static boolean getHamburgerPromoTriggerActionHappenedBefore(Context context) {
+        return getSharedPreferences(context)
+                .getBoolean(PREFERENCE_KEY_HAMBURGER_PROMO_TRIGGER_ACTION_HAPPENED_BEFORE, false);
+    }
+
+    public static void setHamburgerPromoTriggerActionHappenedBefore(Context context) {
+        getSharedPreferences(context).edit()
+                .putBoolean(PREFERENCE_KEY_HAMBURGER_PROMO_TRIGGER_ACTION_HAPPENED_BEFORE, true)
+                .apply();
+    }
+
+    /**
+     * 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);
+    }
+
+    private static SharedPreferences getSharedPreferences(Context context) {
+        return context.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE);
+    }
+}
diff --git a/src/com/android/contacts/util/StructuredPostalUtils.java b/src/com/android/contacts/util/StructuredPostalUtils.java
new file mode 100644
index 0000000..6e46176
--- /dev/null
+++ b/src/com/android/contacts/util/StructuredPostalUtils.java
@@ -0,0 +1,41 @@
+/*
+ * 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.Intent;
+import android.net.Uri;
+
+public class StructuredPostalUtils {
+    private StructuredPostalUtils() {
+    }
+
+    public static Intent getViewPostalAddressIntent(String postalAddress) {
+        return new Intent(Intent.ACTION_VIEW, getPostalAddressUri(postalAddress));
+    }
+
+    public static Uri getPostalAddressUri(String postalAddress) {
+        return Uri.parse("geo:0,0?q=" + Uri.encode(postalAddress));
+    }
+
+    public static Intent getViewPostalAddressDirectionsIntent(String postalAddress) {
+        return new Intent(Intent.ACTION_VIEW, getPostalAddressDirectionsUri(postalAddress));
+    }
+
+    public static Uri getPostalAddressDirectionsUri(String postalAddress) {
+        return Uri.parse("https://maps.google.com/maps?daddr=" + Uri.encode(postalAddress));
+    }
+}
diff --git a/src/com/android/contacts/util/ThemeUtils.java b/src/com/android/contacts/util/ThemeUtils.java
new file mode 100644
index 0000000..d8326d5
--- /dev/null
+++ b/src/com/android/contacts/util/ThemeUtils.java
@@ -0,0 +1,48 @@
+/*
+ * 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.res.Resources.Theme;
+import android.util.TypedValue;
+
+/**
+ * Provides static functions to more easily resolve attributes of the current theme
+ */
+public class ThemeUtils {
+    /**
+     * Resolves the given attribute id of the theme to a resource id
+     */
+    public static int getAttribute(Theme theme, int attrId) {
+        final TypedValue outValue = new TypedValue();
+        theme.resolveAttribute(attrId, outValue, true);
+        return outValue.resourceId;
+    }
+
+    /**
+     * Returns the resource id of the background used for buttons to show pressed and focused state
+     */
+    public static int getSelectableItemBackground(Theme theme) {
+        return getAttribute(theme, android.R.attr.selectableItemBackground);
+    }
+
+    /**
+     * Returns the resource id of the background used for list items that show activated background
+     */
+    public static int getActivatedBackground(Theme theme) {
+        return getAttribute(theme, android.R.attr.activatedBackgroundIndicator);
+    }
+}
diff --git a/src/com/android/contacts/util/UiClosables.java b/src/com/android/contacts/util/UiClosables.java
new file mode 100644
index 0000000..3f960b1
--- /dev/null
+++ b/src/com/android/contacts/util/UiClosables.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.util;
+
+import android.widget.ListPopupWindow;
+
+/**
+ * Methods for closing various objects
+ */
+public class UiClosables {
+
+    /**
+     * Close a {@link ListPopupWindow}.
+     *
+     * @param popup The popup window to close.
+     * @return {@code true} if the popup was showing. {@code false} otherwise.
+     */
+    public static boolean closeQuietly(ListPopupWindow popup) {
+        if (popup != null && popup.isShowing()) {
+            popup.dismiss();
+            return true;
+        }
+        return false;
+    }
+}
diff --git a/src/com/android/contacts/widget/AlphaTouchInterceptorOverlay.java b/src/com/android/contacts/widget/AlphaTouchInterceptorOverlay.java
new file mode 100644
index 0000000..f203193
--- /dev/null
+++ b/src/com/android/contacts/widget/AlphaTouchInterceptorOverlay.java
@@ -0,0 +1,92 @@
+/*
+ * 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.view.View;
+import android.widget.FrameLayout;
+
+import com.android.contacts.detail.ContactDisplayUtils;
+import com.android.contacts.util.ThemeUtils;
+
+/**
+ * A View that other Views can use to create a touch-interceptor layer above
+ * their other sub-views. This layer can be enabled and disabled; when enabled,
+ * clicks are intercepted and passed to a listener.
+ *
+ * Also supports an alpha layer to dim the content underneath.  By default, the
+ * alpha layer is the same View as the touch-interceptor layer.  However, for
+ * some use-cases, you want a few Views to not be dimmed, but still have touches
+ * intercepted (for example, {@link CarouselTab}'s label appears above the alpha
+ * layer).  In this case, you can specify the View to use as the alpha layer via
+ * setAlphaLayer(); in this case you are responsible for managing the z-order of
+ * the alpha-layer with respect to your other sub-views.
+ *
+ * Typically, you would not use this class directly, but rather use another class
+ * that uses it, for example {@link FrameLayoutWithOverlay}.
+ */
+public class AlphaTouchInterceptorOverlay extends FrameLayout {
+
+    private View mInterceptorLayer;
+    private View mAlphaLayer;
+    private float mAlpha = 0.0f;
+
+    public AlphaTouchInterceptorOverlay(Context context) {
+        super(context);
+
+        mInterceptorLayer = new View(context);
+        final int resId = ThemeUtils.getSelectableItemBackground(context.getTheme());
+        mInterceptorLayer.setBackgroundResource(resId);
+        addView(mInterceptorLayer);
+
+        mAlphaLayer = this;
+    }
+
+    /**
+     * Set the View that the overlay will use as its alpha-layer.  If
+     * none is set it will use itself.  Only necessary to set this if
+     * some child views need to appear above the alpha-layer but below
+     * the touch-interceptor.
+     */
+    public void setAlphaLayer(View alphaLayer) {
+        if (mAlphaLayer == alphaLayer) return;
+
+        // We're no longer the alpha-layer, so make ourself invisible.
+        if (mAlphaLayer == this) ContactDisplayUtils.setAlphaOnViewBackground(this, 0.0f);
+
+        mAlphaLayer = (alphaLayer == null) ? this : alphaLayer;
+        setAlphaLayerValue(mAlpha);
+    }
+
+    /** Sets the alpha value on the alpha layer. */
+    public void setAlphaLayerValue(float alpha) {
+        mAlpha = alpha;
+        if (mAlphaLayer != null) {
+            ContactDisplayUtils.setAlphaOnViewBackground(mAlphaLayer, mAlpha);
+        }
+    }
+
+    /** Delegate to interceptor-layer. */
+    public void setOverlayOnClickListener(OnClickListener listener) {
+        mInterceptorLayer.setOnClickListener(listener);
+    }
+
+    /** Delegate to interceptor-layer. */
+    public void setOverlayClickable(boolean clickable) {
+        mInterceptorLayer.setClickable(clickable);
+    }
+}
diff --git a/src/com/android/contacts/widget/CompositeListAdapter.java b/src/com/android/contacts/widget/CompositeListAdapter.java
new file mode 100644
index 0000000..4c72ee8
--- /dev/null
+++ b/src/com/android/contacts/widget/CompositeListAdapter.java
@@ -0,0 +1,230 @@
+/*
+ * 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.widget;
+
+import android.database.DataSetObserver;
+import android.view.View;
+import android.view.ViewGroup;
+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;
+
+    private ListAdapter[] mAdapters;
+    private int[] mCounts;
+    private int[] mViewTypeCounts;
+    private int mSize = 0;
+    private int mCount = 0;
+    private int mViewTypeCount = 0;
+    private boolean mAllItemsEnabled = true;
+    private boolean mCacheValid = true;
+
+    private DataSetObserver mDataSetObserver = new DataSetObserver() {
+
+        @Override
+        public void onChanged() {
+            invalidate();
+            notifyDataChanged();
+        }
+
+        @Override
+        public void onInvalidated() {
+            invalidate();
+            notifyDataChanged();
+        }
+    };
+
+    public CompositeListAdapter() {
+        this(INITIAL_CAPACITY);
+    }
+
+    public CompositeListAdapter(int initialCapacity) {
+        mAdapters = new ListAdapter[INITIAL_CAPACITY];
+        mCounts = new int[INITIAL_CAPACITY];
+        mViewTypeCounts = new int[INITIAL_CAPACITY];
+    }
+
+    @VisibleForTesting
+    /*package*/ void addAdapter(ListAdapter adapter) {
+        if (mSize >= mAdapters.length) {
+            int newCapacity = mSize + 2;
+            ListAdapter[] newAdapters = new ListAdapter[newCapacity];
+            System.arraycopy(mAdapters, 0, newAdapters, 0, mSize);
+            mAdapters = newAdapters;
+
+            int[] newCounts = new int[newCapacity];
+            System.arraycopy(mCounts, 0, newCounts, 0, mSize);
+            mCounts = newCounts;
+
+            int[] newViewTypeCounts = new int[newCapacity];
+            System.arraycopy(mViewTypeCounts, 0, newViewTypeCounts, 0, mSize);
+            mViewTypeCounts = newViewTypeCounts;
+        }
+
+        adapter.registerDataSetObserver(mDataSetObserver);
+
+        int count = adapter.getCount();
+        int viewTypeCount = adapter.getViewTypeCount();
+
+        mAdapters[mSize] = adapter;
+        mCounts[mSize] = count;
+        mCount += count;
+        mAllItemsEnabled &= adapter.areAllItemsEnabled();
+        mViewTypeCounts[mSize] = viewTypeCount;
+        mViewTypeCount += viewTypeCount;
+        mSize++;
+
+        notifyDataChanged();
+    }
+
+    protected void notifyDataChanged() {
+        if (getCount() > 0) {
+            notifyDataSetChanged();
+        } else {
+            notifyDataSetInvalidated();
+        }
+    }
+
+    protected void invalidate() {
+        mCacheValid = false;
+    }
+
+    protected void ensureCacheValid() {
+        if (mCacheValid) {
+            return;
+        }
+
+        mCount = 0;
+        mAllItemsEnabled = true;
+        mViewTypeCount = 0;
+        for (int i = 0; i < mSize; i++) {
+            int count = mAdapters[i].getCount();
+            int viewTypeCount = mAdapters[i].getViewTypeCount();
+            mCounts[i] = count;
+            mCount += count;
+            mAllItemsEnabled &= mAdapters[i].areAllItemsEnabled();
+            mViewTypeCount += viewTypeCount;
+        }
+
+        mCacheValid = true;
+    }
+
+    public int getCount() {
+        ensureCacheValid();
+        return mCount;
+    }
+
+    public Object getItem(int position) {
+        ensureCacheValid();
+        int start = 0;
+        for (int i = 0; i < mCounts.length; i++) {
+            int end = start + mCounts[i];
+            if (position >= start && position < end) {
+                return mAdapters[i].getItem(position - start);
+            }
+            start = end;
+        }
+
+        throw new ArrayIndexOutOfBoundsException(position);
+    }
+
+    public long getItemId(int position) {
+        ensureCacheValid();
+        int start = 0;
+        for (int i = 0; i < mCounts.length; i++) {
+            int end = start + mCounts[i];
+            if (position >= start && position < end) {
+                return mAdapters[i].getItemId(position - start);
+            }
+            start = end;
+        }
+
+        throw new ArrayIndexOutOfBoundsException(position);
+    }
+
+    @Override
+    public int getViewTypeCount() {
+        ensureCacheValid();
+        return mViewTypeCount;
+    }
+
+    @Override
+    public int getItemViewType(int position) {
+        ensureCacheValid();
+        int start = 0;
+        int viewTypeOffset = 0;
+        for (int i = 0; i < mCounts.length; i++) {
+            int end = start + mCounts[i];
+            if (position >= start && position < end) {
+                return viewTypeOffset + mAdapters[i].getItemViewType(position - start);
+            }
+            viewTypeOffset += mViewTypeCounts[i];
+            start = end;
+        }
+
+        throw new ArrayIndexOutOfBoundsException(position);
+    }
+
+    public View getView(int position, View convertView, ViewGroup parent) {
+        ensureCacheValid();
+        int start = 0;
+        for (int i = 0; i < mCounts.length; i++) {
+            int end = start + mCounts[i];
+            if (position >= start && position < end) {
+                return mAdapters[i].getView(position - start, convertView, parent);
+            }
+            start = end;
+        }
+
+        throw new ArrayIndexOutOfBoundsException(position);
+    }
+
+    @Override
+    public boolean areAllItemsEnabled() {
+        ensureCacheValid();
+        return mAllItemsEnabled;
+    }
+
+    @Override
+    public boolean isEnabled(int position) {
+        ensureCacheValid();
+        int start = 0;
+        for (int i = 0; i < mCounts.length; i++) {
+            int end = start + mCounts[i];
+            if (position >= start && position < end) {
+                return mAdapters[i].areAllItemsEnabled()
+                        || mAdapters[i].isEnabled(position - start);
+            }
+            start = end;
+        }
+
+        throw new ArrayIndexOutOfBoundsException(position);
+    }
+}
diff --git a/src/com/android/contacts/widget/ContextMenuAdapter.java b/src/com/android/contacts/widget/ContextMenuAdapter.java
new file mode 100644
index 0000000..660274a
--- /dev/null
+++ b/src/com/android/contacts/widget/ContextMenuAdapter.java
@@ -0,0 +1,30 @@
+/*
+ * 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.widget;
+
+import android.view.MenuItem;
+import android.view.View;
+
+/**
+ * An adapter for the contextual menu.
+ */
+public interface ContextMenuAdapter extends View.OnCreateContextMenuListener {
+
+    /**
+     * See {@link android.app.Activity#onContextItemSelected}.
+     */
+    boolean onContextItemSelected(MenuItem item);
+}
diff --git a/src/com/android/contacts/widget/FrameLayoutWithOverlay.java b/src/com/android/contacts/widget/FrameLayoutWithOverlay.java
new file mode 100644
index 0000000..6d7106b
--- /dev/null
+++ b/src/com/android/contacts/widget/FrameLayoutWithOverlay.java
@@ -0,0 +1,72 @@
+/*
+ * 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.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+
+/**
+ * A FrameLayout whose contents are kept beneath an {@link AlphaTouchInterceptorOverlay}.
+ * If necessary, you can specify your own alpha-layer and manually manage its z-order.
+ */
+public class FrameLayoutWithOverlay extends FrameLayout {
+    private final AlphaTouchInterceptorOverlay mOverlay;
+
+    public FrameLayoutWithOverlay(Context context, AttributeSet attrs) {
+        super(context, attrs);
+
+        // Programmatically create touch-interceptor View.
+        mOverlay = new AlphaTouchInterceptorOverlay(context);
+
+        addView(mOverlay);
+    }
+
+    /** After adding the View, bring the overlay to the front to ensure it's always on top. */
+    @Override
+    public void addView(View child, int index, ViewGroup.LayoutParams params) {
+        super.addView(child, index, params);
+        mOverlay.bringToFront();
+    }
+
+    /**
+     * Delegate to overlay:  set the View that it will use as its alpha-layer.
+     * If none is set, the overlay will use its own alpha layer.  Only
+     * necessary to set this if some child views need to appear above the
+     * alpha-layer.
+     */
+    protected void setAlphaLayer(View layer) {
+        mOverlay.setAlphaLayer(layer);
+    }
+
+    /** Delegate to overlay: set the alpha value on the alpha layer. */
+    public void setAlphaLayerValue(float alpha) {
+        mOverlay.setAlphaLayerValue(alpha);
+    }
+
+    /** Delegate to overlay. */
+    public void setOverlayOnClickListener(OnClickListener listener) {
+        mOverlay.setOverlayOnClickListener(listener);
+    }
+
+    /** Delegate to overlay. */
+    public void setOverlayClickable(boolean clickable) {
+        mOverlay.setOverlayClickable(clickable);
+    }
+}
diff --git a/src/com/android/contacts/widget/FullHeightLinearLayout.java b/src/com/android/contacts/widget/FullHeightLinearLayout.java
new file mode 100644
index 0000000..f9548a6
--- /dev/null
+++ b/src/com/android/contacts/widget/FullHeightLinearLayout.java
@@ -0,0 +1,51 @@
+/*
+ * 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.widget;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.LinearLayout;
+
+/**
+ * A custom layout for dialogs that need to be stretched to the full height of the screen.
+ * It overrides the height measure specification to ignore "wrap_content" and
+ * do "match_parent" instead.  The "wrap_content" part is hard-coded in the framework
+ * implementation of the dialog theme.
+ */
+public final class FullHeightLinearLayout extends LinearLayout {
+
+    public FullHeightLinearLayout(Context context) {
+        super(context);
+    }
+
+    public FullHeightLinearLayout(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public FullHeightLinearLayout(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.AT_MOST) {
+            heightMeasureSpec = MeasureSpec.makeMeasureSpec(
+                    MeasureSpec.getSize(heightMeasureSpec), MeasureSpec.EXACTLY);
+        }
+        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+    }
+}
diff --git a/src/com/android/contacts/widget/InterpolatingLayout.java b/src/com/android/contacts/widget/InterpolatingLayout.java
new file mode 100644
index 0000000..9ad4e1f
--- /dev/null
+++ b/src/com/android/contacts/widget/InterpolatingLayout.java
@@ -0,0 +1,318 @@
+/*
+ * 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.widget;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Rect;
+import android.util.AttributeSet;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+
+import com.android.contacts.R;
+
+/**
+ * Layout similar to LinearLayout that allows a child to specify examples of
+ * desired size depending on the parent size. For example if the widget wants to
+ * be 100dip when parent is 200dip and 110dip when parent is 400dip, the layout
+ * will ensure these requirements and interpolate for other parent sizes.
+ * You can also specify minWidth for each child.  You can have at most one
+ * child with layout_width="match_parent" - it will take the entire remaining
+ * space.
+ */
+public class InterpolatingLayout extends ViewGroup {
+
+    private Rect mInRect = new Rect();
+    private Rect mOutRect = new Rect();
+
+    public InterpolatingLayout(Context context) {
+        super(context);
+    }
+
+    public InterpolatingLayout(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public InterpolatingLayout(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    public final static class LayoutParams extends LinearLayout.LayoutParams {
+
+        public int narrowParentWidth;
+        public int narrowWidth;
+        public int narrowMarginLeft;
+        public int narrowPaddingLeft;
+        public int narrowMarginRight;
+        public int narrowPaddingRight;
+        public int wideParentWidth;
+        public int wideWidth;
+        public int wideMarginLeft;
+        public int widePaddingLeft;
+        public int wideMarginRight;
+        public int widePaddingRight;
+        private float widthMultiplier;
+        private int widthConstant;
+        private float leftMarginMultiplier;
+        private int leftMarginConstant;
+        private float leftPaddingMultiplier;
+        private int leftPaddingConstant;
+        private float rightMarginMultiplier;
+        private int rightMarginConstant;
+        private float rightPaddingMultiplier;
+        private int rightPaddingConstant;
+
+        public LayoutParams(Context c, AttributeSet attrs) {
+            super(c, attrs);
+            TypedArray a = c.obtainStyledAttributes(attrs, R.styleable.InterpolatingLayout_Layout);
+
+            narrowParentWidth = a.getDimensionPixelSize(
+                    R.styleable.InterpolatingLayout_Layout_layout_narrowParentWidth, -1);
+            narrowWidth = a.getDimensionPixelSize(
+                    R.styleable.InterpolatingLayout_Layout_layout_narrowWidth, -1);
+            narrowMarginLeft = a.getDimensionPixelSize(
+                    R.styleable.InterpolatingLayout_Layout_layout_narrowMarginLeft, -1);
+            narrowPaddingLeft = a.getDimensionPixelSize(
+                    R.styleable.InterpolatingLayout_Layout_layout_narrowPaddingLeft, -1);
+            narrowMarginRight = a.getDimensionPixelSize(
+                    R.styleable.InterpolatingLayout_Layout_layout_narrowMarginRight, -1);
+            narrowPaddingRight = a.getDimensionPixelSize(
+                    R.styleable.InterpolatingLayout_Layout_layout_narrowPaddingRight, -1);
+            wideParentWidth = a.getDimensionPixelSize(
+                    R.styleable.InterpolatingLayout_Layout_layout_wideParentWidth, -1);
+            wideWidth = a.getDimensionPixelSize(
+                    R.styleable.InterpolatingLayout_Layout_layout_wideWidth, -1);
+            wideMarginLeft = a.getDimensionPixelSize(
+                    R.styleable.InterpolatingLayout_Layout_layout_wideMarginLeft, -1);
+            widePaddingLeft = a.getDimensionPixelSize(
+                    R.styleable.InterpolatingLayout_Layout_layout_widePaddingLeft, -1);
+            wideMarginRight = a.getDimensionPixelSize(
+                    R.styleable.InterpolatingLayout_Layout_layout_wideMarginRight, -1);
+            widePaddingRight = a.getDimensionPixelSize(
+                    R.styleable.InterpolatingLayout_Layout_layout_widePaddingRight, -1);
+
+            a.recycle();
+
+            if (narrowWidth != -1) {
+                widthMultiplier = (float) (wideWidth - narrowWidth)
+                        / (wideParentWidth - narrowParentWidth);
+                widthConstant = (int) (narrowWidth - narrowParentWidth * widthMultiplier);
+            }
+
+            if (narrowMarginLeft != -1) {
+                leftMarginMultiplier = (float) (wideMarginLeft - narrowMarginLeft)
+                        / (wideParentWidth - narrowParentWidth);
+                leftMarginConstant = (int) (narrowMarginLeft - narrowParentWidth
+                        * leftMarginMultiplier);
+            }
+
+            if (narrowPaddingLeft != -1) {
+                leftPaddingMultiplier = (float) (widePaddingLeft - narrowPaddingLeft)
+                        / (wideParentWidth - narrowParentWidth);
+                leftPaddingConstant = (int) (narrowPaddingLeft - narrowParentWidth
+                        * leftPaddingMultiplier);
+            }
+
+            if (narrowMarginRight != -1) {
+                rightMarginMultiplier = (float) (wideMarginRight - narrowMarginRight)
+                        / (wideParentWidth - narrowParentWidth);
+                rightMarginConstant = (int) (narrowMarginRight - narrowParentWidth
+                        * rightMarginMultiplier);
+            }
+
+            if (narrowPaddingRight != -1) {
+                rightPaddingMultiplier = (float) (widePaddingRight - narrowPaddingRight)
+                        / (wideParentWidth - narrowParentWidth);
+                rightPaddingConstant = (int) (narrowPaddingRight - narrowParentWidth
+                        * rightPaddingMultiplier);
+            }
+        }
+
+        public LayoutParams(int width, int height) {
+            super(width, height);
+        }
+
+        public LayoutParams(MarginLayoutParams source) {
+            super(source);
+        }
+
+        public int resolveWidth(int parentSize) {
+            if (narrowWidth == -1) {
+                return width;
+            } else {
+                int w = (int) (parentSize * widthMultiplier) + widthConstant;
+                return w <= 0 ? WRAP_CONTENT : w;
+            }
+        }
+
+        public int resolveLeftMargin(int parentSize) {
+            if (narrowMarginLeft == -1) {
+                return leftMargin;
+            } else {
+                int w = (int) (parentSize * leftMarginMultiplier) + leftMarginConstant;
+                return w < 0 ? 0 : w;
+            }
+        }
+
+        public int resolveLeftPadding(int parentSize) {
+            int w = (int) (parentSize * leftPaddingMultiplier) + leftPaddingConstant;
+            return w < 0 ? 0 : w;
+        }
+
+        public int resolveRightMargin(int parentSize) {
+            if (narrowMarginRight == -1) {
+                return rightMargin;
+            } else {
+                int w = (int) (parentSize * rightMarginMultiplier) + rightMarginConstant;
+                return w < 0 ? 0 : w;
+            }
+        }
+
+        public int resolveRightPadding(int parentSize) {
+            int w = (int) (parentSize * rightPaddingMultiplier) + rightPaddingConstant;
+            return w < 0 ? 0 : w;
+        }
+    }
+
+    @Override
+    public LayoutParams generateLayoutParams(AttributeSet attrs) {
+        return new LayoutParams(getContext(), attrs);
+    }
+
+    @Override
+    protected LayoutParams generateDefaultLayoutParams() {
+        return new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
+        int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
+
+        int width = 0;
+        int height = 0;
+
+        View fillChild = null;
+        int count = getChildCount();
+        for (int i = 0; i < count; i++) {
+            View child = getChildAt(i);
+            if (child.getVisibility() == View.GONE) {
+                continue;
+            }
+
+            LayoutParams params = (LayoutParams) child.getLayoutParams();
+            if (params.width == LayoutParams.MATCH_PARENT) {
+                if (fillChild != null) {
+                    throw new RuntimeException(
+                            "Interpolating layout allows at most one child"
+                            + " with layout_width='match_parent'");
+                }
+                fillChild = child;
+            } else {
+                int childWidth = params.resolveWidth(parentWidth);
+                int childWidthMeasureSpec;
+                switch (childWidth) {
+                    case LayoutParams.WRAP_CONTENT:
+                        childWidthMeasureSpec = MeasureSpec.UNSPECIFIED;
+                        break;
+                    default:
+                        childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(
+                                childWidth, MeasureSpec.EXACTLY);
+                        break;
+                }
+
+                int childHeightMeasureSpec;
+                switch (params.height) {
+                    case LayoutParams.WRAP_CONTENT:
+                        childHeightMeasureSpec = MeasureSpec.UNSPECIFIED;
+                        break;
+                    case LayoutParams.MATCH_PARENT:
+                        childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(
+                                parentHeight - params.topMargin - params.bottomMargin,
+                                MeasureSpec.EXACTLY);
+                        break;
+                    default:
+                        childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(
+                                params.height, MeasureSpec.EXACTLY);
+                        break;
+                }
+
+                child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
+                width += child.getMeasuredWidth();
+                height = Math.max(child.getMeasuredHeight(), height);
+            }
+
+            width += params.resolveLeftMargin(parentWidth) + params.resolveRightMargin(parentWidth);
+        }
+
+        if (fillChild != null) {
+            int remainder = parentWidth - width;
+            int childMeasureSpec = remainder > 0
+                    ? MeasureSpec.makeMeasureSpec(remainder, MeasureSpec.EXACTLY)
+                    : MeasureSpec.UNSPECIFIED;
+            fillChild.measure(childMeasureSpec, heightMeasureSpec);
+            width += fillChild.getMeasuredWidth();
+            height = Math.max(fillChild.getMeasuredHeight(), height);
+        }
+
+        setMeasuredDimension(
+                resolveSize(width, widthMeasureSpec), resolveSize(height, heightMeasureSpec));
+    }
+
+    @Override
+    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+        int offset = 0;
+        int width = right - left;
+        int count = getChildCount();
+        for (int i = 0; i < count; i++) {
+            View child = getChildAt(i);
+
+            if (child.getVisibility() == View.GONE) {
+                continue;
+            }
+
+            LayoutParams params = (LayoutParams) child.getLayoutParams();
+            int gravity = params.gravity;
+            if (gravity == -1) {
+                gravity = Gravity.START | Gravity.TOP;
+            }
+
+            if (params.narrowPaddingLeft != -1 || params.narrowPaddingRight != -1) {
+                int leftPadding = params.narrowPaddingLeft == -1 ? child.getPaddingLeft()
+                        : params.resolveLeftPadding(width);
+                int rightPadding = params.narrowPaddingRight == -1 ? child.getPaddingRight()
+                        : params.resolveRightPadding(width);
+                child.setPadding(
+                        leftPadding, child.getPaddingTop(), rightPadding, child.getPaddingBottom());
+            }
+
+            int leftMargin = params.resolveLeftMargin(width);
+            int rightMargin = params.resolveRightMargin(width);
+
+            mInRect.set(offset + leftMargin, params.topMargin,
+                    right - rightMargin, bottom - params.bottomMargin);
+
+            Gravity.apply(gravity, child.getMeasuredWidth(), child.getMeasuredHeight(),
+                    mInRect, mOutRect);
+            child.layout(mOutRect.left, mOutRect.top, mOutRect.right, mOutRect.bottom);
+
+            offset = mOutRect.right + rightMargin;
+        }
+    }
+}
diff --git a/src/com/android/contacts/widget/MultiShrinkScroller.java b/src/com/android/contacts/widget/MultiShrinkScroller.java
new file mode 100644
index 0000000..b1deb90
--- /dev/null
+++ b/src/com/android/contacts/widget/MultiShrinkScroller.java
@@ -0,0 +1,1370 @@
+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;
+import android.animation.ObjectAnimator;
+import android.animation.ValueAnimator;
+import android.animation.ValueAnimator.AnimatorUpdateListener;
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.ColorMatrix;
+import android.graphics.ColorMatrixColorFilter;
+import android.graphics.drawable.GradientDrawable;
+import android.hardware.display.DisplayManager;
+import android.os.Trace;
+import android.support.v4.view.ViewCompat;
+import android.support.v4.view.animation.PathInterpolatorCompat;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.Display;
+import android.view.Gravity;
+import android.view.MotionEvent;
+import android.view.VelocityTracker;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewConfiguration;
+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.TextView;
+import android.widget.Toolbar;
+
+/**
+ * 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
+ * minimum or maximum value.
+ *
+ * MultiShrinkScroller is designed for a specific problem. As such, this class is designed to be
+ * used with a specific layout file: quickcontact_activity.xml. MultiShrinkScroller expects subviews
+ * with specific ID values.
+ *
+ * MultiShrinkScroller's code is heavily influenced by ScrollView. Nonetheless, several ScrollView
+ * features are missing. For example: handling of KEYCODES, OverScroll bounce and saving
+ * scroll state in savedInstanceState bundles.
+ *
+ * Before copying this approach to nested scrolling, consider whether something simpler & less
+ * customized will work for you. For example, see the re-usable StickyHeaderListView used by
+ * WifiSetupActivity (very nice). Alternatively, check out Google+'s cover photo scrolling or
+ * Android L's built in nested scrolling support. I thought I needed a more custom ViewGroup in
+ * order to track velocity, modify EdgeEffect color & perform the originally specified animations.
+ * As a result this ViewGroup has non-standard talkback and keyboard support.
+ */
+public class MultiShrinkScroller extends FrameLayout {
+
+    /**
+     * 1000 pixels per second. Ie, 1 pixel per millisecond.
+     */
+    private static final int PIXELS_PER_SECOND = 1000;
+
+    /**
+     * Length of the acceleration animations. This value was taken from ValueAnimator.java.
+     */
+    private static final int EXIT_FLING_ANIMATION_DURATION_MS = 250;
+
+    /**
+     * In portrait mode, the height:width ratio of the photo's starting height.
+     */
+    private static final float INTERMEDIATE_HEADER_HEIGHT_RATIO = 0.6f;
+
+    /**
+     * Color blending will only be performed on the contact photo once the toolbar is compressed
+     * to this ratio of its full height.
+     */
+    private static final float COLOR_BLENDING_START_RATIO = 0.5f;
+
+    private static final float SPRING_DAMPENING_FACTOR = 0.01f;
+
+    /**
+     * When displaying a letter tile drawable, this alpha value should be used at the intermediate
+     * toolbar height.
+     */
+    private static final float DESIRED_INTERMEDIATE_LETTER_TILE_ALPHA = 0.8f;
+
+    private float[] mLastEventPosition = { 0, 0 };
+    private VelocityTracker mVelocityTracker;
+    private boolean mIsBeingDragged = false;
+    private boolean mReceivedDown = false;
+    /**
+     * Did the current downwards fling/scroll-animation start while we were fullscreen?
+     */
+    private boolean mIsFullscreenDownwardsFling = false;
+
+    private ScrollView mScrollView;
+    private View mScrollViewChild;
+    private View mToolbar;
+    private QuickContactImageView mPhotoView;
+    private View mPhotoViewContainer;
+    private View mTransparentView;
+    private MultiShrinkScrollerListener mListener;
+    private TextView mLargeTextView;
+    private TextView mPhoneticNameView;
+    private View mTitleAndPhoneticNameView;
+    private View mPhotoTouchInterceptOverlay;
+    /** Contains desired size & vertical offset of the title, once the header is fully compressed */
+    private TextView mInvisiblePlaceholderTextView;
+    private View mTitleGradientView;
+    private View mActionBarGradientView;
+    private View mStartColumn;
+    private int mHeaderTintColor;
+    private int mMaximumHeaderHeight;
+    private int mMinimumHeaderHeight;
+    /**
+     * When the contact photo is tapped, it is resized to max size or this size. This value also
+     * sometimes represents the maximum achievable header size achieved by scrolling. To enforce
+     * this maximum in scrolling logic, always access this value via
+     * {@link #getMaximumScrollableHeaderHeight}.
+     */
+    private int mIntermediateHeaderHeight;
+    /**
+     * If true, regular scrolling can expand the header beyond mIntermediateHeaderHeight. The
+     * header, that contains the contact photo, can expand to a height equal its width.
+     */
+    private boolean mIsOpenContactSquare;
+    private int mMaximumHeaderTextSize;
+    private int mMaximumPhoneticNameViewHeight;
+    private int mMaximumFullNameViewHeight;
+    private int mCollapsedTitleBottomMargin;
+    private int mCollapsedTitleStartMargin;
+    private int mMinimumPortraitHeaderHeight;
+    private int mMaximumPortraitHeaderHeight;
+    /**
+     * True once the header has touched the top of the screen at least once.
+     */
+    private boolean mHasEverTouchedTheTop;
+    private boolean mIsTouchDisabledForDismissAnimation;
+    private boolean mIsTouchDisabledForSuppressLayout;
+
+    private final Scroller mScroller;
+    private final EdgeEffect mEdgeGlowBottom;
+    private final EdgeEffect mEdgeGlowTop;
+    private final int mTouchSlop;
+    private final int mMaximumVelocity;
+    private final int mMinimumVelocity;
+    private final int mDismissDistanceOnScroll;
+    private final int mDismissDistanceOnRelease;
+    private final int mSnapToTopSlopHeight;
+    private final int mTransparentStartHeight;
+    private final int mMaximumTitleMargin;
+    private final float mToolbarElevation;
+    private final boolean mIsTwoPanel;
+    private final float mLandscapePhotoRatio;
+    private final int mActionBarSize;
+
+    // Objects used to perform color filtering on the header. These are stored as fields for
+    // the sole purpose of avoiding "new" operations inside animation loops.
+    private final ColorMatrix mWhitenessColorMatrix = new ColorMatrix();
+    private final ColorMatrix mColorMatrix = new ColorMatrix();
+    private final float[] mAlphaMatrixValues = {
+            0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0,
+            0, 0, 0, 1, 0
+    };
+    private final ColorMatrix mMultiplyBlendMatrix = new ColorMatrix();
+    private final float[] mMultiplyBlendMatrixValues = {
+            0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0,
+            0, 0, 0, 1, 0
+    };
+
+    private final Interpolator mTextSizePathInterpolator =
+            PathInterpolatorCompat.create(0.16f, 0.4f, 0.2f, 1);
+
+    private final int[] mGradientColors = new int[] {0,0x88000000};
+    private GradientDrawable mTitleGradientDrawable = new GradientDrawable(
+            GradientDrawable.Orientation.TOP_BOTTOM, mGradientColors);
+    private GradientDrawable mActionBarGradientDrawable = new GradientDrawable(
+            GradientDrawable.Orientation.BOTTOM_TOP, mGradientColors);
+
+    public interface MultiShrinkScrollerListener {
+        void onScrolledOffBottom();
+
+        void onStartScrollOffBottom();
+
+        void onTransparentViewHeightChange(float ratio);
+
+        void onEntranceAnimationDone();
+
+        void onEnterFullscreen();
+
+        void onExitFullscreen();
+    }
+
+    private final AnimatorListener mSnapToBottomListener = new AnimatorListenerAdapter() {
+        @Override
+        public void onAnimationEnd(Animator animation) {
+            if (getScrollUntilOffBottom() > 0 && mListener != null) {
+                // Due to a rounding error, after the animation finished we haven't fully scrolled
+                // off the screen. Lie to the listener: tell it that we did scroll off the screen.
+                mListener.onScrolledOffBottom();
+                // No other messages need to be sent to the listener.
+                mListener = null;
+            }
+        }
+    };
+
+    /**
+     * Interpolator from android.support.v4.view.ViewPager. Snappier and more elastic feeling
+     * than the default interpolator.
+     */
+    private static final Interpolator sInterpolator = new Interpolator() {
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public float getInterpolation(float t) {
+            t -= 1.0f;
+            return t * t * t * t * t + 1.0f;
+        }
+    };
+
+    public MultiShrinkScroller(Context context) {
+        this(context, null);
+    }
+
+    public MultiShrinkScroller(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public MultiShrinkScroller(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+
+        final ViewConfiguration configuration = ViewConfiguration.get(context);
+        setFocusable(false);
+        // Drawing must be enabled in order to support EdgeEffect
+        setWillNotDraw(/* willNotDraw = */ false);
+
+        mEdgeGlowBottom = new EdgeEffect(context);
+        mEdgeGlowTop = new EdgeEffect(context);
+        mScroller = new Scroller(context, sInterpolator);
+        mTouchSlop = configuration.getScaledTouchSlop();
+        mMinimumVelocity = configuration.getScaledMinimumFlingVelocity();
+        mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
+        mTransparentStartHeight = (int) getResources().getDimension(
+                R.dimen.quickcontact_starting_empty_height);
+        mToolbarElevation = getResources().getDimension(
+                R.dimen.quick_contact_toolbar_elevation);
+        mIsTwoPanel = getResources().getBoolean(R.bool.quickcontact_two_panel);
+        mMaximumTitleMargin = (int) getResources().getDimension(
+                R.dimen.quickcontact_title_initial_margin);
+
+        mDismissDistanceOnScroll = (int) getResources().getDimension(
+                R.dimen.quickcontact_dismiss_distance_on_scroll);
+        mDismissDistanceOnRelease = (int) getResources().getDimension(
+                R.dimen.quickcontact_dismiss_distance_on_release);
+        mSnapToTopSlopHeight = (int) getResources().getDimension(
+                R.dimen.quickcontact_snap_to_top_slop_height);
+
+        final TypedValue photoRatio = new TypedValue();
+        getResources().getValue(R.dimen.quickcontact_landscape_photo_ratio, photoRatio,
+                            /* resolveRefs = */ true);
+        mLandscapePhotoRatio = photoRatio.getFloat();
+
+        final TypedArray attributeArray = context.obtainStyledAttributes(
+                new int[]{android.R.attr.actionBarSize});
+        mActionBarSize = attributeArray.getDimensionPixelSize(0, 0);
+        mMinimumHeaderHeight = mActionBarSize;
+        // This value is approximately equal to the portrait ActionBar size. It isn't exactly the
+        // same, since the landscape and portrait ActionBar sizes can be different.
+        mMinimumPortraitHeaderHeight = mMinimumHeaderHeight;
+        attributeArray.recycle();
+    }
+
+    /**
+     * This method must be called inside the Activity's OnCreate.
+     */
+    public void initialize(MultiShrinkScrollerListener listener, boolean isOpenContactSquare,
+                final int maximumHeaderTextSize, final boolean shouldUpdateNameViewHeight) {
+        mScrollView = (ScrollView) findViewById(R.id.content_scroller);
+        mScrollViewChild = findViewById(R.id.card_container);
+        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);
+        mPhoneticNameView = (TextView) findViewById(R.id.phonetic_name);
+        mTitleAndPhoneticNameView = findViewById(R.id.title_and_phonetic_name);
+        mInvisiblePlaceholderTextView = (TextView) findViewById(R.id.placeholder_textview);
+        mStartColumn = findViewById(R.id.empty_start_column);
+        // Touching the empty space should close the card
+        if (mStartColumn != null) {
+            mStartColumn.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    scrollOffBottom();
+                }
+            });
+            findViewById(R.id.empty_end_column).setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    scrollOffBottom();
+                }
+            });
+        }
+        mListener = listener;
+        mIsOpenContactSquare = isOpenContactSquare;
+
+        mPhotoView = (QuickContactImageView) findViewById(R.id.photo);
+
+        mTitleGradientView = findViewById(R.id.title_gradient);
+        mTitleGradientView.setBackground(mTitleGradientDrawable);
+        mActionBarGradientView = findViewById(R.id.action_bar_gradient);
+        mActionBarGradientView.setBackground(mActionBarGradientDrawable);
+        mCollapsedTitleStartMargin = ((Toolbar) findViewById(R.id.toolbar)).getContentInsetStart();
+
+        mPhotoTouchInterceptOverlay = findViewById(R.id.photo_touch_intercept_overlay);
+        if (!mIsTwoPanel) {
+            mPhotoTouchInterceptOverlay.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    expandHeader();
+                }
+            });
+        }
+
+        SchedulingUtils.doOnPreDraw(this, /* drawNextFrame = */ false, new Runnable() {
+            @Override
+            public void run() {
+                if (!mIsTwoPanel) {
+                    // We never want the height of the photo view to exceed its width.
+                    mMaximumHeaderHeight = mPhotoViewContainer.getWidth();
+                    mIntermediateHeaderHeight = (int) (mMaximumHeaderHeight
+                            * INTERMEDIATE_HEADER_HEIGHT_RATIO);
+                }
+                mMaximumPortraitHeaderHeight = mIsTwoPanel ? getHeight()
+                        : mPhotoViewContainer.getWidth();
+                setHeaderHeight(getMaximumScrollableHeaderHeight());
+                if (shouldUpdateNameViewHeight) {
+                    mMaximumHeaderTextSize = mTitleAndPhoneticNameView.getHeight();
+                    mMaximumFullNameViewHeight = mLargeTextView.getHeight();
+                    // We cannot rely on mPhoneticNameView.getHeight() since it could be 0
+                    final int phoneticNameSize = getResources().getDimensionPixelSize(
+                            R.dimen.quickcontact_maximum_phonetic_name_size);
+                    final int fullNameSize = getResources().getDimensionPixelSize(
+                            R.dimen.quickcontact_maximum_title_size);
+                    mMaximumPhoneticNameViewHeight =
+                            mMaximumFullNameViewHeight * phoneticNameSize / fullNameSize;
+                }
+                if (maximumHeaderTextSize > 0) {
+                    mMaximumHeaderTextSize = maximumHeaderTextSize;
+                }
+                if (mIsTwoPanel) {
+                    mMaximumHeaderHeight = getHeight();
+                    mMinimumHeaderHeight = mMaximumHeaderHeight;
+                    mIntermediateHeaderHeight = mMaximumHeaderHeight;
+
+                    // Permanently set photo width and height.
+                    final ViewGroup.LayoutParams photoLayoutParams
+                            = mPhotoViewContainer.getLayoutParams();
+                    photoLayoutParams.height = mMaximumHeaderHeight;
+                    photoLayoutParams.width = (int) (mMaximumHeaderHeight * mLandscapePhotoRatio);
+                    mPhotoViewContainer.setLayoutParams(photoLayoutParams);
+
+                    // Permanently set title width and margin.
+                    final FrameLayout.LayoutParams largeTextLayoutParams
+                            = (FrameLayout.LayoutParams) mTitleAndPhoneticNameView
+                            .getLayoutParams();
+                    largeTextLayoutParams.width = photoLayoutParams.width -
+                            largeTextLayoutParams.leftMargin - largeTextLayoutParams.rightMargin;
+                    largeTextLayoutParams.gravity = Gravity.BOTTOM | Gravity.START;
+                    mTitleAndPhoneticNameView.setLayoutParams(largeTextLayoutParams);
+                } else {
+                    // Set the width of mLargeTextView as if it was nested inside
+                    // mPhotoViewContainer.
+                    mLargeTextView.setWidth(mPhotoViewContainer.getWidth()
+                            - 2 * mMaximumTitleMargin);
+                    mPhoneticNameView.setWidth(mPhotoViewContainer.getWidth()
+                            - 2 * mMaximumTitleMargin);
+                }
+
+                calculateCollapsedLargeTitlePadding();
+                updateHeaderTextSizeAndMargin();
+                configureGradientViewHeights();
+            }
+        });
+    }
+
+    private void configureGradientViewHeights() {
+        final FrameLayout.LayoutParams actionBarGradientLayoutParams
+                = (FrameLayout.LayoutParams) mActionBarGradientView.getLayoutParams();
+        actionBarGradientLayoutParams.height = mActionBarSize;
+        mActionBarGradientView.setLayoutParams(actionBarGradientLayoutParams);
+        final FrameLayout.LayoutParams titleGradientLayoutParams
+                = (FrameLayout.LayoutParams) mTitleGradientView.getLayoutParams();
+        final float TITLE_GRADIENT_SIZE_COEFFICIENT = 1.25f;
+        final FrameLayout.LayoutParams largeTextLayoutParms
+                = (FrameLayout.LayoutParams) mTitleAndPhoneticNameView.getLayoutParams();
+        titleGradientLayoutParams.height = (int) ((mMaximumHeaderTextSize
+                + largeTextLayoutParms.bottomMargin) * TITLE_GRADIENT_SIZE_COEFFICIENT);
+        mTitleGradientView.setLayoutParams(titleGradientLayoutParams);
+    }
+
+    public void setTitle(String title, boolean isPhoneNumber) {
+        mLargeTextView.setText(title);
+        // We have a phone number as "mLargeTextView" so make it always LTR.
+        if (isPhoneNumber) {
+            mLargeTextView.setTextDirection(View.TEXT_DIRECTION_LTR);
+        }
+        mPhotoTouchInterceptOverlay.setContentDescription(title);
+    }
+
+    public void setPhoneticName(String phoneticName) {
+        // Set phonetic name only when it was gone before or got changed.
+        if (mPhoneticNameView.getVisibility() == View.VISIBLE
+                && phoneticName.equals(mPhoneticNameView.getText())) {
+            return;
+        }
+        mPhoneticNameView.setText(phoneticName);
+        // Every time the phonetic name is changed, set mPhoneticNameView as visible,
+        // in case it just changed from Visibility=GONE.
+        mPhoneticNameView.setVisibility(View.VISIBLE);
+        // TODO try not using initialize() to refresh phonetic name view: b/27410518
+        initialize(mListener, mIsOpenContactSquare, /* maximumHeaderTextSize */
+                (mMaximumFullNameViewHeight + mMaximumPhoneticNameViewHeight),
+                /* shouldUpdateNameViewHeight */ false);
+    }
+
+    public void setPhoneticNameGone() {
+        // Remove phonetic name only when it was visible before.
+        if (mPhoneticNameView.getVisibility() == View.GONE) {
+            return;
+        }
+        mPhoneticNameView.setVisibility(View.GONE);
+        // Initialize to make Visibility work.
+        // TODO try not using initialize() to refresh phonetic name view: b/27410518
+        initialize(mListener, mIsOpenContactSquare,
+                /* maximumHeaderTextSize */ mMaximumFullNameViewHeight,
+                /* shouldUpdateNameViewHeight */ false);
+    }
+
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent event) {
+        if (mVelocityTracker == null) {
+            mVelocityTracker = VelocityTracker.obtain();
+        }
+        mVelocityTracker.addMovement(event);
+
+        // The only time we want to intercept touch events is when we are being dragged.
+        return shouldStartDrag(event);
+    }
+
+    private boolean shouldStartDrag(MotionEvent event) {
+        if (mIsTouchDisabledForDismissAnimation || mIsTouchDisabledForSuppressLayout) return false;
+
+
+        if (mIsBeingDragged) {
+            mIsBeingDragged = false;
+            return false;
+        }
+
+        switch (event.getAction()) {
+            // If we are in the middle of a fling and there is a down event, we'll steal it and
+            // start a drag.
+            case MotionEvent.ACTION_DOWN:
+                updateLastEventPosition(event);
+                if (!mScroller.isFinished()) {
+                    startDrag();
+                    return true;
+                } else {
+                    mReceivedDown = true;
+                }
+                break;
+
+            // Otherwise, we will start a drag if there is enough motion in the direction we are
+            // capable of scrolling.
+            case MotionEvent.ACTION_MOVE:
+                if (motionShouldStartDrag(event)) {
+                    updateLastEventPosition(event);
+                    startDrag();
+                    return true;
+                }
+                break;
+        }
+
+        return false;
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+        if (mIsTouchDisabledForDismissAnimation || mIsTouchDisabledForSuppressLayout) return true;
+
+        final int action = event.getAction();
+
+        if (mVelocityTracker == null) {
+            mVelocityTracker = VelocityTracker.obtain();
+        }
+        mVelocityTracker.addMovement(event);
+
+        if (!mIsBeingDragged) {
+            if (shouldStartDrag(event)) {
+                return true;
+            }
+
+            if (action == MotionEvent.ACTION_UP && mReceivedDown) {
+                mReceivedDown = false;
+                return performClick();
+            }
+            return true;
+        }
+
+        switch (action) {
+            case MotionEvent.ACTION_MOVE:
+                final float delta = updatePositionAndComputeDelta(event);
+                scrollTo(0, getScroll() + (int) delta);
+                mReceivedDown = false;
+
+                if (mIsBeingDragged) {
+                    final int distanceFromMaxScrolling = getMaximumScrollUpwards() - getScroll();
+                    if (delta > distanceFromMaxScrolling) {
+                        // The ScrollView is being pulled upwards while there is no more
+                        // content offscreen, and the view port is already fully expanded.
+                        EdgeEffectCompat.onPull(mEdgeGlowBottom, delta / getHeight(),
+                                1 - event.getX() / getWidth());
+                    }
+
+                    if (!mEdgeGlowBottom.isFinished()) {
+                        postInvalidateOnAnimation();
+                    }
+
+                    if (shouldDismissOnScroll()) {
+                        scrollOffBottom();
+                    }
+
+                }
+                break;
+
+            case MotionEvent.ACTION_UP:
+            case MotionEvent.ACTION_CANCEL:
+                stopDrag(action == MotionEvent.ACTION_CANCEL);
+                mReceivedDown = false;
+                break;
+        }
+
+        return true;
+    }
+
+    public void setHeaderTintColor(int color) {
+        mHeaderTintColor = color;
+        updatePhotoTintAndDropShadow();
+        if (CompatUtils.isLollipopCompatible()) {
+            // Use the same amount of alpha on the new tint color as the previous tint color.
+            final int edgeEffectAlpha = Color.alpha(mEdgeGlowBottom.getColor());
+            mEdgeGlowBottom.setColor((color & 0xffffff) | Color.argb(edgeEffectAlpha, 0, 0, 0));
+            mEdgeGlowTop.setColor(mEdgeGlowBottom.getColor());
+        }
+    }
+
+    /**
+     * Expand to maximum size.
+     */
+    private void expandHeader() {
+        if (getHeaderHeight() != mMaximumHeaderHeight) {
+            final ObjectAnimator animator = ObjectAnimator.ofInt(this, "headerHeight",
+                    mMaximumHeaderHeight);
+            animator.setDuration(ExpandingEntryCardView.DURATION_EXPAND_ANIMATION_CHANGE_BOUNDS);
+            animator.start();
+            // Scroll nested scroll view to its top
+            if (mScrollView.getScrollY() != 0) {
+                ObjectAnimator.ofInt(mScrollView, "scrollY", -mScrollView.getScrollY()).start();
+            }
+        }
+    }
+
+    private void startDrag() {
+        mIsBeingDragged = true;
+        mScroller.abortAnimation();
+    }
+
+    private void stopDrag(boolean cancelled) {
+        mIsBeingDragged = false;
+        if (!cancelled && getChildCount() > 0) {
+            final float velocity = getCurrentVelocity();
+            if (velocity > mMinimumVelocity || velocity < -mMinimumVelocity) {
+                fling(-velocity);
+                onDragFinished(mScroller.getFinalY() - mScroller.getStartY());
+            } else {
+                onDragFinished(/* flingDelta = */ 0);
+            }
+        } else {
+            onDragFinished(/* flingDelta = */ 0);
+        }
+
+        if (mVelocityTracker != null) {
+            mVelocityTracker.recycle();
+            mVelocityTracker = null;
+        }
+
+        mEdgeGlowBottom.onRelease();
+    }
+
+    private void onDragFinished(int flingDelta) {
+        if (getTransparentViewHeight() <= 0) {
+            // Don't perform any snapping if quick contacts is full screen.
+            return;
+        }
+        if (!snapToTopOnDragFinished(flingDelta)) {
+            // The drag/fling won't result in the content at the top of the Window. Consider
+            // snapping the content to the bottom of the window.
+            snapToBottomOnDragFinished();
+        }
+    }
+
+    /**
+     * If needed, snap the subviews to the top of the Window.
+     *
+     * @return TRUE if QuickContacts will snap/fling to to top after this method call.
+     */
+    private boolean snapToTopOnDragFinished(int flingDelta) {
+        if (!mHasEverTouchedTheTop) {
+            // If the current fling is predicted to scroll past the top, then we don't need to snap
+            // to the top. However, if the fling only flings past the top by a tiny amount,
+            // it will look nicer to snap than to fling.
+            final float predictedScrollPastTop = getTransparentViewHeight() - flingDelta;
+            if (predictedScrollPastTop < -mSnapToTopSlopHeight) {
+                return false;
+            }
+
+            if (getTransparentViewHeight() <= mTransparentStartHeight) {
+                // We are above the starting scroll position so snap to the top.
+                mScroller.forceFinished(true);
+                smoothScrollBy(getTransparentViewHeight());
+                return true;
+            }
+            return false;
+        }
+        if (getTransparentViewHeight() < mDismissDistanceOnRelease) {
+            mScroller.forceFinished(true);
+            smoothScrollBy(getTransparentViewHeight());
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * If needed, scroll all the subviews off the bottom of the Window.
+     */
+    private void snapToBottomOnDragFinished() {
+        if (mHasEverTouchedTheTop) {
+            if (getTransparentViewHeight() > mDismissDistanceOnRelease) {
+                scrollOffBottom();
+            }
+            return;
+        }
+        if (getTransparentViewHeight() > mTransparentStartHeight) {
+            scrollOffBottom();
+        }
+    }
+
+    /**
+     * Returns TRUE if we have scrolled far QuickContacts far enough that we should dismiss it
+     * without waiting for the user to finish their drag.
+     */
+    private boolean shouldDismissOnScroll() {
+        return mHasEverTouchedTheTop && getTransparentViewHeight() > mDismissDistanceOnScroll;
+    }
+
+    /**
+     * Return ratio of non-transparent:viewgroup-height for this viewgroup at the starting position.
+     */
+    public float getStartingTransparentHeightRatio() {
+        return getTransparentHeightRatio(mTransparentStartHeight);
+    }
+
+    private float getTransparentHeightRatio(int transparentHeight) {
+        final float heightRatio = (float) transparentHeight / getHeight();
+        // Clamp between [0, 1] in case this is called before height is initialized.
+        return 1.0f - Math.max(Math.min(1.0f, heightRatio), 0f);
+    }
+
+    public void scrollOffBottom() {
+        mIsTouchDisabledForDismissAnimation = true;
+        final Interpolator interpolator = new AcceleratingFlingInterpolator(
+                EXIT_FLING_ANIMATION_DURATION_MS, getCurrentVelocity(),
+                getScrollUntilOffBottom());
+        mScroller.forceFinished(true);
+        ObjectAnimator translateAnimation = ObjectAnimator.ofInt(this, "scroll",
+                getScroll() - getScrollUntilOffBottom());
+        translateAnimation.setRepeatCount(0);
+        translateAnimation.setInterpolator(interpolator);
+        translateAnimation.setDuration(EXIT_FLING_ANIMATION_DURATION_MS);
+        translateAnimation.addListener(mSnapToBottomListener);
+        translateAnimation.start();
+        if (mListener != null) {
+            mListener.onStartScrollOffBottom();
+        }
+    }
+
+    /**
+     * @param scrollToCurrentPosition if true, will scroll from the bottom of the screen to the
+     * current position. Otherwise, will scroll from the bottom of the screen to the top of the
+     * screen.
+     */
+    public void scrollUpForEntranceAnimation(boolean scrollToCurrentPosition) {
+        final int currentPosition = getScroll();
+        final int bottomScrollPosition = currentPosition
+                - (getHeight() - getTransparentViewHeight()) + 1;
+        final Interpolator interpolator = AnimationUtils.loadInterpolator(getContext(),
+                android.R.interpolator.linear_out_slow_in);
+        final int desiredValue = currentPosition + (scrollToCurrentPosition ? currentPosition
+                : getTransparentViewHeight());
+        final ObjectAnimator animator = ObjectAnimator.ofInt(this, "scroll", bottomScrollPosition,
+                desiredValue);
+        animator.setInterpolator(interpolator);
+        animator.addUpdateListener(new AnimatorUpdateListener() {
+            @Override
+            public void onAnimationUpdate(ValueAnimator animation) {
+                if (animation.getAnimatedValue().equals(desiredValue) && mListener != null) {
+                    mListener.onEntranceAnimationDone();
+                }
+            }
+        });
+        animator.start();
+    }
+
+    @Override
+    public void scrollTo(int x, int y) {
+        final int delta = y - getScroll();
+        boolean wasFullscreen = getScrollNeededToBeFullScreen() <= 0;
+        if (delta > 0) {
+            scrollUp(delta);
+        } else {
+            scrollDown(delta);
+        }
+        updatePhotoTintAndDropShadow();
+        updateHeaderTextSizeAndMargin();
+        final boolean isFullscreen = getScrollNeededToBeFullScreen() <= 0;
+        mHasEverTouchedTheTop |= isFullscreen;
+        if (mListener != null) {
+            if (wasFullscreen && !isFullscreen) {
+                 mListener.onExitFullscreen();
+            } else if (!wasFullscreen && isFullscreen) {
+                mListener.onEnterFullscreen();
+            }
+            if (!isFullscreen || !wasFullscreen) {
+                mListener.onTransparentViewHeightChange(
+                        getTransparentHeightRatio(getTransparentViewHeight()));
+            }
+        }
+    }
+
+    /**
+     * Change the height of the header/toolbar. Do *not* use this outside animations. This was
+     * designed for use by {@link #prepareForShrinkingScrollChild}.
+     */
+    @NeededForReflection
+    public void setToolbarHeight(int delta) {
+        final ViewGroup.LayoutParams toolbarLayoutParams
+                = mToolbar.getLayoutParams();
+        toolbarLayoutParams.height = delta;
+        mToolbar.setLayoutParams(toolbarLayoutParams);
+
+        updatePhotoTintAndDropShadow();
+        updateHeaderTextSizeAndMargin();
+    }
+
+    @NeededForReflection
+    public int getToolbarHeight() {
+        return mToolbar.getLayoutParams().height;
+    }
+
+    /**
+     * Set the height of the toolbar and update its tint accordingly.
+     */
+    @NeededForReflection
+    public void setHeaderHeight(int height) {
+        final ViewGroup.LayoutParams toolbarLayoutParams
+                = mToolbar.getLayoutParams();
+        toolbarLayoutParams.height = height;
+        mToolbar.setLayoutParams(toolbarLayoutParams);
+        updatePhotoTintAndDropShadow();
+        updateHeaderTextSizeAndMargin();
+    }
+
+    @NeededForReflection
+    public int getHeaderHeight() {
+        return mToolbar.getLayoutParams().height;
+    }
+
+    @NeededForReflection
+    public void setScroll(int scroll) {
+        scrollTo(0, scroll);
+    }
+
+    /**
+     * Returns the total amount scrolled inside the nested ScrollView + the amount of shrinking
+     * performed on the ToolBar. This is the value inspected by animators.
+     */
+    @NeededForReflection
+    public int getScroll() {
+        return mTransparentStartHeight - getTransparentViewHeight()
+                + getMaximumScrollableHeaderHeight() - getToolbarHeight()
+                + mScrollView.getScrollY();
+    }
+
+    private int getMaximumScrollableHeaderHeight() {
+        return mIsOpenContactSquare ? mMaximumHeaderHeight : mIntermediateHeaderHeight;
+    }
+
+    /**
+     * A variant of {@link #getScroll} that pretends the header is never larger than
+     * than mIntermediateHeaderHeight. This function is sometimes needed when making scrolling
+     * decisions that will not change the header size (ie, snapping to the bottom or top).
+     *
+     * When mIsOpenContactSquare is true, this function considers mIntermediateHeaderHeight ==
+     * mMaximumHeaderHeight, since snapping decisions will be made relative the full header
+     * size when mIsOpenContactSquare = true.
+     *
+     * This value should never be used in conjunction with {@link #getScroll} values.
+     */
+    private int getScroll_ignoreOversizedHeaderForSnapping() {
+        return mTransparentStartHeight - getTransparentViewHeight()
+                + Math.max(getMaximumScrollableHeaderHeight() - getToolbarHeight(), 0)
+                + mScrollView.getScrollY();
+    }
+
+    /**
+     * Amount of transparent space above the header/toolbar.
+     */
+    public int getScrollNeededToBeFullScreen() {
+        return getTransparentViewHeight();
+    }
+
+    /**
+     * Return amount of scrolling needed in order for all the visible subviews to scroll off the
+     * bottom.
+     */
+    private int getScrollUntilOffBottom() {
+        return getHeight() + getScroll_ignoreOversizedHeaderForSnapping()
+                - mTransparentStartHeight;
+    }
+
+    @Override
+    public void computeScroll() {
+        if (mScroller.computeScrollOffset()) {
+            // Examine the fling results in order to activate EdgeEffect and halt flings.
+            final int oldScroll = getScroll();
+            scrollTo(0, mScroller.getCurrY());
+            final int delta = mScroller.getCurrY() - oldScroll;
+            final int distanceFromMaxScrolling = getMaximumScrollUpwards() - getScroll();
+            if (delta > distanceFromMaxScrolling && distanceFromMaxScrolling > 0) {
+                mEdgeGlowBottom.onAbsorb((int) mScroller.getCurrVelocity());
+            }
+            if (mIsFullscreenDownwardsFling && getTransparentViewHeight() > 0) {
+                // Halt the fling once QuickContact's top is on screen.
+                scrollTo(0, getScroll() + getTransparentViewHeight());
+                mEdgeGlowTop.onAbsorb((int) mScroller.getCurrVelocity());
+                mScroller.abortAnimation();
+                mIsFullscreenDownwardsFling = false;
+            }
+            if (!awakenScrollBars()) {
+                // Keep on drawing until the animation has finished.
+                postInvalidateOnAnimation();
+            }
+            if (mScroller.getCurrY() >= getMaximumScrollUpwards()) {
+                // Halt the fling once QuickContact's bottom is on screen.
+                mScroller.abortAnimation();
+                mIsFullscreenDownwardsFling = false;
+            }
+        }
+    }
+
+    @Override
+    public void draw(Canvas canvas) {
+        super.draw(canvas);
+
+        final int width = getWidth() - getPaddingLeft() - getPaddingRight();
+        final int height = getHeight();
+
+        if (!mEdgeGlowBottom.isFinished()) {
+            final int restoreCount = canvas.save();
+
+            // Draw the EdgeEffect on the bottom of the Window (Or a little bit below the bottom
+            // of the Window if we start to scroll upwards while EdgeEffect is visible). This
+            // does not need to consider the case where this MultiShrinkScroller doesn't fill
+            // the Window, since the nested ScrollView should be set to fillViewport.
+            canvas.translate(-width + getPaddingLeft(),
+                    height + getMaximumScrollUpwards() - getScroll());
+
+            canvas.rotate(180, width, 0);
+            if (mIsTwoPanel) {
+                // Only show the EdgeEffect on the bottom of the ScrollView.
+                mEdgeGlowBottom.setSize(mScrollView.getWidth(), height);
+                if (getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
+                    canvas.translate(mPhotoViewContainer.getWidth(), 0);
+                }
+            } else {
+                mEdgeGlowBottom.setSize(width, height);
+            }
+            if (mEdgeGlowBottom.draw(canvas)) {
+                postInvalidateOnAnimation();
+            }
+            canvas.restoreToCount(restoreCount);
+        }
+
+        if (!mEdgeGlowTop.isFinished()) {
+            final int restoreCount = canvas.save();
+            if (mIsTwoPanel) {
+                mEdgeGlowTop.setSize(mScrollView.getWidth(), height);
+                if (getLayoutDirection() != View.LAYOUT_DIRECTION_RTL) {
+                    canvas.translate(mPhotoViewContainer.getWidth(), 0);
+                }
+            } else {
+                mEdgeGlowTop.setSize(width, height);
+            }
+            if (mEdgeGlowTop.draw(canvas)) {
+                postInvalidateOnAnimation();
+            }
+            canvas.restoreToCount(restoreCount);
+        }
+    }
+
+    private float getCurrentVelocity() {
+        if (mVelocityTracker == null) {
+            return 0;
+        }
+        mVelocityTracker.computeCurrentVelocity(PIXELS_PER_SECOND, mMaximumVelocity);
+        return mVelocityTracker.getYVelocity();
+    }
+
+    private void fling(float velocity) {
+        // For reasons I do not understand, scrolling is less janky when maxY=Integer.MAX_VALUE
+        // then when maxY is set to an actual value.
+        mScroller.fling(0, getScroll(), 0, (int) velocity, 0, 0, -Integer.MAX_VALUE,
+                Integer.MAX_VALUE);
+        if (velocity < 0 && mTransparentView.getHeight() <= 0) {
+            mIsFullscreenDownwardsFling = true;
+        }
+        invalidate();
+    }
+
+    private int getMaximumScrollUpwards() {
+        if (!mIsTwoPanel) {
+            return mTransparentStartHeight
+                    // How much the Header view can compress
+                    + getMaximumScrollableHeaderHeight() - getFullyCompressedHeaderHeight()
+                    // How much the ScrollView can scroll. 0, if child is smaller than ScrollView.
+                    + Math.max(0, mScrollViewChild.getHeight() - getHeight()
+                    + getFullyCompressedHeaderHeight());
+        } else {
+            return mTransparentStartHeight
+                    // How much the ScrollView can scroll. 0, if child is smaller than ScrollView.
+                    + Math.max(0, mScrollViewChild.getHeight() - getHeight());
+        }
+    }
+
+    private int getTransparentViewHeight() {
+        return mTransparentView.getLayoutParams().height;
+    }
+
+    private void setTransparentViewHeight(int height) {
+        mTransparentView.getLayoutParams().height = height;
+        mTransparentView.setLayoutParams(mTransparentView.getLayoutParams());
+    }
+
+    private void scrollUp(int delta) {
+        if (getTransparentViewHeight() != 0) {
+            final int originalValue = getTransparentViewHeight();
+            setTransparentViewHeight(getTransparentViewHeight() - delta);
+            setTransparentViewHeight(Math.max(0, getTransparentViewHeight()));
+            delta -= originalValue - getTransparentViewHeight();
+        }
+        final ViewGroup.LayoutParams toolbarLayoutParams
+                = mToolbar.getLayoutParams();
+        if (toolbarLayoutParams.height > getFullyCompressedHeaderHeight()) {
+            final int originalValue = toolbarLayoutParams.height;
+            toolbarLayoutParams.height -= delta;
+            toolbarLayoutParams.height = Math.max(toolbarLayoutParams.height,
+                    getFullyCompressedHeaderHeight());
+            mToolbar.setLayoutParams(toolbarLayoutParams);
+            delta -= originalValue - toolbarLayoutParams.height;
+        }
+        mScrollView.scrollBy(0, delta);
+    }
+
+    /**
+     * Returns the minimum size that we want to compress the header to, given that we don't want to
+     * allow the the ScrollView to scroll unless there is new content off of the edge of ScrollView.
+     */
+    private int getFullyCompressedHeaderHeight() {
+        return Math.min(Math.max(mToolbar.getLayoutParams().height - getOverflowingChildViewSize(),
+                mMinimumHeaderHeight), getMaximumScrollableHeaderHeight());
+    }
+
+    /**
+     * Returns the amount of mScrollViewChild that doesn't fit inside its parent.
+     */
+    private int getOverflowingChildViewSize() {
+        final int usedScrollViewSpace = mScrollViewChild.getHeight();
+        return -getHeight() + usedScrollViewSpace + mToolbar.getLayoutParams().height;
+    }
+
+    private void scrollDown(int delta) {
+        if (mScrollView.getScrollY() > 0) {
+            final int originalValue = mScrollView.getScrollY();
+            mScrollView.scrollBy(0, delta);
+            delta -= mScrollView.getScrollY() - originalValue;
+        }
+        final ViewGroup.LayoutParams toolbarLayoutParams = mToolbar.getLayoutParams();
+        if (toolbarLayoutParams.height < getMaximumScrollableHeaderHeight()) {
+            final int originalValue = toolbarLayoutParams.height;
+            toolbarLayoutParams.height -= delta;
+            toolbarLayoutParams.height = Math.min(toolbarLayoutParams.height,
+                    getMaximumScrollableHeaderHeight());
+            mToolbar.setLayoutParams(toolbarLayoutParams);
+            delta -= originalValue - toolbarLayoutParams.height;
+        }
+        setTransparentViewHeight(getTransparentViewHeight() - delta);
+
+        if (getScrollUntilOffBottom() <= 0) {
+            post(new Runnable() {
+                @Override
+                public void run() {
+                    if (mListener != null) {
+                        mListener.onScrolledOffBottom();
+                        // No other messages need to be sent to the listener.
+                        mListener = null;
+                    }
+                }
+            });
+        }
+    }
+
+    /**
+     * Set the header size and padding, based on the current scroll position.
+     */
+    private void updateHeaderTextSizeAndMargin() {
+        if (mIsTwoPanel) {
+            // The text size stays at a constant size & location in two panel layouts.
+            return;
+        }
+
+        // The pivot point for scaling should be middle of the starting side.
+        if (getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
+            mTitleAndPhoneticNameView.setPivotX(mTitleAndPhoneticNameView.getWidth());
+        } else {
+            mTitleAndPhoneticNameView.setPivotX(0);
+        }
+        mTitleAndPhoneticNameView.setPivotY(mMaximumHeaderTextSize / 2);
+
+        final int toolbarHeight = mToolbar.getLayoutParams().height;
+        mPhotoTouchInterceptOverlay.setClickable(toolbarHeight != mMaximumHeaderHeight);
+
+        if (toolbarHeight >= mMaximumHeaderHeight) {
+            // Everything is full size when the header is fully expanded.
+            mTitleAndPhoneticNameView.setScaleX(1);
+            mTitleAndPhoneticNameView.setScaleY(1);
+            setInterpolatedTitleMargins(1);
+            return;
+        }
+
+        final float ratio = (toolbarHeight  - mMinimumHeaderHeight)
+                / (float)(mMaximumHeaderHeight - mMinimumHeaderHeight);
+        final float minimumSize = mInvisiblePlaceholderTextView.getHeight();
+        float bezierOutput = mTextSizePathInterpolator.getInterpolation(ratio);
+        float scale = (minimumSize + (mMaximumHeaderTextSize - minimumSize) * bezierOutput)
+                / mMaximumHeaderTextSize;
+
+        // Clamp to reasonable/finite values before passing into framework. The values
+        // can be wacky before the first pre-render.
+        bezierOutput = (float) Math.min(bezierOutput, 1.0f);
+        scale = (float) Math.min(scale, 1.0f);
+
+        mTitleAndPhoneticNameView.setScaleX(scale);
+        mTitleAndPhoneticNameView.setScaleY(scale);
+        setInterpolatedTitleMargins(bezierOutput);
+    }
+
+    /**
+     * Calculate the padding around mTitleAndPhoneticNameView so that it will look appropriate once it
+     * finishes moving into its target location/size.
+     */
+    private void calculateCollapsedLargeTitlePadding() {
+        int invisiblePlaceHolderLocation[] = new int[2];
+        int largeTextViewRectLocation[] = new int[2];
+        mInvisiblePlaceholderTextView.getLocationOnScreen(invisiblePlaceHolderLocation);
+        mToolbar.getLocationOnScreen(largeTextViewRectLocation);
+        // Distance between top of toolbar to the center of the target rectangle.
+        final int desiredTopToCenter = invisiblePlaceHolderLocation[1]
+                + mInvisiblePlaceholderTextView.getHeight() / 2
+                - largeTextViewRectLocation[1];
+        // Padding needed on the mTitleAndPhoneticNameView so that it has the same amount of
+        // padding as the target rectangle.
+        mCollapsedTitleBottomMargin =
+                desiredTopToCenter - mMaximumHeaderTextSize / 2;
+    }
+
+    /**
+     * Interpolate the title's margin size. When {@param x}=1, use the maximum title margins.
+     * When {@param x}=0, use the margin values taken from {@link #mInvisiblePlaceholderTextView}.
+     */
+    private void setInterpolatedTitleMargins(float x) {
+        final FrameLayout.LayoutParams titleLayoutParams
+                = (FrameLayout.LayoutParams) mTitleAndPhoneticNameView.getLayoutParams();
+        final LinearLayout.LayoutParams toolbarLayoutParams
+                = (LinearLayout.LayoutParams) mToolbar.getLayoutParams();
+
+        // Need to add more to margin start if there is a start column
+        int startColumnWidth = mStartColumn == null ? 0 : mStartColumn.getWidth();
+
+        titleLayoutParams.setMarginStart((int) (mCollapsedTitleStartMargin * (1 - x)
+                + mMaximumTitleMargin * x) + startColumnWidth);
+        // How offset the title should be from the bottom of the toolbar
+        final int pretendBottomMargin =  (int) (mCollapsedTitleBottomMargin * (1 - x)
+                + mMaximumTitleMargin * x) ;
+        // Calculate how offset the title should be from the top of the screen. Instead of
+        // calling mTitleAndPhoneticNameView.getHeight() use the mMaximumHeaderTextSize for this
+        // calculation. The getHeight() value acts unexpectedly when mTitleAndPhoneticNameView is
+        // partially clipped by its parent.
+        titleLayoutParams.topMargin = getTransparentViewHeight()
+                + toolbarLayoutParams.height - pretendBottomMargin
+                - mMaximumHeaderTextSize;
+        titleLayoutParams.bottomMargin = 0;
+        mTitleAndPhoneticNameView.setLayoutParams(titleLayoutParams);
+    }
+
+    private void updatePhotoTintAndDropShadow() {
+        // Let's keep an eye on how long this method takes to complete.
+        Trace.beginSection("updatePhotoTintAndDropShadow");
+
+        if (mIsTwoPanel && !mPhotoView.isBasedOffLetterTile()) {
+            // When in two panel mode, UX considers photo tinting unnecessary for non letter
+            // tile photos.
+            mTitleGradientDrawable.setAlpha(0xFF);
+            mActionBarGradientDrawable.setAlpha(0xFF);
+            return;
+        }
+
+        // We need to use toolbarLayoutParams to determine the height, since the layout
+        // params can be updated before the height change is reflected inside the View#getHeight().
+        final int toolbarHeight = getToolbarHeight();
+
+        if (toolbarHeight <= mMinimumHeaderHeight && !mIsTwoPanel) {
+            ViewCompat.setElevation(mPhotoViewContainer, mToolbarElevation);
+        } else {
+            ViewCompat.setElevation(mPhotoViewContainer, 0);
+        }
+
+        // Reuse an existing mColorFilter (to avoid GC pauses) to change the photo's tint.
+        mPhotoView.clearColorFilter();
+        mColorMatrix.reset();
+
+        final int gradientAlpha;
+        if (!mPhotoView.isBasedOffLetterTile()) {
+            // Constants and equations were arbitrarily picked to choose values for saturation,
+            // whiteness, tint and gradient alpha. There were four main objectives:
+            // 1) The transition period between the unmodified image and fully colored image should
+            //    be very short.
+            // 2) The tinting should be fully applied even before the background image is fully
+            //    faded out and desaturated. Why? A half tinted photo looks bad and results in
+            //    unappealing colors.
+            // 3) The function should have a derivative of 0 at ratio = 1 to avoid discontinuities.
+            // 4) The entire process should look awesome.
+            final float ratio = calculateHeightRatioToBlendingStartHeight(toolbarHeight);
+            final float alpha = 1.0f - (float) Math.min(Math.pow(ratio, 1.5f) * 2f, 1f);
+            final float tint = (float) Math.min(Math.pow(ratio, 1.5f) * 3f, 1f);
+            mColorMatrix.setSaturation(alpha);
+            mColorMatrix.postConcat(alphaMatrix(alpha, Color.WHITE));
+            mColorMatrix.postConcat(multiplyBlendMatrix(mHeaderTintColor, tint));
+            gradientAlpha = (int) (255 * alpha);
+        } else if (mIsTwoPanel) {
+            mColorMatrix.reset();
+            mColorMatrix.postConcat(alphaMatrix(DESIRED_INTERMEDIATE_LETTER_TILE_ALPHA,
+                    mHeaderTintColor));
+            gradientAlpha = 0;
+        } else {
+            // We want a function that has DESIRED_INTERMEDIATE_LETTER_TILE_ALPHA value
+            // at the intermediate position and uses TILE_EXPONENT. Finding an equation
+            // that satisfies this condition requires the following arithmetic.
+            final float ratio = calculateHeightRatioToFullyOpen(toolbarHeight);
+            final float intermediateRatio = calculateHeightRatioToFullyOpen((int)
+                    (mMaximumPortraitHeaderHeight * INTERMEDIATE_HEADER_HEIGHT_RATIO));
+            final float TILE_EXPONENT = 3f;
+            final float slowingFactor = (float) ((1 - intermediateRatio) / intermediateRatio
+                    / (1 - Math.pow(1 - DESIRED_INTERMEDIATE_LETTER_TILE_ALPHA, 1/TILE_EXPONENT)));
+            float linearBeforeIntermediate = Math.max(1 - (1 - ratio) / intermediateRatio
+                    / slowingFactor, 0);
+            float colorAlpha = 1 - (float) Math.pow(linearBeforeIntermediate, TILE_EXPONENT);
+            mColorMatrix.postConcat(alphaMatrix(colorAlpha, mHeaderTintColor));
+            gradientAlpha = 0;
+        }
+
+        // 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);
+
+        Trace.endSection();
+    }
+
+    private float calculateHeightRatioToFullyOpen(int height) {
+        return (height - mMinimumPortraitHeaderHeight)
+                / (float) (mMaximumPortraitHeaderHeight - mMinimumPortraitHeaderHeight);
+    }
+
+    private float calculateHeightRatioToBlendingStartHeight(int height) {
+        final float intermediateHeight = mMaximumPortraitHeaderHeight
+                * COLOR_BLENDING_START_RATIO;
+        final float interpolatingHeightRange = intermediateHeight - mMinimumPortraitHeaderHeight;
+        if (height > intermediateHeight) {
+            return 0;
+        }
+        return (intermediateHeight - height) / interpolatingHeightRange;
+    }
+
+    /**
+     * Simulates alpha blending an image with {@param color}.
+     */
+    private ColorMatrix alphaMatrix(float alpha, int color) {
+        mAlphaMatrixValues[0] = Color.red(color) * alpha / 255;
+        mAlphaMatrixValues[6] = Color.green(color) * alpha / 255;
+        mAlphaMatrixValues[12] = Color.blue(color) * alpha / 255;
+        mAlphaMatrixValues[4] = 255 * (1 - alpha);
+        mAlphaMatrixValues[9] = 255 * (1 - alpha);
+        mAlphaMatrixValues[14] = 255 * (1 - alpha);
+        mWhitenessColorMatrix.set(mAlphaMatrixValues);
+        return mWhitenessColorMatrix;
+    }
+
+    /**
+     * Simulates multiply blending an image with a single {@param color}.
+     *
+     * Multiply blending is [Sa * Da, Sc * Dc]. See {@link android.graphics.PorterDuff}.
+     */
+    private ColorMatrix multiplyBlendMatrix(int color, float alpha) {
+        mMultiplyBlendMatrixValues[0] = multiplyBlend(Color.red(color), alpha);
+        mMultiplyBlendMatrixValues[6] = multiplyBlend(Color.green(color), alpha);
+        mMultiplyBlendMatrixValues[12] = multiplyBlend(Color.blue(color), alpha);
+        mMultiplyBlendMatrix.set(mMultiplyBlendMatrixValues);
+        return mMultiplyBlendMatrix;
+    }
+
+    private float multiplyBlend(int color, float alpha) {
+        return color * alpha / 255.0f + (1 - alpha);
+    }
+
+    private void updateLastEventPosition(MotionEvent event) {
+        mLastEventPosition[0] = event.getX();
+        mLastEventPosition[1] = event.getY();
+    }
+
+    private boolean motionShouldStartDrag(MotionEvent event) {
+        final float deltaY = event.getY() - mLastEventPosition[1];
+        return deltaY > mTouchSlop || deltaY < -mTouchSlop;
+    }
+
+    private float updatePositionAndComputeDelta(MotionEvent event) {
+        final int VERTICAL = 1;
+        final float position = mLastEventPosition[VERTICAL];
+        updateLastEventPosition(event);
+        float elasticityFactor = 1;
+        if (position < mLastEventPosition[VERTICAL] && mHasEverTouchedTheTop) {
+            // As QuickContacts is dragged from the top of the window, its rate of movement will
+            // slow down in proportion to its distance from the top. This will feel springy.
+            elasticityFactor += mTransparentView.getHeight() * SPRING_DAMPENING_FACTOR;
+        }
+        return (position - mLastEventPosition[VERTICAL]) / elasticityFactor;
+    }
+
+    private void smoothScrollBy(int delta) {
+        if (delta == 0) {
+            // Delta=0 implies the code calling smoothScrollBy is sloppy. We should avoid doing
+            // this, since it prevents Views from being able to register any clicks for 250ms.
+            throw new IllegalArgumentException("Smooth scrolling by delta=0 is "
+                    + "pointless and harmful");
+        }
+        mScroller.startScroll(0, getScroll(), 0, delta);
+        invalidate();
+    }
+
+    /**
+     * Interpolator that enforces a specific starting velocity. This is useful to avoid a
+     * discontinuity between dragging speed and flinging speed.
+     *
+     * Similar to a {@link android.view.animation.AccelerateInterpolator} in the sense that
+     * getInterpolation() is a quadratic function.
+     */
+    private class AcceleratingFlingInterpolator implements Interpolator {
+
+        private final float mStartingSpeedPixelsPerFrame;
+        private final float mDurationMs;
+        private final int mPixelsDelta;
+        private final float mNumberFrames;
+
+        public AcceleratingFlingInterpolator(int durationMs, float startingSpeedPixelsPerSecond,
+                int pixelsDelta) {
+            mStartingSpeedPixelsPerFrame = startingSpeedPixelsPerSecond / getRefreshRate();
+            mDurationMs = durationMs;
+            mPixelsDelta = pixelsDelta;
+            mNumberFrames = mDurationMs / getFrameIntervalMs();
+        }
+
+        @Override
+        public float getInterpolation(float input) {
+            final float animationIntervalNumber = mNumberFrames * input;
+            final float linearDelta = (animationIntervalNumber * mStartingSpeedPixelsPerFrame)
+                    / mPixelsDelta;
+            // Add the results of a linear interpolator (with the initial speed) with the
+            // results of a AccelerateInterpolator.
+            if (mStartingSpeedPixelsPerFrame > 0) {
+                return Math.min(input * input + linearDelta, 1);
+            } else {
+                // Initial fling was in the wrong direction, make sure that the quadratic component
+                // grows faster in order to make up for this.
+                return Math.min(input * (input - linearDelta) + linearDelta, 1);
+            }
+        }
+
+        private float getRefreshRate() {
+            final DisplayManager displayManager = (DisplayManager) MultiShrinkScroller
+                    .this.getContext().getSystemService(Context.DISPLAY_SERVICE);
+            return displayManager.getDisplay(Display.DEFAULT_DISPLAY).getRefreshRate();
+        }
+
+        public long getFrameIntervalMs() {
+            return (long)(1000 / getRefreshRate());
+        }
+    }
+
+    /**
+     * Expand the header if the mScrollViewChild is about to shrink by enough to create new empty
+     * space at the bottom of this ViewGroup.
+     */
+    public void prepareForShrinkingScrollChild(int heightDelta) {
+        final int newEmptyScrollViewSpace = -getOverflowingChildViewSize() + heightDelta;
+        if (newEmptyScrollViewSpace > 0 && !mIsTwoPanel) {
+            final int newDesiredToolbarHeight = Math.min(getToolbarHeight()
+                    + newEmptyScrollViewSpace, getMaximumScrollableHeaderHeight());
+            ObjectAnimator.ofInt(this, "toolbarHeight", newDesiredToolbarHeight).setDuration(
+                    ExpandingEntryCardView.DURATION_COLLAPSE_ANIMATION_CHANGE_BOUNDS).start();
+        }
+    }
+
+    /**
+     * If {@param areTouchesDisabled} is TRUE, ignore all of the user's touches.
+     */
+    public void setDisableTouchesForSuppressLayout(boolean areTouchesDisabled) {
+        // The card expansion animation uses the Transition framework's ChangeBounds API. This
+        // invokes suppressLayout(true) on the MultiShrinkScroller. As a result, we need to avoid
+        // all layout changes during expansion in order to avoid weird layout artifacts.
+        mIsTouchDisabledForSuppressLayout = areTouchesDisabled;
+    }
+}
diff --git a/src/com/android/contacts/widget/NotifyingSpinner.java b/src/com/android/contacts/widget/NotifyingSpinner.java
new file mode 100644
index 0000000..972cb35
--- /dev/null
+++ b/src/com/android/contacts/widget/NotifyingSpinner.java
@@ -0,0 +1,55 @@
+/*
+ * 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.widget;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.Spinner;
+
+/**
+ * Spinner that notifies a listener when the user taps on an item, whether or not this results
+ * in a change of selection.
+ */
+public class NotifyingSpinner extends Spinner {
+
+    public interface SelectionListener {
+        void onSetSelection(NotifyingSpinner view, int position);
+    }
+
+    private SelectionListener mListener;
+
+    public NotifyingSpinner(Context context) {
+        super(context);
+    }
+
+    public NotifyingSpinner(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public void setSetSelectionListener(SelectionListener listener) {
+        mListener = listener;
+    }
+
+    @Override
+    public void setSelection(int position) {
+        super.setSelection(position);
+
+        if (mListener != null) {
+            mListener.onSetSelection(this, position);
+        }
+    }
+}
diff --git a/src/com/android/contacts/widget/QuickContactImageView.java b/src/com/android/contacts/widget/QuickContactImageView.java
new file mode 100644
index 0000000..f85fe16
--- /dev/null
+++ b/src/com/android/contacts/widget/QuickContactImageView.java
@@ -0,0 +1,90 @@
+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;
+import android.util.AttributeSet;
+import android.widget.ImageView;
+
+import com.android.contacts.R;
+
+/**
+ * An {@link ImageView} designed to display QuickContact's contact photo. When requested to draw
+ * {@link LetterTileDrawable}'s, this class instead draws a different default avatar drawable.
+ *
+ * In addition to supporting {@link ImageView#setColorFilter} this also supports a {@link #setTint}
+ * method.
+ *
+ * This entire class can be deleted once use of LetterTileDrawable is no longer used
+ * inside QuickContactsActivity at all.
+ */
+public class QuickContactImageView extends ImageView {
+
+    private Drawable mOriginalDrawable;
+    private BitmapDrawable mBitmapDrawable;
+    private int mTintColor;
+    private boolean mIsBusiness;
+
+    public QuickContactImageView(Context context) {
+        this(context, null);
+    }
+
+    public QuickContactImageView(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public QuickContactImageView(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
+
+    public void setTint(int color) {
+        if (mBitmapDrawable == null || mBitmapDrawable.getBitmap() == null
+                || mBitmapDrawable.getBitmap().hasAlpha()) {
+            setBackgroundColor(color);
+        } else {
+            setBackground(null);
+        }
+        mTintColor = color;
+        postInvalidate();
+    }
+
+    public boolean isBasedOffLetterTile() {
+        return mOriginalDrawable instanceof LetterTileDrawable;
+    }
+
+    public void setIsBusiness(boolean isBusiness) {
+        mIsBusiness = isBusiness;
+    }
+
+    @Override
+    public void setImageDrawable(Drawable drawable) {
+        // There is no way to avoid all this casting. Blending modes aren't equally
+        // supported for all drawable types.
+        final BitmapDrawable bitmapDrawable;
+        if (drawable == null || drawable instanceof BitmapDrawable) {
+            bitmapDrawable = (BitmapDrawable) drawable;
+        } else if (drawable instanceof LetterTileDrawable) {
+            if (!mIsBusiness) {
+                bitmapDrawable = (BitmapDrawable) getResources().getDrawable(
+                        R.drawable.person_white_540dp);
+            } else {
+                bitmapDrawable = (BitmapDrawable) getResources().getDrawable(
+                        R.drawable.generic_business_white_540dp);
+            }
+        } else {
+            throw new IllegalArgumentException("Does not support this type of drawable");
+        }
+
+        mOriginalDrawable = drawable;
+        mBitmapDrawable = bitmapDrawable;
+        setTint(mTintColor);
+        super.setImageDrawable(bitmapDrawable);
+    }
+
+    @Override
+    public Drawable getDrawable() {
+        return mOriginalDrawable;
+    }
+}
diff --git a/src/com/android/contacts/widget/SingleItemAdapter.java b/src/com/android/contacts/widget/SingleItemAdapter.java
new file mode 100644
index 0000000..3532bfc
--- /dev/null
+++ b/src/com/android/contacts/widget/SingleItemAdapter.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.widget;
+
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+
+/**
+ * A general purpose adapter that contains exactly one item.
+ */
+public abstract class SingleItemAdapter extends BaseAdapter {
+
+    public int getCount() {
+        return 1;
+    }
+
+    public Object getItem(int position) {
+        return null;
+    }
+
+    public long getItemId(int position) {
+        return 0;
+    }
+
+    public View getView(int position, View convertView, ViewGroup parent) {
+        return getView(convertView, parent);
+    }
+
+    /**
+     * Creates the view.
+     */
+    protected abstract View getView(View convertView, ViewGroup parent);
+}
diff --git a/src/com/android/contacts/widget/TouchlessScrollView.java b/src/com/android/contacts/widget/TouchlessScrollView.java
new file mode 100644
index 0000000..a0c0eb2
--- /dev/null
+++ b/src/com/android/contacts/widget/TouchlessScrollView.java
@@ -0,0 +1,55 @@
+package com.android.contacts.widget;
+
+import android.content.Context;
+import android.os.Parcelable;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.widget.ScrollView;
+
+/**
+ * A {@link ScrollView} that doesn't respond or intercept touch events.
+ *
+ * This is used in combination with {@link com.android.contacts.widget.MultiShrinkScroller} so
+ * that MultiShrinkScroller can handle all scrolling & saving.
+ */
+public class TouchlessScrollView extends ScrollView {
+
+    public TouchlessScrollView(Context context) {
+        this(context, null);
+    }
+
+    public TouchlessScrollView(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public TouchlessScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
+
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        // Do not save the current scroll position. Always store scrollY=0 and delegate
+        // responsibility of saving state to the MultiShrinkScroller.
+        final int scrollY = getScrollY();
+        setScrollY(0);
+        final Parcelable returnValue = super.onSaveInstanceState();
+        setScrollY(scrollY);
+        return returnValue;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent ev) {
+        return false;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+        return false;
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/widget/TransitionAnimationView.java b/src/com/android/contacts/widget/TransitionAnimationView.java
new file mode 100644
index 0000000..2e277a9
--- /dev/null
+++ b/src/com/android/contacts/widget/TransitionAnimationView.java
@@ -0,0 +1,92 @@
+/*
+ * 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.widget;
+
+import android.animation.ObjectAnimator;
+import android.content.Context;
+import android.graphics.Color;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.FrameLayout;
+
+/**
+ * A container that places a masking view on top of all other views.  The masking view can be
+ * faded in and out.  Currently, the masking view is solid color white.
+ */
+public class TransitionAnimationView extends FrameLayout {
+    private View mMaskingView;
+    private ObjectAnimator mAnimator;
+
+    public TransitionAnimationView(Context context) {
+        this(context, null, 0);
+    }
+
+    public TransitionAnimationView(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public TransitionAnimationView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+        mMaskingView = new View(getContext());
+        mMaskingView.setVisibility(View.INVISIBLE);
+        mMaskingView.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT,
+                LayoutParams.MATCH_PARENT));
+        mMaskingView.setBackgroundColor(Color.WHITE);
+        addView(mMaskingView);
+    }
+
+    public void setMaskVisibility(boolean flag) {
+        if (flag) {
+            mMaskingView.setAlpha(1.0f);
+            mMaskingView.setVisibility(View.VISIBLE);
+        } else {
+            mMaskingView.setVisibility(View.INVISIBLE);
+        }
+    }
+
+    /**
+     * Starts the transition of showing or hiding the mask. To the user, the view will appear to
+     * either fade in or out of view.
+     *
+     * @param showMask If true, the mask the mask will be set to be invisible then fade into hide
+     * the other views in this container. If false, the the mask will be set to be hide other
+     * views initially.  Then, the other views in this container will be revealed.
+     * @param duration The duration the animation should last for. If -1, the system default(300)
+     * is used.
+     */
+    public void startMaskTransition(boolean showMask, int duration) {
+        // Stop any animation that may still be running.
+        if (mAnimator != null && mAnimator.isRunning()) {
+            mAnimator.end();
+        }
+        mMaskingView.setVisibility(View.VISIBLE);
+        if (showMask) {
+            mAnimator = ObjectAnimator.ofFloat(mMaskingView, View.ALPHA, 0.0f, 1.0f);
+        } else {
+            // asked to hide the view
+            mAnimator = ObjectAnimator.ofFloat(mMaskingView, View.ALPHA, 1.0f, 0.0f);
+        }
+        if (duration != -1) {
+            mAnimator.setDuration(duration);
+        }
+        mAnimator.start();
+    }
+}
diff --git a/src/com/android/contactsbind/Assistants.java b/src/com/android/contactsbind/Assistants.java
new file mode 100644
index 0000000..3fba91c
--- /dev/null
+++ b/src/com/android/contactsbind/Assistants.java
@@ -0,0 +1,34 @@
+/*
+ * 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.content.Intent;
+
+/**
+ * Creates default implementations of contacts assistants.
+ */
+public final class Assistants {
+
+    private Assistants() {
+    }
+
+    /**
+     * Returns an Intent to start an Activity to clean up duplicate contacts or null
+     * if it is not a supported feature.
+     */
+    public static Intent getDuplicatesActivityIntent(Context context) {
+        return null;
+    }
+}
diff --git a/src/com/android/contactsbind/HelpUtils.java b/src/com/android/contactsbind/HelpUtils.java
new file mode 100644
index 0000000..edec35a
--- /dev/null
+++ b/src/com/android/contactsbind/HelpUtils.java
@@ -0,0 +1,40 @@
+/*
+ * 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;
+
+import android.app.Activity;
+
+/**
+ * Utility for starting help and feedback activity. This stub class is designed to be overwritten
+ * by an overlay.
+ */
+public class HelpUtils {
+
+    /**
+     * Returns {@code TRUE} if {@link @launchHelpAndFeedbackForMainScreen} and
+     * {@link @launchHelpAndFeedbackForContactScreen} are implemented to start help and feedback
+     * activities.
+     */
+    public static boolean isHelpAndFeedbackAvailable() {
+        return false;
+    }
+
+    public static void launchHelpAndFeedbackForMainScreen(Activity activity) { }
+
+    public static void launchHelpAndFeedbackForContactScreen(Activity activity) { }
+
+}
diff --git a/tests/Android.mk b/tests/Android.mk
new file mode 100644
index 0000000..4fd947c
--- /dev/null
+++ b/tests/Android.mk
@@ -0,0 +1,23 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+# We only want this apk build for tests.
+LOCAL_MODULE_TAGS := tests
+LOCAL_CERTIFICATE := shared
+
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-test
+
+src_dirs := src \
+    ../../ContactsCommon/TestCommon/src
+
+# Include all test java files.
+LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
+
+LOCAL_PACKAGE_NAME := ContactsTests
+
+LOCAL_INSTRUMENTATION_FOR := Contacts
+
+LOCAL_SDK_VERSION := current
+LOCAL_MIN_SDK_VERSION := 21
+
+include $(BUILD_PACKAGE)
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
new file mode 100644
index 0000000..65c04bc
--- /dev/null
+++ b/tests/AndroidManifest.xml
@@ -0,0 +1,87 @@
+<?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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.contacts.tests">
+
+    <uses-sdk
+        android:minSdkVersion="21"
+        android:targetSdkVersion="25" />
+
+    <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.USE_CREDENTIALS" />
+    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
+    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
+    <uses-permission android:name="android.permission.READ_SYNC_STATS" />
+    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
+    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
+
+    <uses-permission android:name="android.permission.READ_PROFILE" />
+    <uses-permission android:name="android.permission.READ_SOCIAL_STREAM" />
+
+    <application
+        android:label="@string/applicationLabel">
+
+        <uses-library android:name="android.test.runner" />
+        <meta-data android:name="com.android.contacts.iconset" android:resource="@xml/iconset" />
+
+        <activity android:name=".allintents.AllIntentsActivity">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".allintents.ResultActivity"/>
+
+        <activity android:name=".quickcontact.QuickContactTestsActivity"/>
+
+        <!--
+          Test authenticators/sync adapters.
+
+          The idea is to have multiple account types with various edit schemas.  We use subclasses
+          so we could easily add multiple pairs of authenticators and sync adapters.
+          Unfortunately there's an issue with the contacts app which prevents a single apk from
+          having multiple contacts.xml files, so for now we only declare one account type here.
+        -->
+        <service android:name=".testauth.TestAuthenticationService$Basic" android:exported="true">
+            <intent-filter>
+                <action android:name="android.accounts.AccountAuthenticator" />
+            </intent-filter>
+            <meta-data
+                android:name="android.accounts.AccountAuthenticator"
+                android:resource="@xml/test_basic_authenticator" />
+        </service>
+
+        <service android:name=".QueryService" />
+        <service android:name=".PhoneNumberTestService" />
+    </application>
+
+    <instrumentation android:name="android.test.InstrumentationTestRunner"
+        android:targetPackage="com.android.contacts"
+        android:label="Contacts app tests">
+    </instrumentation>
+
+    <instrumentation android:name="com.android.contacts.ContactsLaunchPerformance"
+        android:targetPackage="com.android.contacts"
+        android:label="Contacts launch performance">
+    </instrumentation>
+
+</manifest>
diff --git a/tests/assets/README.txt b/tests/assets/README.txt
new file mode 100644
index 0000000..53bb0bd
--- /dev/null
+++ b/tests/assets/README.txt
@@ -0,0 +1,4 @@
+File quick_test_recording.mp3 is copyright 2011 by
+Hugo Hudson and is licensed under a
+Creative Commons Attribution 3.0 Unported License:
+  http://creativecommons.org/licenses/by/3.0/
diff --git a/tests/assets/quick_test_recording.mp3 b/tests/assets/quick_test_recording.mp3
new file mode 100644
index 0000000..ad7cb9c
--- /dev/null
+++ b/tests/assets/quick_test_recording.mp3
Binary files differ
diff --git a/tests/assets/v21_simple.vcf b/tests/assets/v21_simple.vcf
new file mode 100644
index 0000000..86f4d33
--- /dev/null
+++ b/tests/assets/v21_simple.vcf
@@ -0,0 +1,3 @@
+BEGIN:VCARD
+N:test
+END:VCARD
\ No newline at end of file
diff --git a/tests/assets/v30_simple.vcf b/tests/assets/v30_simple.vcf
new file mode 100644
index 0000000..418661f
--- /dev/null
+++ b/tests/assets/v30_simple.vcf
@@ -0,0 +1,13 @@
+BEGIN:VCARD

+VERSION:3.0

+FN:And Roid

+N:And;Roid;;;

+ORG:Open;Handset; Alliance

+SORT-STRING:android

+TEL;TYPE=PREF;TYPE=VOICE:0300000000

+CLASS:PUBLIC

+X-GNO:0

+X-GN:group0

+X-REDUCTION:0

+REV:20081031T065854Z

+END:VCARD

diff --git a/tests/res/drawable/android.jpg b/tests/res/drawable/android.jpg
new file mode 100644
index 0000000..95693b2
--- /dev/null
+++ b/tests/res/drawable/android.jpg
Binary files differ
diff --git a/tests/res/drawable/default_icon.png b/tests/res/drawable/default_icon.png
new file mode 100644
index 0000000..cea0eb3
--- /dev/null
+++ b/tests/res/drawable/default_icon.png
Binary files differ
diff --git a/tests/res/drawable/goldengate.jpg b/tests/res/drawable/goldengate.jpg
new file mode 100644
index 0000000..7bd3f67
--- /dev/null
+++ b/tests/res/drawable/goldengate.jpg
Binary files differ
diff --git a/tests/res/drawable/ic_contact_picture.png b/tests/res/drawable/ic_contact_picture.png
new file mode 100644
index 0000000..6876777
--- /dev/null
+++ b/tests/res/drawable/ic_contact_picture.png
Binary files differ
diff --git a/tests/res/drawable/iceland.jpg b/tests/res/drawable/iceland.jpg
new file mode 100644
index 0000000..0ed210e
--- /dev/null
+++ b/tests/res/drawable/iceland.jpg
Binary files differ
diff --git a/tests/res/drawable/japan.jpg b/tests/res/drawable/japan.jpg
new file mode 100644
index 0000000..e39f387
--- /dev/null
+++ b/tests/res/drawable/japan.jpg
Binary files differ
diff --git a/tests/res/drawable/phone_icon.png b/tests/res/drawable/phone_icon.png
new file mode 100644
index 0000000..4e613ec
--- /dev/null
+++ b/tests/res/drawable/phone_icon.png
Binary files differ
diff --git a/tests/res/drawable/sydney.jpg b/tests/res/drawable/sydney.jpg
new file mode 100644
index 0000000..02b407c
--- /dev/null
+++ b/tests/res/drawable/sydney.jpg
Binary files differ
diff --git a/tests/res/drawable/wharf.jpg b/tests/res/drawable/wharf.jpg
new file mode 100644
index 0000000..fa6b04f
--- /dev/null
+++ b/tests/res/drawable/wharf.jpg
Binary files differ
diff --git a/tests/res/drawable/whiskey.jpg b/tests/res/drawable/whiskey.jpg
new file mode 100644
index 0000000..e8ffb85
--- /dev/null
+++ b/tests/res/drawable/whiskey.jpg
Binary files differ
diff --git a/tests/res/layout/fill_call_log_test.xml b/tests/res/layout/fill_call_log_test.xml
new file mode 100644
index 0000000..01ade3e
--- /dev/null
+++ b/tests/res/layout/fill_call_log_test.xml
@@ -0,0 +1,55 @@
+<?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:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center_horizontal"
+>
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="@string/numberOfCallLogEntries"
+    />
+    <EditText
+        android:id="@+id/number"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:inputType="number"
+        android:text="10"
+        />
+    <CheckBox
+        android:id="@+id/use_random_numbers"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="@string/useRandomNumbers"
+    />
+    <Button
+        android:id="@+id/add"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="@string/addToCallLogButton"
+    />
+    <ProgressBar
+        android:id="@+id/progress"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:indeterminate="false"
+        android:visibility="gone"
+    />
+</LinearLayout>
diff --git a/tests/res/layout/intent_list_item.xml b/tests/res/layout/intent_list_item.xml
new file mode 100644
index 0000000..4749224
--- /dev/null
+++ b/tests/res/layout/intent_list_item.xml
@@ -0,0 +1,25 @@
+<?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.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/text1"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:textAppearance="?android:attr/textAppearanceSmall"
+    android:gravity="center_vertical"
+    android:paddingLeft="6dip"
+    android:minHeight="?android:attr/listPreferredItemHeight"
+/>
diff --git a/tests/res/layout/quick_contact_tests.xml b/tests/res/layout/quick_contact_tests.xml
new file mode 100644
index 0000000..71393cf
--- /dev/null
+++ b/tests/res/layout/quick_contact_tests.xml
@@ -0,0 +1,101 @@
+<?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:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:layout_marginTop="16dip">
+        <QuickContactBadge
+            android:id="@+id/small_badge1"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            style="?android:attr/quickContactBadgeStyleWindowSmall"
+            android:layout_marginLeft="4dip" />
+        <QuickContactBadge
+            android:id="@+id/medium_badge1"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            style="?android:attr/quickContactBadgeStyleWindowMedium"
+            android:layout_marginLeft="4dip" />
+        <QuickContactBadge
+            android:id="@+id/large_badge1"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            style="?android:attr/quickContactBadgeStyleWindowLarge"
+            android:layout_marginLeft="4dip" />
+    </LinearLayout>
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="0px"
+        android:layout_weight="1" />
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+        <Button
+            android:id="@+id/pick_contact"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="32dip"
+            android:text="@string/pickContact" />
+        <TextView
+            android:id="@+id/uri"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="32dip" />
+    </LinearLayout>
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="0px"
+        android:layout_weight="1" />
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:layout_marginBottom="16dip">
+        <QuickContactBadge
+            android:id="@+id/small_badge2"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            style="?android:attr/quickContactBadgeStyleSmallWindowSmall"
+            android:layout_marginLeft="4dip" />
+        <QuickContactBadge
+            android:id="@+id/medium_badge2"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            style="?android:attr/quickContactBadgeStyleSmallWindowMedium"
+            android:layout_marginLeft="4dip" />
+        <QuickContactBadge
+            android:id="@+id/large_badge2"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            style="?android:attr/quickContactBadgeStyleSmallWindowLarge"
+            android:layout_marginLeft="4dip" />
+    </LinearLayout>
+    <Button
+        android:id="@android:id/button1"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/quickContactIntent"
+        android:enabled="false"/>
+</LinearLayout>
+
diff --git a/tests/res/layout/result.xml b/tests/res/layout/result.xml
new file mode 100644
index 0000000..0ab32c6
--- /dev/null
+++ b/tests/res/layout/result.xml
@@ -0,0 +1,32 @@
+<?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"
+>
+
+  <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
+      android:id="@+id/table"
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:shrinkColumns="1"
+      android:stretchColumns="*">
+  </TableLayout>
+</ScrollView>
+
diff --git a/tests/res/values/donottranslate_config.xml b/tests/res/values/donottranslate_config.xml
new file mode 100644
index 0000000..9931d85
--- /dev/null
+++ b/tests/res/values/donottranslate_config.xml
@@ -0,0 +1,20 @@
+<?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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+    <string name="target_package_name">com.android.contacts</string>
+
+</resources>
diff --git a/tests/res/values/donottranslate_strings_tmp.xml b/tests/res/values/donottranslate_strings_tmp.xml
new file mode 100644
index 0000000..8f43dbf
--- /dev/null
+++ b/tests/res/values/donottranslate_strings_tmp.xml
@@ -0,0 +1,108 @@
+<?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.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+    <string name="applicationLabel">Contacts Test</string>
+
+    <string-array name="allIntents">
+        <!-- List modes -->
+        <item>ACTION_PICK: contact</item>
+        <item>ACTION_PICK: contact (legacy)</item>
+        <item>ACTION_PICK: phone</item>
+        <item>ACTION_PICK: phone (legacy)</item>
+        <item>ACTION_PICK: postal</item>
+        <item>ACTION_PICK: postal (legacy)</item>
+        <item>ACTION_PICK: e-mail</item>
+        <item>ACTION_CREATE_SHORTCUT: contact</item>
+        <item>ACTION_CREATE_SHORTCUT: dial</item>
+        <item>ACTION_CREATE_SHORTCUT: message</item>
+        <item>ACTION_GET_CONTENT: contact</item>
+        <item>ACTION_GET_CONTENT: contact (legacy)</item>
+        <item>ACTION_GET_CONTENT: phone</item>
+        <item>ACTION_GET_CONTENT: phone (legacy)</item>
+        <item>ACTION_GET_CONTENT: postal</item>
+        <item>ACTION_GET_CONTENT: postal (legacy)</item>
+        <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 -->
+        <item>EDIT (content uri with only id)</item>
+        <item>EDIT (lookup uri without id)</item>
+        <item>EDIT (lookup uri)</item>
+        <item>EDIT (called for raw contact)</item>
+        <item>EDIT (legacy style uri)</item>
+        <item>EDIT (create new contact)</item>
+        <item>EDIT (create new contact with data)</item>
+        <item>EDIT (create new contact for account)</item>
+        <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 -->
+        <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>
+    <string name="quickContactIntent">Start with Intent</string>
+    <string name="fillCallLogTest">Fill call log test</string>
+    <string name="addToCallLogButton">Add</string>
+    <string name="numberOfCallLogEntries">Number of call log entries to add:</string>
+    <string name="useRandomNumbers">Use random numbers</string>
+    <string name="addedLogEntriesToast">Added %1$d call log entries.</string>
+    <string name="noLogEntriesToast">No entries in the call log yet.  Need at least one record for the template.  Or use random numbers.</string>
+    <string name="exitButton">Exit</string>
+
+    <string-array name="pinnedHeaderUseCases">
+        <item>One short section - no headers</item>
+        <item>Two short sections with headers</item>
+        <item>Five short sections with headers</item>
+    </string-array>
+
+    <string name="attribution_google_plus">Google+</string>
+    <string name="attribution_google_talk">Google Talk</string>
+    <string name="attribution_flicker">Flicker</string>
+    <string name="attribution_twitter">Twitter</string>
+
+    <string name="authenticator_basic_label">Test adapter</string>
+</resources>
diff --git a/tests/res/xml/iconset.xml b/tests/res/xml/iconset.xml
new file mode 100644
index 0000000..d1207e7
--- /dev/null
+++ b/tests/res/xml/iconset.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.
+-->
+
+<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" 
+        android:icon="@drawable/phone_icon" />
+
+</icon-set>
\ No newline at end of file
diff --git a/tests/res/xml/test_basic_authenticator.xml b/tests/res/xml/test_basic_authenticator.xml
new file mode 100644
index 0000000..ecd100a
--- /dev/null
+++ b/tests/res/xml/test_basic_authenticator.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.
+ */
+-->
+
+<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"
+/>
diff --git a/tests/src/com/android/contacts/ContactsLaunchPerformance.java b/tests/src/com/android/contacts/ContactsLaunchPerformance.java
new file mode 100644
index 0000000..894ae2c
--- /dev/null
+++ b/tests/src/com/android/contacts/ContactsLaunchPerformance.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;
+
+import android.app.Activity;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.os.Bundle;
+
+import com.android.contacts.common.test.LaunchPerformanceBase;
+
+/**
+ * Instrumentation class for Address Book launch performance testing.
+ */
+public class ContactsLaunchPerformance extends LaunchPerformanceBase {
+
+    @Override
+    public void onCreate(Bundle arguments) {
+        mIntent.setAction(Intent.ACTION_MAIN);
+        mIntent.addCategory(Intent.CATEGORY_LAUNCHER);
+        mIntent.setComponent(new ComponentName(getTargetContext(),
+                "com.android.contacts.activities.PeopleActivity"));
+
+        start();
+    }
+
+    /**
+     * Calls LaunchApp and finish.
+     */
+    @Override
+    public void onStart() {
+        super.onStart();
+        LaunchApp();
+        finish(Activity.RESULT_OK, mResults);
+    }
+}
diff --git a/tests/src/com/android/contacts/activities/PeopleActivityTest.java b/tests/src/com/android/contacts/activities/PeopleActivityTest.java
new file mode 100644
index 0000000..bb463e8
--- /dev/null
+++ b/tests/src/com/android/contacts/activities/PeopleActivityTest.java
@@ -0,0 +1,181 @@
+/*
+ * 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.activities;
+
+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.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;
+
+/**
+ * This test is so outdated that it's disabled temporarily.  TODO Update the test and re-enable it.
+ *
+ * Tests for {@link PeopleActivity}.
+ *
+ * Running all tests:
+ *
+ *   runtest contacts
+ * or
+ *   adb shell am instrument \
+ *     -w com.android.contacts.tests/android.test.InstrumentationTestRunner
+ *
+ */
+@SmallTest
+public class PeopleActivityTest
+        extends ActivityInstrumentationTestCase2<PeopleActivity>
+{
+    private static final String TEST_ACCOUNT = "testAccount";
+    private static final String TEST_ACCOUNT_TYPE = "testAccountType";
+
+    private ContactsMockContext mContext;
+    private MockContentProvider mContactsProvider;
+    private MockContentProvider mSettingsProvider;
+
+    public PeopleActivityTest() {
+        super(PeopleActivity.class);
+    }
+
+    @Override
+    public void setUp() {
+        mContext = new ContactsMockContext(getInstrumentation().getTargetContext());
+        mContactsProvider = mContext.getContactsProvider();
+        // The ContactsApplication performs this getType query to warm up the provider - see
+        // ContactsApplication#DelayedInitialization.doInBackground
+        mContactsProvider.expectTypeQuery(ContentUris.withAppendedId(Contacts.CONTENT_URI, 1),
+                Contacts.CONTENT_ITEM_TYPE);
+        mSettingsProvider = mContext.getSettingsProvider();
+        InjectedServices services = new InjectedServices();
+        services.setContentResolver(mContext.getContentResolver());
+        services.setSharedPreferences(new MockSharedPreferences());
+        ContactPhotoManager.injectContactPhotoManagerForTesting(new MockContactPhotoManager());
+        AccountType accountType = new BaseAccountType() {
+            @Override
+            public boolean areContactsWritable() {
+                return false;
+            }
+        };
+        accountType.accountType = TEST_ACCOUNT_TYPE;
+
+        AccountWithDataSet account = new AccountWithDataSet(TEST_ACCOUNT, TEST_ACCOUNT_TYPE, null);
+        ContactsApplication.injectServices(services);
+
+        final MockAccountTypeManager mockManager = new MockAccountTypeManager(
+                        new AccountType[] { accountType }, new AccountWithDataSet[] { account });
+        AccountTypeManager.setInstanceForTest(mockManager);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        ContactsApplication.injectServices(null);
+        super.tearDown();
+    }
+
+    private void expectProviderStatusQueryAndReturnNormal() {
+        mContactsProvider
+                .expectQuery(ProviderStatus.CONTENT_URI)
+                .withProjection(ProviderStatus.STATUS)
+                .returnRow(ProviderStatus.STATUS_NORMAL)
+                .anyNumberOfTimes();
+    }
+
+    private void expectGroupsQueryAndReturnEmpty() {
+        mContactsProvider
+                .expectQuery(Groups.CONTENT_URI)
+                .withAnyProjection()
+                .withAnySelection()
+                .returnEmptyCursor()
+                .anyNumberOfTimes();
+    }
+
+    private void expectContactListQuery(int count) {
+        Uri uri = Contacts.CONTENT_URI.buildUpon()
+                .appendQueryParameter(Contacts.EXTRA_ADDRESS_BOOK_INDEX, "true")
+                .appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
+                        String.valueOf(Directory.DEFAULT))
+                .build();
+
+        Query query = mContactsProvider
+                .expectQuery(uri)
+                .withAnyProjection()
+                .withSortOrder(Contacts.SORT_KEY_PRIMARY);
+        for (int i = 1; i <= count; i++) {
+            ContentValues values = new ContentValues();
+            values.put(Contacts._ID, i);
+            values.put(Contacts.DISPLAY_NAME, "Contact " + i);
+            values.put(Contacts.SORT_KEY_PRIMARY, "contact " + i);
+            values.put(Contacts.LOOKUP_KEY, "lu" + i);
+            query.returnRow(values);
+        }
+    }
+
+    private void expectContactLookupQuery(
+            String lookupKey, long id, String returnLookupKey, long returnId) {
+        Uri uri = Contacts.getLookupUri(id, lookupKey);
+        mContactsProvider.expectTypeQuery(uri, Contacts.CONTENT_ITEM_TYPE);
+        mContactsProvider
+                .expectQuery(uri)
+                .withProjection(Contacts._ID, Contacts.LOOKUP_KEY)
+                .returnRow(returnId, returnLookupKey);
+    }
+
+    private void expectContactEntityQuery(String lookupKey, int contactId) {
+        Uri uri = Uri.withAppendedPath(
+                Contacts.getLookupUri(contactId, lookupKey), Contacts.Entity.CONTENT_DIRECTORY);
+        ContentValues row1 = new ContentValues();
+        row1.put(Contacts.Entity.DATA_ID, 1);
+        row1.put(Contacts.Entity.LOOKUP_KEY, lookupKey);
+        row1.put(Contacts.Entity.CONTACT_ID, contactId);
+        row1.put(Contacts.Entity.DISPLAY_NAME, "Contact " + contactId);
+        row1.put(Contacts.Entity.ACCOUNT_NAME, TEST_ACCOUNT);
+        row1.put(Contacts.Entity.ACCOUNT_TYPE, TEST_ACCOUNT_TYPE);
+        mContactsProvider
+                .expectQuery(uri)
+                .withAnyProjection()
+                .withAnySortOrder()
+                .returnRow(row1)
+                .anyNumberOfTimes();
+    }
+}
diff --git a/tests/src/com/android/contacts/editor/ContactEditorUtilsTest.java b/tests/src/com/android/contacts/editor/ContactEditorUtilsTest.java
new file mode 100644
index 0000000..2e0306a
--- /dev/null
+++ b/tests/src/com/android/contacts/editor/ContactEditorUtilsTest.java
@@ -0,0 +1,326 @@
+/*
+ * 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.editor;
+
+import android.test.AndroidTestCase;
+import android.test.MoreAsserts;
+import android.test.suitebuilder.annotation.SmallTest;
+
+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 java.util.Collection;
+import java.util.Set;
+
+/**
+ * Test case for {@link ContactEditorUtils}.
+ *
+ * adb shell am instrument -w -e class com.android.contacts.editor.ContactEditorUtilsTest \
+       com.android.contacts.tests/android.test.InstrumentationTestRunner
+ */
+@SmallTest
+public class ContactEditorUtilsTest extends AndroidTestCase {
+    private MockAccountTypeManager mAccountTypes;
+    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);
+
+    // 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.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_2EX_A = new AccountWithDataSet(
+            "a", TYPE2EX.accountType, TYPE2EX.dataSet);
+
+    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);
+
+        // 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()}
+     */
+    public void testSaveDefaultAndAllAccounts() {
+        // Use these account types here.
+        setAccountTypes(TYPE1, TYPE2);
+
+        // 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
+    }
+
+    /**
+     * Tests for {@link ContactEditorUtils#shouldShowAccountChangedNotification()}, starting with
+     * 0 accounts.
+     */
+    public void testShouldShowAccountChangedNotification_0Accounts() {
+        setAccountTypes(TYPE1);
+
+        // First launch -- always true.
+        assertTrue(mTarget.shouldShowAccountChangedNotification());
+
+        // We show the notification here, and user clicked "add account"
+        setAccounts(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);
+
+        // Next time the user creates a contact, we don't show the notification.
+        assertFalse(mTarget.shouldShowAccountChangedNotification());
+
+        // User added a new writable account, ACCOUNT_1_B.
+        setAccounts(ACCOUNT_1_A, ACCOUNT_1_B);
+
+        // Since default account is still ACCOUNT_1_A, we don't show the notification.
+        assertFalse(mTarget.shouldShowAccountChangedNotification());
+
+        // User saved a new contact.  We update the account list and the default account.
+        mTarget.saveDefaultAndAllAccounts(ACCOUNT_1_B);
+
+        // User created another contact.  Now we don't show the notification.
+        assertFalse(mTarget.shouldShowAccountChangedNotification());
+
+        // 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);
+
+        // New added account but default account is still not changed, so no notification.
+        assertFalse(mTarget.shouldShowAccountChangedNotification());
+
+        // User saves a new contact, with a different default account.
+        mTarget.saveDefaultAndAllAccounts(ACCOUNT_2_A);
+
+        // Next time user creates a contact, no notification.
+        assertFalse(mTarget.shouldShowAccountChangedNotification());
+
+        // Remove ACCOUNT_2EX_A.
+        setAccountTypes(TYPE1, TYPE2, TYPE2EX);
+        setAccounts(ACCOUNT_1_A, ACCOUNT_1_B, ACCOUNT_2_A);
+
+        // ACCOUNT_2EX_A was not default, so no notification either.
+        assertFalse(mTarget.shouldShowAccountChangedNotification());
+
+        // Remove ACCOUNT_1_B, which is default.
+        setAccountTypes(TYPE1, TYPE2, TYPE2EX);
+        setAccounts(ACCOUNT_1_A, ACCOUNT_1_B);
+
+        // Now we show the notification.
+        assertTrue(mTarget.shouldShowAccountChangedNotification());
+
+        // 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);
+
+        // No default account, so show notification.
+        assertTrue(mTarget.shouldShowAccountChangedNotification());
+    }
+
+    /**
+     * Tests for {@link ContactEditorUtils#shouldShowAccountChangedNotification()}, starting with
+     * 1 accounts.
+     */
+    public void testShouldShowAccountChangedNotification_1Account() {
+        setAccountTypes(TYPE1, TYPE2);
+        setAccounts(ACCOUNT_1_A);
+
+        // Always returns false when 1 writable account.
+        assertFalse(mTarget.shouldShowAccountChangedNotification());
+
+        // User saves a new contact.
+        mTarget.saveDefaultAndAllAccounts(ACCOUNT_1_A);
+
+        // Next time, no notification.
+        assertFalse(mTarget.shouldShowAccountChangedNotification());
+
+        // The rest is the same...
+    }
+
+    /**
+     * Tests for {@link ContactEditorUtils#shouldShowAccountChangedNotification()}, starting with
+     * 0 accounts, and the user selected "local only".
+     */
+    public void testShouldShowAccountChangedNotification_0Account_localOnly() {
+        setAccountTypes(TYPE1);
+
+        // First launch -- always true.
+        assertTrue(mTarget.shouldShowAccountChangedNotification());
+
+        // We show the notification here, and user clicked "keep local" and saved an contact.
+        mTarget.saveDefaultAndAllAccounts(null);
+
+        // 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());
+    }
+
+    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);
+
+        // Right after a save, the dialog shouldn't show up.
+        assertFalse(mTarget.shouldShowAccountChangedNotification());
+
+        // 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());
+    }
+
+    private static <T> Set<T> toSet(Collection<T> collection) {
+        Set<T> ret = Sets.newHashSet();
+        ret.addAll(collection);
+        return ret;
+    }
+
+    private static class MockAccountType extends AccountType {
+        private boolean mAreContactsWritable;
+
+        public MockAccountType(String accountType, String dataSet, boolean areContactsWritable) {
+            this.accountType = accountType;
+            this.dataSet = dataSet;
+            mAreContactsWritable = areContactsWritable;
+        }
+
+        @Override
+        public boolean areContactsWritable() {
+            return mAreContactsWritable;
+        }
+
+        @Override
+        public boolean isGroupMembershipEditable() {
+            return true;
+        }
+    }
+}
diff --git a/tests/src/com/android/contacts/editor/EditorUiUtilsTest.java b/tests/src/com/android/contacts/editor/EditorUiUtilsTest.java
new file mode 100644
index 0000000..19f28d3
--- /dev/null
+++ b/tests/src/com/android/contacts/editor/EditorUiUtilsTest.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.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;
+import android.os.Build;
+import android.provider.Settings;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.util.Pair;
+
+/**
+ * Tests {@link EditorUiUtils}.
+ */
+@SmallTest
+public class EditorUiUtilsTest extends AndroidTestCase {
+
+    private static final String ACCOUNT_NAME = "somebody@lunkedin.com";
+    private static final String DISPLAY_LABEL = "LunkedIn";
+
+    private static final String GOOGLE_ACCOUNT_NAME = "somebody@gmail.com";
+    private static final String GOOGLE_DISPLAY_LABEL = "Google";
+
+    private static final String RINGTONE = "content://media/external/audio/media/31";
+
+    private static final class MockAccountType extends AccountType {
+
+        private final String mDisplayLabel;
+
+        private MockAccountType(String displayLabel) {
+            mDisplayLabel = displayLabel;
+        }
+
+        @Override
+        public boolean areContactsWritable() {
+            return false;
+        }
+
+        @Override
+        public boolean isGroupMembershipEditable() {
+            return false;
+        }
+
+        @Override
+        public CharSequence getDisplayLabel(Context context) {
+            return mDisplayLabel;
+        }
+    }
+
+    public void testGetProfileAccountInfo_AccountName() {
+        final Pair pair = EditorUiUtils.getLocalAccountInfo(getContext(),
+                ACCOUNT_NAME, new MockAccountType(DISPLAY_LABEL));
+
+        assertNotNull(pair);
+        assertEquals(ACCOUNT_NAME, pair.first);
+        assertEquals(getContext().getString(R.string.external_profile_title, DISPLAY_LABEL),
+                pair.second); // My LunkedIn profile
+    }
+
+    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 testGetAccountInfo_AccountName_DisplayLabel() {
+        final Pair pair = EditorUiUtils.getAccountInfo(getContext(),
+                ACCOUNT_NAME, new MockAccountType(DISPLAY_LABEL));
+
+        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
+    }
+
+    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);
+
+        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
+    }
+
+    public void testGetAccountInfo_AccountName_NoDisplayLabel() {
+        final Pair pair = EditorUiUtils.getAccountInfo(getContext(),
+                ACCOUNT_NAME, new MockAccountType(/* displayLabel =*/ null));
+
+        assertNotNull(pair);
+        assertEquals(getContext().getString(R.string.from_account_format, ACCOUNT_NAME),
+                pair.first); // somebody@lunkedin.com
+        assertEquals(getContext().getString(R.string.account_phone), pair.second); // Device
+    }
+
+    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
+
+        final Pair pairDevice = EditorUiUtils.getAccountInfo(
+                getContext(),
+                /* accountName =*/ null,
+                new MockAccountType(getContext().getString(R.string.account_phone)));
+        assertNotNull(pairDevice);
+        assertNull(pairDevice.first);
+        assertEquals(getContext().getString(R.string.account_phone), pairDevice.second); // Device
+    }
+
+    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_phone), pair.second); // Device
+    }
+
+    public void testGetRingtongStrFromUri_lessThanOrEqualsToM() {
+        final int currentVersion = Build.VERSION_CODES.M;
+        assertNull(EditorUiUtils.getRingtoneStringFromUri(null, currentVersion));
+        assertNull(EditorUiUtils.getRingtoneStringFromUri(Settings.System.DEFAULT_RINGTONE_URI,
+                currentVersion));
+        assertEquals(RINGTONE, EditorUiUtils.getRingtoneStringFromUri(Uri.parse(RINGTONE),
+                        currentVersion));
+    }
+
+    public void testGetRingtongStrFromUri_nOrGreater() {
+        final int currentVersion = Build.VERSION_CODES.M + 1;
+        assertEquals("", EditorUiUtils.getRingtoneStringFromUri(null, currentVersion));
+        assertNull(EditorUiUtils.getRingtoneStringFromUri(Settings.System.DEFAULT_RINGTONE_URI,
+                currentVersion));
+        assertEquals(RINGTONE, EditorUiUtils.getRingtoneStringFromUri(Uri.parse(RINGTONE),
+                        currentVersion));
+    }
+
+    public void testGetRingtongUriFromStr_lessThanOrEqualsToM() {
+        final int currentVersion = Build.VERSION_CODES.M;
+        assertEquals(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE), EditorUiUtils
+                        .getRingtoneUriFromString(null, currentVersion));
+        assertEquals(Uri.parse(""), EditorUiUtils.getRingtoneUriFromString("", currentVersion));
+        assertEquals(Uri.parse(RINGTONE), EditorUiUtils.getRingtoneUriFromString(RINGTONE,
+                currentVersion));
+    }
+
+    public void testGetRingtongUriFromStr_nOrGreater() {
+        final int currentVersion = Build.VERSION_CODES.M + 1;
+        assertEquals(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE), EditorUiUtils
+                        .getRingtoneUriFromString(null, currentVersion));
+        assertNull(EditorUiUtils.getRingtoneUriFromString("", currentVersion));
+        assertEquals(Uri.parse(RINGTONE), EditorUiUtils.getRingtoneUriFromString(RINGTONE,
+                currentVersion));
+    }
+
+}
diff --git a/tests/src/com/android/contacts/interactions/CallLogInteractionsLoaderTest.java b/tests/src/com/android/contacts/interactions/CallLogInteractionsLoaderTest.java
new file mode 100644
index 0000000..079411f
--- /dev/null
+++ b/tests/src/com/android/contacts/interactions/CallLogInteractionsLoaderTest.java
@@ -0,0 +1,65 @@
+package com.android.contacts.interactions;
+
+import android.content.ContentValues;
+import android.provider.CallLog.Calls;
+import android.test.AndroidTestCase;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Tests {@link CallLogInteractionsLoader}
+ */
+public class CallLogInteractionsLoaderTest extends AndroidTestCase {
+
+    public void testCallLogInteractions_pruneDuplicates_containsDuplicates() {
+        List<ContactInteraction> interactions = new ArrayList<>();
+        int maxToRetrieve = 5;
+
+        ContentValues interactionOneValues = new ContentValues();
+        interactionOneValues.put(Calls.DATE, 1L);
+        interactions.add(new CallLogInteraction(interactionOneValues));
+
+        ContentValues interactionTwoValues = new ContentValues();
+        interactionTwoValues.put(Calls.DATE, 1L);
+        interactions.add(new CallLogInteraction(interactionTwoValues));
+
+        interactions = CallLogInteractionsLoader.pruneDuplicateCallLogInteractions(interactions,
+                maxToRetrieve);
+        assertEquals(1, interactions.size());
+    }
+
+    public void testCallLogInteractions_pruneDuplicates_containsNoDuplicates() {
+        List<ContactInteraction> interactions = new ArrayList<>();
+        int maxToRetrieve = 5;
+
+        ContentValues interactionOneValues = new ContentValues();
+        interactionOneValues.put(Calls.DATE, 1L);
+        interactions.add(new CallLogInteraction(interactionOneValues));
+
+        ContentValues interactionTwoValues = new ContentValues();
+        interactionTwoValues.put(Calls.DATE, 5L);
+        interactions.add(new CallLogInteraction(interactionTwoValues));
+
+        interactions = CallLogInteractionsLoader.pruneDuplicateCallLogInteractions(interactions,
+                maxToRetrieve);
+        assertEquals(2, interactions.size());
+    }
+
+    public void testCallLogInteractions_maxToRetrieve() {
+        List<ContactInteraction> interactions = new ArrayList<>();
+        int maxToRetrieve = 1;
+
+        ContentValues interactionOneValues = new ContentValues();
+        interactionOneValues.put(Calls.DATE, 1L);
+        interactions.add(new CallLogInteraction(interactionOneValues));
+
+        ContentValues interactionTwoValues = new ContentValues();
+        interactionTwoValues.put(Calls.DATE, 5L);
+        interactions.add(new CallLogInteraction(interactionTwoValues));
+
+        interactions = CallLogInteractionsLoader.pruneDuplicateCallLogInteractions(interactions,
+                maxToRetrieve);
+        assertEquals(1, interactions.size());
+    }
+}
diff --git a/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java b/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
new file mode 100644
index 0000000..0d62376
--- /dev/null
+++ b/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
@@ -0,0 +1,161 @@
+/*
+ * 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.content.ContentUris;
+import android.net.Uri;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Contacts.Entity;
+import android.test.ActivityInstrumentationTestCase2;
+import android.test.suitebuilder.annotation.SmallTest;
+
+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;
+
+/**
+ * Tests for {@link ContactDeletionInteraction}.
+ *
+ * Running all tests:
+ *
+ *   runtest contacts
+ * or
+ *   adb shell am instrument \
+ *     -w com.android.contacts.tests/android.test.InstrumentationTestRunner
+ */
+@SmallTest
+public class ContactDeletionInteractionTest
+        extends ActivityInstrumentationTestCase2<FragmentTestActivity> {
+    private static final Uri CONTACT_URI = ContentUris.withAppendedId(Contacts.CONTENT_URI, 13);
+    private static final Uri ENTITY_URI = Uri.withAppendedPath(
+            CONTACT_URI, Entity.CONTENT_DIRECTORY);
+
+    public static final String WRITABLE_ACCOUNT_TYPE = "writable";
+    public static final String READONLY_ACCOUNT_TYPE = "readonly";
+
+    private ContactsMockContext mContext;
+    private MockContentProvider mContactsProvider;
+    private ContactDeletionInteraction mFragment;
+    private IntegrationTestUtils mUtils;
+
+    public ContactDeletionInteractionTest() {
+        super(FragmentTestActivity.class);
+    }
+
+    @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());
+
+        mContext = new ContactsMockContext(getInstrumentation().getTargetContext());
+        InjectedServices services = new InjectedServices();
+        services.setContentResolver(mContext.getContentResolver());
+
+        AccountType readOnlyAccountType = new BaseAccountType() {
+            @Override
+            public boolean areContactsWritable() {
+                return false;
+            }
+        };
+        readOnlyAccountType.accountType = READONLY_ACCOUNT_TYPE;
+
+        AccountType writableAccountType = new BaseAccountType() {
+            @Override
+            public boolean areContactsWritable() {
+                return true;
+            }
+        };
+        writableAccountType.accountType = WRITABLE_ACCOUNT_TYPE;
+        ContactsApplication.injectServices(services);
+
+        final MockAccountTypeManager mockManager = new MockAccountTypeManager(
+                new AccountType[] { writableAccountType, readOnlyAccountType }, null);
+        AccountTypeManager.setInstanceForTest(mockManager);
+        mContactsProvider = mContext.getContactsProvider();
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        ContactsApplication.injectServices(null);
+        mUtils.releaseScreenWakeLock();
+        super.tearDown();
+    }
+
+    public void testSingleWritableRawContact() {
+        expectQuery().returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo");
+        assertWithMessageId(R.string.deleteConfirmation);
+    }
+
+    public void testReadOnlyRawContacts() {
+        expectQuery().returnRow(1, READONLY_ACCOUNT_TYPE, null, 13, "foo");
+        assertWithMessageId(R.string.readOnlyContactWarning);
+    }
+
+    public void testMixOfWritableAndReadOnlyRawContacts() {
+        expectQuery()
+                .returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo")
+                .returnRow(2, READONLY_ACCOUNT_TYPE, null, 13, "foo");
+        assertWithMessageId(R.string.readOnlyContactDeleteConfirmation);
+    }
+
+    public void testMultipleWritableRawContacts() {
+        expectQuery()
+                .returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo")
+                .returnRow(2, WRITABLE_ACCOUNT_TYPE, null, 13, "foo");
+        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);
+    }
+
+    private void assertWithMessageId(int messageId) {
+        final FragmentTestActivity activity = getActivity();
+
+        final TestLoaderManager mockLoaderManager = new TestLoaderManager();
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                mFragment = ContactDeletionInteraction.startWithTestLoaderManager(
+                        activity, CONTACT_URI, false, mockLoaderManager);
+            }
+        });
+
+        getInstrumentation().waitForIdleSync();
+
+        mockLoaderManager.waitForLoaders(R.id.dialog_delete_contact_loader_id);
+
+        getInstrumentation().waitForIdleSync();
+
+        mContext.verify();
+
+        assertEquals(messageId, mFragment.mMessageId);
+    }
+}
diff --git a/tests/src/com/android/contacts/interactions/ContactInteractionUtilTest.java b/tests/src/com/android/contacts/interactions/ContactInteractionUtilTest.java
new file mode 100644
index 0000000..86167c1
--- /dev/null
+++ b/tests/src/com/android/contacts/interactions/ContactInteractionUtilTest.java
@@ -0,0 +1,100 @@
+/*
+ * 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.interactions;
+
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.test.AndroidTestCase;
+
+import java.util.Calendar;
+import java.util.Locale;
+
+/**
+ * Tests for utility functions in {@link ContactInteractionUtil}
+ */
+public class ContactInteractionUtilTest extends AndroidTestCase {
+
+    private Locale mOriginalLocale;
+    private Calendar calendar;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        calendar = Calendar.getInstance();
+
+        // Time/Date utilities rely on specific locales. Forace US and set back in tearDown()
+        mOriginalLocale = Locale.getDefault();
+        setLocale(Locale.US);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        setLocale(mOriginalLocale);
+        super.tearDown();
+    }
+
+    public void testOneQuestionMark() {
+        assertEquals("(?)", ContactInteractionUtil.questionMarks(1));
+    }
+
+    public void testTwoQuestionMarks() {
+        assertEquals("(?,?)", ContactInteractionUtil.questionMarks(2));
+    }
+
+    public void testFiveQuestionMarks() {
+        assertEquals("(?,?,?,?,?)", ContactInteractionUtil.questionMarks(5));
+    }
+
+    public void testFormatDateStringFromTimestamp_todaySingleMinuteAm() {
+        // Test today scenario (time shown)
+        // Single digit minute & AM
+        calendar.set(Calendar.HOUR_OF_DAY, 8);
+        calendar.set(Calendar.MINUTE, 8);
+        long todayTimestamp = calendar.getTimeInMillis();
+        assertEquals("8:08 AM", ContactInteractionUtil.formatDateStringFromTimestamp(
+                calendar.getTimeInMillis(), getContext()));
+    }
+
+    public void testFormatDateStringFromTimestamp_todayDoubleMinutePm() {
+        // Double digit minute & PM
+        calendar.set(Calendar.HOUR_OF_DAY, 22);
+        calendar.set(Calendar.MINUTE, 18);
+        assertEquals("10:18 PM",
+                ContactInteractionUtil.formatDateStringFromTimestamp(calendar.getTimeInMillis(),
+                        getContext()));
+    }
+
+    public void testFormatDateStringFromTimestamp_other() {
+        // Test other (Month Date)
+        calendar.set(
+                /* year = */ 1991,
+                /* month = */ Calendar.MONTH,
+                /* day = */ 11,
+                /* hourOfDay = */ 8,
+                /* minute = */ 8);
+        assertEquals("Monday, March 11, 1991, 8:08 AM",
+                ContactInteractionUtil.formatDateStringFromTimestamp(calendar.getTimeInMillis(),
+                        getContext()));
+    }
+
+    private void setLocale(Locale locale) {
+        Locale.setDefault(locale);
+        Resources res = getContext().getResources();
+        Configuration config = res.getConfiguration();
+        config.locale = locale;
+        res.updateConfiguration(config, res.getDisplayMetrics());
+    }
+}
\ No newline at end of file
diff --git a/tests/src/com/android/contacts/interactions/TestLoaderManager.java b/tests/src/com/android/contacts/interactions/TestLoaderManager.java
new file mode 100644
index 0000000..dacf616
--- /dev/null
+++ b/tests/src/com/android/contacts/interactions/TestLoaderManager.java
@@ -0,0 +1,176 @@
+/*
+ * 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.LoaderManager;
+import android.content.AsyncTaskLoader;
+import android.content.Loader;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.google.common.annotations.VisibleForTesting;
+
+import junit.framework.Assert;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+
+/**
+ * This implementation of TestLoaderManagerBase uses hidden APIs and must therefore
+ * be kept outside of the main Contacts apk.
+ */
+public class TestLoaderManager extends TestLoaderManagerBase {
+    private static final String TAG = "TestLoaderManager";
+
+    private final HashSet<Integer> mFinishedLoaders;
+
+    private LoaderManager mDelegate;
+
+    @VisibleForTesting
+    public TestLoaderManager() {
+        mFinishedLoaders = new HashSet<Integer>();
+    }
+
+    /**
+     * Sets the object to which we delegate the actual work.
+     * <p>
+     * It can not be set to null. Once set, it cannot be changed (but it allows setting it to the
+     * same value again).
+     */
+    public void setDelegate(LoaderManager delegate) {
+        if (delegate == null || (mDelegate != null && mDelegate != delegate)) {
+            throw new IllegalArgumentException("TestLoaderManager cannot be shared");
+        }
+
+        mDelegate = delegate;
+    }
+
+    public LoaderManager getDelegate() {
+        return mDelegate;
+    }
+
+    public void reset() {
+        mFinishedLoaders.clear();
+    }
+
+    /**
+     * Waits for the specified loaders to complete loading.
+     * <p>
+     * If one of the loaders has already completed since the last call to {@link #reset()}, it will
+     * not wait for it to complete again.
+     */
+    @VisibleForTesting
+    public synchronized void waitForLoaders(int... loaderIds) {
+        List<Loader<?>> loaders = new ArrayList<Loader<?>>(loaderIds.length);
+        for (int loaderId : loaderIds) {
+            if (mFinishedLoaders.contains(loaderId)) {
+                // This loader has already completed since the last reset, do not wait for it.
+                continue;
+            }
+
+            final AsyncTaskLoader<?> loader =
+                    (AsyncTaskLoader<?>) mDelegate.getLoader(loaderId);
+            if (loader == null) {
+                Assert.fail("Loader does not exist: " + loaderId);
+                return;
+            }
+
+            loaders.add(loader);
+        }
+
+        waitForLoaders(loaders.toArray(new Loader<?>[0]));
+    }
+
+    /**
+     * Waits for the specified loaders to complete loading.
+     */
+    public static void waitForLoaders(Loader<?>... loaders) {
+        // We want to wait for each loader using a separate thread, so that we can
+        // simulate race conditions.
+        Thread[] waitThreads = new Thread[loaders.length];
+        for (int i = 0; i < loaders.length; i++) {
+            final AsyncTaskLoader<?> loader = (AsyncTaskLoader<?>) loaders[i];
+            waitThreads[i] = new Thread("LoaderWaitingThread" + i) {
+                @Override
+                public void run() {
+                    try {
+                        AsyncTaskLoader.class.getMethod("waitForLoader").invoke(loader, null);
+                    } catch (Throwable e) {
+                        Log.e(TAG, "Exception while waiting for loader: " + loader.getId(), e);
+                        Assert.fail("Exception while waiting for loader: " + loader.getId());
+                    }
+                }
+            };
+            waitThreads[i].start();
+        }
+
+        // Now we wait for all these threads to finish
+        for (Thread thread : waitThreads) {
+            try {
+                thread.join();
+            } catch (InterruptedException e) {
+                // Ignore
+            }
+        }
+    }
+
+    @Override
+    public <D> Loader<D> initLoader(final int id, Bundle args, final LoaderCallbacks<D> callback) {
+        return mDelegate.initLoader(id, args, new LoaderManager.LoaderCallbacks<D>() {
+            @Override
+            public Loader<D> onCreateLoader(int id, Bundle args) {
+                return callback.onCreateLoader(id, args);
+            }
+
+            @Override
+            public void onLoadFinished(Loader<D> loader, D data) {
+                callback.onLoadFinished(loader, data);
+                synchronized (this) {
+                    mFinishedLoaders.add(id);
+                }
+            }
+
+            @Override
+            public void onLoaderReset(Loader<D> loader) {
+                callback.onLoaderReset(loader);
+            }
+        });
+    }
+
+    @Override
+    public <D> Loader<D> restartLoader(int id, Bundle args, LoaderCallbacks<D> callback) {
+        return mDelegate.restartLoader(id, args, callback);
+    }
+
+    @Override
+    public void destroyLoader(int id) {
+        mDelegate.destroyLoader(id);
+    }
+
+    @Override
+    public <D> Loader<D> getLoader(int id) {
+        return mDelegate.getLoader(id);
+    }
+
+    @Override
+    public void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) {
+        mDelegate.dump(prefix, fd, writer, args);
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/GroupUtilTest.java b/tests/src/com/android/contacts/tests/GroupUtilTest.java
new file mode 100644
index 0000000..9b719ff
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/GroupUtilTest.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.tests;
+
+import com.android.contacts.common.list.ContactsSectionIndexer;
+import com.android.contacts.group.GroupUtil;
+
+import android.os.Bundle;
+import android.provider.ContactsContract.Contacts;
+import android.test.AndroidTestCase;
+import android.test.MoreAsserts;
+import android.test.suitebuilder.annotation.SmallTest;
+
+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/tests/PhoneNumberTestService.java b/tests/src/com/android/contacts/tests/PhoneNumberTestService.java
new file mode 100644
index 0000000..d5fee92
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/PhoneNumberTestService.java
@@ -0,0 +1,117 @@
+/*
+ * 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;
+
+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.google.i18n.phonenumbers.NumberParseException;
+import com.google.i18n.phonenumbers.PhoneNumberUtil;
+import com.google.i18n.phonenumbers.PhoneNumberUtil.PhoneNumberFormat;
+import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+/**
+ * A service to test various phone number formatters.
+ *
+   Usage:
+     adb shell am startservice -e n PHONE_NUMBER \
+       [-e c OPTIONAL COUNTRY CODE]  \
+       com.android.contacts.tests/.PhoneNumberTestService
+
+   Example:
+
+   adb shell am startservice -e n '6502530000' \
+     com.android.contacts.tests/.PhoneNumberTestService
+ */
+public class PhoneNumberTestService extends IntentService {
+    private static final String TAG = "phonenumber";
+
+    private static final String EXTRA_PHONE_NUMBER = "n";
+    private static final String EXTRA_COUNTRY_CODE = "c";
+
+    public PhoneNumberTestService() {
+        super("PhoneNumberTestService");
+    }
+
+    @Override
+    protected void onHandleIntent(Intent intent) {
+        final String number = intent.getStringExtra(EXTRA_PHONE_NUMBER);
+        final String country = intent.getStringExtra(EXTRA_COUNTRY_CODE);
+        final String defaultCountry = getCurrentCountryCode();
+
+        Log.i(TAG, "Input phone number: " + number);
+        Log.i(TAG, "Input country code: " + country);
+        Log.i(TAG, "Current country code: " + defaultCountry);
+
+        // Dump for the given country, the current country, US, GB and JP.
+        Set<String> countries = new LinkedHashSet<String>();
+        if (country != null) countries.add(country);
+        countries.add(defaultCountry);
+        countries.add("US");
+        countries.add("GB");
+        countries.add("JP");
+
+        for (String c : countries) {
+            dump(number, c);
+        }
+    }
+
+    private void dump(String number, String country) {
+        Log.i(TAG, "Result for: " + number + " / " +country);
+        dump_PhoneNumberUtils_formatNumberToE164(number, country);
+        dump_PhoneNumberUtil_format(number, country, PhoneNumberFormat.E164);
+        dump_PhoneNumberUtil_format(number, country, PhoneNumberFormat.INTERNATIONAL);
+        dump_PhoneNumberUtil_format(number, country, PhoneNumberFormat.NATIONAL);
+        dump_PhoneNumberUtil_format(number, country, PhoneNumberFormat.RFC3966);
+    }
+
+    private void dump_PhoneNumberUtils_formatNumberToE164(String number, String country) {
+        Log.i(TAG, "  formatNumberToE164(" + number + ", " + country
+                + ") = " + PhoneNumberUtils.formatNumberToE164(number, country));
+    }
+
+    private void dump_PhoneNumberUtil_format(String number, String country,
+            PhoneNumberFormat format) {
+        String formatted;
+        String truncated = "";
+        boolean isValid = false;
+        try {
+            final PhoneNumberUtil util = PhoneNumberUtil.getInstance();
+            final PhoneNumber pn = util.parse(number, country);
+            isValid = util.isValidNumber(pn);
+            formatted = util.format(pn, format);
+            util.truncateTooLongNumber(pn);
+            truncated = util.format(pn, format);
+        } catch (NumberParseException e) {
+            formatted = "Error: " + e.toString();
+        }
+        Log.i(TAG, "  PhoneNumberUtil.format(parse(" + number + ", " + country + "), " + format
+                + ") = " + formatted + " / truncated = " + truncated
+                + (isValid ? " (valid)" : " (invalid)"));
+    }
+
+    private String getCurrentCountryCode() {
+        return GeoUtil.getCurrentCountryIso(getApplicationContext());
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/QueryService.java b/tests/src/com/android/contacts/tests/QueryService.java
new file mode 100644
index 0000000..04a95c5
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/QueryService.java
@@ -0,0 +1,119 @@
+/*
+ * 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;
+
+import android.app.IntentService;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.text.TextUtils;
+import android.util.Log;
+
+/**
+ * A service that executes a query specified by an intent and dump the result on logcat.  Use the
+ * "am" command to launch it.
+ *
+   Usage:
+     adb shell am startservice -d URI \
+       [-e p OPTIONAL PROJECTION] [-e s OPTIONAL SELECTION] [-e s OPTIONAL ORDER BY]  \
+       com.android.contacts.tests/.QueryService
+
+   Example:
+
+   adb shell am startservice -d content://com.android.contacts/directories \
+     -e p accountName,accountType -e s 'accountName NOT NULL' -e o '_id'  \
+     com.android.contacts.tests/.QueryService
+ */
+public class QueryService extends IntentService {
+    private static final String TAG = "contactsquery";
+
+    private static final String EXTRA_PROJECTION = "p";
+    private static final String EXTRA_SELECTION = "s";
+    private static final String EXTRA_ORDER = "o";
+    private static final String NULL_STRING = "*null*";
+    private static final String SEPARATOR = "|";
+
+    public QueryService() {
+        super("ContactsQueryService");
+    }
+
+    @Override
+    protected void onHandleIntent(Intent intent) {
+        final Uri uri = intent.getData();
+        // Unfortunately "am" doesn't support string arrays...
+        final String projection = intent.getStringExtra(EXTRA_PROJECTION);
+        final String selection = intent.getStringExtra(EXTRA_SELECTION);
+        final String order = intent.getStringExtra(EXTRA_ORDER);
+
+        Log.i(TAG, "URI: " + uri);
+        Log.i(TAG, "Projection: " + projection);
+        Log.i(TAG, "Selection: " + selection);
+
+        try {
+            Cursor c = getContentResolver().query(uri, parseProjection(projection), selection, null,
+                    order);
+            if (c == null) {
+                Log.i(TAG, "(no results)");
+                return;
+            }
+            StringBuilder sb = new StringBuilder();
+            try {
+                Log.i(TAG, "Result count: " + c.getCount());
+
+                final int columnCount = c.getColumnCount();
+
+                sb.setLength(0);
+                for (int i = 0; i < columnCount; i++) {
+                    add(sb, c.getColumnName(i));
+                }
+                Log.i(TAG, sb.toString());
+
+                c.moveToPosition(-1);
+                while (c.moveToNext()) {
+                    sb.setLength(0);
+                    for (int i = 0; i < columnCount; i++) {
+                        add(sb, c.getString(i));
+                    }
+                    Log.i(TAG, sb.toString());
+                }
+            } finally {
+                c.close();
+            }
+        } catch (Exception e) {
+            Log.e(TAG, "Exeption while executing query", e);
+        }
+    }
+
+    private StringBuilder add(StringBuilder sb, String s) {
+        if (sb.length() > 0) {
+            sb.append(SEPARATOR);
+        }
+        sb.append(s == null ? NULL_STRING : s);
+        return sb;
+    }
+
+    private static String[] parseProjection(String projectionString) {
+        if (TextUtils.isEmpty(projectionString)) {
+            return null; // all columns
+        }
+        final String[] columns = projectionString.split(",");
+        if (columns.length == 0) {
+            return null; // all columns
+        }
+        return columns;
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/allintents/AllIntentsActivity.java b/tests/src/com/android/contacts/tests/allintents/AllIntentsActivity.java
new file mode 100644
index 0000000..4a93364
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/allintents/AllIntentsActivity.java
@@ -0,0 +1,644 @@
+/*
+ * 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.tests.allintents;
+
+import android.accounts.Account;
+import android.app.ListActivity;
+import android.app.SearchManager;
+import android.content.ComponentName;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.Contacts.ContactMethods;
+import android.provider.Contacts.People;
+import android.provider.Contacts.Phones;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+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;
+import android.view.View;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+import android.widget.Toast;
+
+import com.android.contacts.GroupListLoader;
+import com.android.contacts.list.UiIntentActions;
+import com.android.contacts.tests.R;
+import com.android.contacts.tests.quickcontact.QuickContactTestsActivity;
+
+import java.util.ArrayList;
+
+/**
+ * An activity that provides access to various modes of the contacts application.
+ * Useful for manual and scripted tests.
+ * <p>
+ * Note: this class cannot depend (directly on indirectly) on anything outside the test package.
+ */
+@SuppressWarnings("deprecation")
+public class AllIntentsActivity extends ListActivity
+        implements SelectAccountDialogFragment.Listener {
+
+    /** The name of the package of the contacts application. */
+    private String mContactsPackageName;
+
+    private static final String CONTACT_LIST_ACTIVITY_CLASS_NAME =
+            "com.android.contacts.activities.PeopleActivity";
+
+    public enum ContactsIntent {
+        ACTION_PICK_CONTACT,
+        ACTION_PICK_CONTACT_LEGACY,
+        ACTION_PICK_PHONE,
+        ACTION_PICK_PHONE_LEGACY,
+        ACTION_PICK_POSTAL,
+        ACTION_PICK_POSTAL_LEGACY,
+        ACTION_PICK_EMAIL,
+        ACTION_CREATE_SHORTCUT_CONTACT,
+        ACTION_CREATE_SHORTCUT_DIAL,
+        ACTION_CREATE_SHORTCUT_MESSAGE,
+        ACTION_GET_CONTENT_CONTACT,
+        ACTION_GET_CONTENT_CONTACT_LEGACY,
+        ACTION_GET_CONTENT_PHONE,
+        ACTION_GET_CONTENT_PHONE_LEGACY,
+        ACTION_GET_CONTENT_POSTAL,
+        ACTION_GET_CONTENT_POSTAL_LEGACY,
+        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,
+        EDIT_CONTACT_LOOKUP_ID,
+        EDIT_RAW_CONTACT,
+        EDIT_LEGACY,
+        EDIT_NEW_CONTACT,
+        EDIT_NEW_CONTACT_WITH_DATA,
+        EDIT_NEW_CONTACT_FOR_ACCOUNT,
+        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,
+        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];
+        }
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setListAdapter(new ArrayAdapter<String>(this, R.layout.intent_list_item,
+                getResources().getStringArray(R.array.allIntents)));
+        mContactsPackageName = getResources().getString(
+                R.string.target_package_name);
+    }
+
+    @Override
+    protected void onListItemClick(ListView l, View v, int position, long id) {
+        super.onListItemClick(l, v, position, id);
+
+        switch (ContactsIntent.get(position)) {
+            case ACTION_PICK_CONTACT: {
+                startContactSelectionActivityForResult(
+                        new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI));
+                break;
+            }
+            case ACTION_PICK_CONTACT_LEGACY: {
+                startContactSelectionActivityForResult(
+                        new Intent(Intent.ACTION_PICK, People.CONTENT_URI));
+                break;
+            }
+            case ACTION_PICK_PHONE: {
+                startContactSelectionActivityForResult(
+                        new Intent(Intent.ACTION_PICK, Phone.CONTENT_URI));
+                break;
+            }
+            case ACTION_PICK_PHONE_LEGACY: {
+                startContactSelectionActivityForResult(
+                        new Intent(Intent.ACTION_PICK, Phones.CONTENT_URI));
+                break;
+            }
+            case ACTION_PICK_POSTAL: {
+                startContactSelectionActivityForResult(
+                        new Intent(Intent.ACTION_PICK, StructuredPostal.CONTENT_URI));
+                break;
+            }
+            case ACTION_PICK_POSTAL_LEGACY: {
+                Intent intent = new Intent(Intent.ACTION_PICK);
+                intent.setType(ContactMethods.CONTENT_POSTAL_TYPE);
+                startContactSelectionActivityForResult(intent);
+                break;
+            }
+            case ACTION_PICK_EMAIL: {
+                startContactSelectionActivityForResult(
+                        new Intent(Intent.ACTION_PICK, Email.CONTENT_URI));
+                break;
+            }
+            case ACTION_CREATE_SHORTCUT_CONTACT: {
+                Intent intent = new Intent(Intent.ACTION_CREATE_SHORTCUT);
+                startContactSelectionActivityForResult(intent);
+                break;
+            }
+            case ACTION_CREATE_SHORTCUT_DIAL: {
+                Intent intent = new Intent(Intent.ACTION_CREATE_SHORTCUT);
+                bindIntentToClass(intent, "alias.DialShortcut");
+                startActivityForResult(intent, 0);
+                break;
+            }
+            case ACTION_CREATE_SHORTCUT_MESSAGE: {
+                Intent intent = new Intent(Intent.ACTION_CREATE_SHORTCUT);
+                bindIntentToClass(intent, "alias.MessageShortcut");
+                startActivityForResult(intent, 0);
+                break;
+            }
+            case ACTION_GET_CONTENT_CONTACT: {
+                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+                intent.setType(Contacts.CONTENT_ITEM_TYPE);
+                startContactSelectionActivityForResult(intent);
+                break;
+            }
+            case ACTION_GET_CONTENT_CONTACT_LEGACY: {
+                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+                intent.setType(People.CONTENT_ITEM_TYPE);
+                startContactSelectionActivityForResult(intent);
+                break;
+            }
+            case ACTION_GET_CONTENT_PHONE: {
+                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+                intent.setType(Phone.CONTENT_ITEM_TYPE);
+                startContactSelectionActivityForResult(intent);
+                break;
+            }
+            case ACTION_GET_CONTENT_PHONE_LEGACY: {
+                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+                intent.setType(Phones.CONTENT_ITEM_TYPE);
+                startContactSelectionActivityForResult(intent);
+                break;
+            }
+            case ACTION_GET_CONTENT_POSTAL: {
+                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+                intent.setType(StructuredPostal.CONTENT_ITEM_TYPE);
+                startContactSelectionActivityForResult(intent);
+                break;
+            }
+            case ACTION_GET_CONTENT_POSTAL_LEGACY: {
+                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+                intent.setType(ContactMethods.CONTENT_POSTAL_ITEM_TYPE);
+                startContactSelectionActivityForResult(intent);
+                break;
+            }
+            case ACTION_INSERT_OR_EDIT: {
+                Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
+                intent.setType(Contacts.CONTENT_ITEM_TYPE);
+                putDataExtra(intent);
+                startActivity(intent);
+                break;
+            }
+            case ACTION_INSERT_OR_EDIT_PHONE_NUMBER: {
+                Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
+                intent.setType(Contacts.CONTENT_ITEM_TYPE);
+                intent.putExtra(Insert.PHONE, "5123456789");
+                startActivity(intent);
+                break;
+            }
+            case ACTION_INSERT_OR_EDIT_EMAIL_ADDRESS: {
+                Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
+                intent.setType(Contacts.CONTENT_ITEM_TYPE);
+                intent.putExtra(Insert.EMAIL, "android@android.com");
+                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");
+                intent.putExtra(SearchManager.QUERY, "800-4664-411");
+                startSearchResultActivity(intent);
+                break;
+            }
+            case ACTION_SEARCH_CONTACT: {
+                Intent intent = new Intent(Intent.ACTION_SEARCH);
+                intent.putExtra(SearchManager.QUERY, "a");
+                intent.setType(Contacts.CONTENT_TYPE);
+                startSearchResultActivity(intent);
+                break;
+            }
+            case ACTION_SEARCH_EMAIL: {
+                Intent intent = new Intent(Intent.ACTION_SEARCH);
+                intent.putExtra(Insert.EMAIL, "a");
+                startSearchResultActivity(intent);
+                break;
+            }
+            case ACTION_SEARCH_PHONE: {
+                Intent intent = new Intent(Intent.ACTION_SEARCH);
+                intent.putExtra(Insert.PHONE, "800");
+                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) {
+                    Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
+                    Intent intent = new Intent(Intents.SEARCH_SUGGESTION_CLICKED);
+                    intent.setData(contactUri);
+                    startContactListActivity(intent);
+                }
+                break;
+            }
+            case EDIT_CONTACT: {
+                final long contactId = findArbitraryContactWithPhoneNumber();
+                if (contactId != -1) {
+                    final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
+                    final Intent intent = new Intent(Intent.ACTION_EDIT, uri);
+                    startActivity(intent);
+                }
+                break;
+            }
+            case EDIT_CONTACT_LOOKUP: {
+                final long contactId = findArbitraryContactWithPhoneNumber();
+                if (contactId != -1) {
+                    final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
+                    final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri);
+                    final String lookupKey = lookupUri.getPathSegments().get(2);
+                    final Uri lookupWithoutIdUri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI,
+                            lookupKey);
+                    final Intent intent = new Intent(Intent.ACTION_EDIT, lookupWithoutIdUri);
+                    startActivity(intent);
+                }
+                break;
+            }
+            case EDIT_CONTACT_LOOKUP_ID: {
+                final long contactId = findArbitraryContactWithPhoneNumber();
+                if (contactId != -1) {
+                    final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
+                    final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri);
+                    final Intent intent = new Intent(Intent.ACTION_EDIT, lookupUri);
+                    startActivity(intent);
+                }
+                break;
+            }
+            case EDIT_RAW_CONTACT: {
+                final long contactId = findArbitraryContactWithPhoneNumber();
+                if (contactId != -1) {
+                    final long rawContactId = findArbitraryRawContactOfContact(contactId);
+                    if (rawContactId != -1) {
+                        final Uri uri = ContentUris.withAppendedId(RawContacts.CONTENT_URI,
+                                rawContactId);
+                        final Intent intent = new Intent(Intent.ACTION_EDIT, uri);
+                        startActivity(intent);
+                    }
+                }
+                break;
+            }
+            case EDIT_LEGACY: {
+                final long contactId = findArbitraryContactWithPhoneNumber();
+                if (contactId != -1) {
+                    final long rawContactId = findArbitraryRawContactOfContact(contactId);
+                    if (rawContactId != -1) {
+                        final Uri legacyContentUri = Uri.parse("content://contacts/people");
+                        final Uri uri = ContentUris.withAppendedId(legacyContentUri, rawContactId);
+                        final Intent intent = new Intent(Intent.ACTION_EDIT, uri);
+                        startActivity(intent);
+                    }
+                }
+                break;
+            }
+            case EDIT_NEW_CONTACT: {
+                startActivity(new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI));
+                break;
+            }
+            case EDIT_NEW_CONTACT_WITH_DATA: {
+                Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
+                putDataExtra(intent);
+                startActivity(intent);
+                break;
+            }
+            case EDIT_NEW_CONTACT_FOR_ACCOUNT:
+            case EDIT_NEW_CONTACT_FOR_ACCOUNT_WITH_DATA: {
+                final SelectAccountDialogFragment dialog = new SelectAccountDialogFragment();
+                dialog.setArguments(SelectAccountDialogFragment.createBundle(position));
+                dialog.show(getFragmentManager(), SelectAccountDialogFragment.TAG);
+                break;
+            }
+            case EDIT_NEW_RAW_CONTACT: {
+                startActivity(new Intent(Intent.ACTION_INSERT, RawContacts.CONTENT_URI));
+                break;
+            }
+            case EDIT_NEW_LEGACY: {
+                final Uri legacyContentUri = Uri.parse("content://contacts/people");
+                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) {
+                    final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
+                    final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
+                    startActivity(intent);
+                }
+                break;
+            }
+            case VIEW_CONTACT_WITHOUT_ID: {
+                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) {
+                    final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
+                    final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri);
+                    final String lookupKey = lookupUri.getPathSegments().get(2);
+                    final Uri lookupWithoutIdUri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI,
+                            lookupKey);
+                    final Intent intent = new Intent(Intent.ACTION_VIEW, lookupWithoutIdUri);
+                    startActivity(intent);
+                }
+                break;
+            }
+            case VIEW_CONTACT_LOOKUP_ID: {
+                final long contactId = findArbitraryContactWithPhoneNumber();
+                if (contactId != -1) {
+                    final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
+                    final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri);
+                    final Intent intent = new Intent(Intent.ACTION_VIEW, lookupUri);
+                    startActivity(intent);
+                }
+                break;
+            }
+            case VIEW_RAW_CONTACT: {
+                final long contactId = findArbitraryContactWithPhoneNumber();
+                if (contactId != -1) {
+                    final long rawContactId = findArbitraryRawContactOfContact(contactId);
+                    if (rawContactId != -1) {
+                        final Uri uri = ContentUris.withAppendedId(RawContacts.CONTENT_URI,
+                                rawContactId);
+                        final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
+                        startActivity(intent);
+                    }
+                }
+                break;
+            }
+            case VIEW_LEGACY: {
+                final long contactId = findArbitraryContactWithPhoneNumber();
+                if (contactId != -1) {
+                    final long rawContactId = findArbitraryRawContactOfContact(contactId);
+                    if (rawContactId != -1) {
+                        final Uri legacyContentUri = Uri.parse("content://contacts/people");
+                        final Uri uri = ContentUris.withAppendedId(legacyContentUri, rawContactId);
+                        final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
+                        startActivity(intent);
+                    }
+                }
+                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();
+            }
+        }
+    }
+
+    /** Creates an intent that is bound to a specific activity by name. */
+    private Intent bindIntentToClass(Intent intent, String activityClassName) {
+        intent.setComponent(new ComponentName(mContactsPackageName,
+                    activityClassName));
+        return intent;
+    }
+
+    private void startContactListActivity(Intent intent) {
+        bindIntentToClass(intent, CONTACT_LIST_ACTIVITY_CLASS_NAME);
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        startActivity(intent);
+    }
+
+    private void startContactSelectionActivityForResult(Intent intent) {
+        startActivityForResult(intent, 12);
+    }
+
+    private void startSearchResultActivity(Intent intent) {
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        startActivity(intent);
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        Intent intent = new Intent(this, ResultActivity.class);
+        intent.putExtra("resultCode", resultCode);
+        intent.putExtra("data", data);
+        startActivity(intent);
+    }
+
+    private long findArbitraryContactWithPhoneNumber() {
+        final Cursor cursor = getContentResolver().query(Contacts.CONTENT_URI,
+                new String[] { Contacts._ID },
+                Contacts.HAS_PHONE_NUMBER + "!=0",
+                null, "RANDOM() LIMIT 1");
+        try {
+            if (cursor.moveToFirst()) {
+                return cursor.getLong(0);
+            }
+        } finally {
+            cursor.close();
+        }
+        Toast.makeText(this, "Failed to find a contact with a phone number. Aborting.",
+                Toast.LENGTH_SHORT).show();
+        return -1;
+    }
+
+    private long findArbitraryRawContactOfContact(long contactId) {
+        final Cursor cursor = getContentResolver().query(RawContacts.CONTENT_URI,
+                new String[] { RawContacts._ID },
+                RawContacts.CONTACT_ID + "=?",
+                new String[] { String.valueOf(contactId) },
+                RawContacts._ID + " LIMIT 1");
+        try {
+            if (cursor.moveToFirst()) {
+                return cursor.getLong(0);
+            }
+        } finally {
+            cursor.close();
+        }
+        Toast.makeText(this, "Failed to find a raw contact of contact with ID " + contactId +
+                ". Aborting", Toast.LENGTH_SHORT).show();
+        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.GroupMembersActivity");
+        return intent;
+    }
+
+    private long findArbitraryGroup() {
+        final Cursor cursor = getContentResolver().query(Groups.CONTENT_URI,
+                new String[] { Groups._ID },
+                GroupListLoader.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)) {
+            case EDIT_NEW_CONTACT_FOR_ACCOUNT: {
+                final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
+                intent.putExtra(Insert.EXTRA_ACCOUNT, account);
+                intent.putExtra(Insert.EXTRA_DATA_SET, dataSet);
+                startActivity(intent);
+                break;
+            }
+            case EDIT_NEW_CONTACT_FOR_ACCOUNT_WITH_DATA: {
+                final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
+
+                intent.putExtra(Insert.EXTRA_ACCOUNT, account);
+                intent.putExtra(Insert.EXTRA_DATA_SET, dataSet);
+                putDataExtra(intent);
+
+                startActivity(intent);
+                break;
+            }
+            default:
+                break;
+        }
+    }
+
+    public void putDataExtra(final Intent intent) {
+        ContentValues row1 = new ContentValues();
+        row1.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE);
+        row1.put(Organization.COMPANY, "Android");
+
+        ContentValues row2 = new ContentValues();
+        row2.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+        row2.put(Email.TYPE, Email.TYPE_CUSTOM);
+        row2.put(Email.LABEL, "Green Bot");
+        row2.put(Email.ADDRESS, "android@android.com");
+
+        final ArrayList<ContentValues> rows = new ArrayList<>();
+        rows.add(row1);
+        rows.add(row2);
+
+        intent.putParcelableArrayListExtra(Insert.DATA, rows);
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/allintents/ResultActivity.java b/tests/src/com/android/contacts/tests/allintents/ResultActivity.java
new file mode 100644
index 0000000..214e936
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/allintents/ResultActivity.java
@@ -0,0 +1,196 @@
+/*
+ * 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.tests.allintents;
+
+import android.app.Activity;
+import android.content.ContentUris;
+import android.content.Intent;
+import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Color;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Parcelable;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.ImageView.ScaleType;
+import android.widget.TableLayout;
+import android.widget.TableRow;
+import android.widget.TextView;
+
+import com.android.contacts.tests.R;
+
+import java.util.Arrays;
+
+/**
+ * An activity that shows the result of a contacts activity invocation.
+ */
+public class ResultActivity extends Activity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.result);
+
+        Intent intent = getIntent();
+        addRowsForIntent((Intent)intent.getExtras().get("data"));
+    }
+
+    private void addRowsForIntent(Intent intent) {
+        if (intent == null) {
+            addRow("", "No data intent returned");
+        } else {
+            addRow("INTENT", intent.toString());
+            addSeparator(3);
+
+            Bundle extras = intent.getExtras();
+            if (extras != null && !extras.isEmpty()) {
+                for (String key : extras.keySet()) {
+                    Object value = extras.get(key);
+                    addRow("EXTRA", key);
+                    addRowForValue("", value);
+                }
+
+                addSeparator(3);
+            }
+
+            String dataUri = intent.getDataString();
+            if (dataUri != null) {
+                addRowsForQuery(Uri.parse(dataUri));
+            }
+        }
+    }
+
+    private void addRowForValue(String label, Object value) {
+        if (value == null) {
+            addRow(label, "null");
+        } else if (value instanceof Bitmap) {
+            addRowWithBitmap(label, (Bitmap)value);
+        } else if (value instanceof Intent) {
+            addRow(label, "INTENT");
+            addRowsForIntent((Intent)value);
+        } else if (value instanceof Uri) {
+            addRow(label, "DATA");
+            addRowsForQuery((Uri)value);
+        } else if (value.getClass().isArray()) {
+            addRow(label, "ARRAY");
+            Parcelable[] array = (Parcelable[])value;
+            for (int i = 0; i < array.length; i++) {
+                addRowForValue("[" + i + "]", String.valueOf(array[i]));
+            }
+        } else {
+            addRow(label, String.valueOf(value));
+        }
+    }
+
+    private void addRowsForQuery(Uri dataUri) {
+        Cursor cursor = getContentResolver().query(dataUri, null, null, null, null);
+        if (cursor == null) {
+            addRow("", "No data for this URI");
+        } else {
+            try {
+                while (cursor.moveToNext()) {
+                    addRow("", "DATA");
+                    String[] columnNames = cursor.getColumnNames();
+                    String[] names = new String[columnNames.length];
+                    System.arraycopy(columnNames, 0, names, 0, columnNames.length);
+                    Arrays.sort(names);
+                    for (int i = 0; i < names.length; i++) {
+                        int index = cursor.getColumnIndex(names[i]);
+                        String value = cursor.getString(index);
+                        addRow(names[i], value);
+
+                        if (names[i].equals(Contacts.PHOTO_ID) && !TextUtils.isEmpty(value)) {
+                            addRowWithPhoto(Long.parseLong(value));
+                        }
+                    }
+                }
+            } finally {
+                cursor.close();
+            }
+        }
+    }
+
+    private void addRow(String column0, String column1) {
+        TextView label = new TextView(this);
+        label.setPadding(4, 4, 4, 4);
+        label.setText(column0);
+        TextView value = new TextView(this);
+        value.setPadding(4, 4, 4, 4);
+        value.setText(column1);
+        addRow(label, value);
+    }
+
+    private void addRowWithPhoto(long photoId) {
+        byte[] data = null;
+        Cursor cursor = getContentResolver().query(
+                ContentUris.withAppendedId(Data.CONTENT_URI, photoId),
+                new String[]{Photo.PHOTO}, null, null, null);
+        try {
+            if (cursor.moveToNext()) {
+                data = cursor.getBlob(0);
+            }
+        } finally {
+            if (cursor != null) {
+                cursor.close();
+            }
+        }
+
+        if (data == null) {
+            return;
+        }
+
+        addRowWithBitmap("Photo", BitmapFactory.decodeByteArray(data, 0, data.length));
+    }
+
+    private void addRowWithBitmap(String label, Bitmap bitmap) {
+        TextView labelView = new TextView(this);
+        labelView.setPadding(4, 4, 4, 4);
+        labelView.setText(label);
+
+        ImageView imageView = new ImageView(this);
+        imageView.setImageBitmap(bitmap);
+        imageView.setPadding(4, 4, 4, 4);
+        imageView.setScaleType(ScaleType.FIT_START);
+        addRow(labelView, imageView);
+    }
+
+    private void addRow(View column0, View column1) {
+        TableLayout table = (TableLayout)findViewById(R.id.table);
+        TableRow row = new TableRow(this);
+        row.addView(column0);
+        row.addView(column1);
+        table.addView(row);
+
+        addSeparator(1);
+    }
+
+    private void addSeparator(int height) {
+        TableLayout table = (TableLayout)findViewById(R.id.table);
+        View separator = new View(this);
+        TableLayout.LayoutParams params = new TableLayout.LayoutParams();
+        params.height = height;
+        separator.setLayoutParams(params);
+        separator.setBackgroundColor(Color.rgb(33, 66, 33));
+        table.addView(separator);
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/allintents/SelectAccountDialogFragment.java b/tests/src/com/android/contacts/tests/allintents/SelectAccountDialogFragment.java
new file mode 100644
index 0000000..f0c2df4
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/allintents/SelectAccountDialogFragment.java
@@ -0,0 +1,101 @@
+/*
+ * 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.tests.allintents;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+
+/**
+ * Shows a dialog asking the user which account to chose.
+ * The result is passed back to the owning Activity
+ * Does not perform any action by itself.
+ */
+public class SelectAccountDialogFragment extends DialogFragment {
+    public static final String TAG = "SelectAccountDialogFragment";
+
+    private static final String EXTRA_TAG = "tag";
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        final Bundle parameters = getArguments();
+
+        AccountManager accountManager = AccountManager.get(getActivity());
+        Account[] accounts = accountManager.getAccounts();
+
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        final LayoutInflater inflater = LayoutInflater.from(builder.getContext());
+
+        final ArrayAdapter<Account> accountAdapter =
+                new ArrayAdapter<Account>(builder.getContext(),
+                        android.R.layout.simple_list_item_2, accounts) {
+            @Override
+            public View getView(int position, View convertView, ViewGroup parent) {
+                final View resultView = convertView == null
+                        ? inflater.inflate(android.R.layout.simple_list_item_2, parent, false)
+                        : convertView;
+
+                final TextView text1 = (TextView)resultView.findViewById(android.R.id.text1);
+                final TextView text2 = (TextView)resultView.findViewById(android.R.id.text2);
+
+                final Account account = getItem(position);
+
+                text1.setText("Name: " + account.name);
+                text2.setText("Type: " + account.type);
+
+                return resultView;
+            }
+        };
+
+        final DialogInterface.OnClickListener clickListener =
+                new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                dialog.dismiss();
+
+                // We currently do not pass the dataSet argument to the listener. To do so, we would
+                // have to determine the dataSet as it is done in AccountTypeManager.
+                ((Listener) getActivity()).onAccountChosen(accountAdapter.getItem(which),
+                        null, parameters.getInt(EXTRA_TAG));
+            }
+        };
+
+        builder.setTitle("Choose account to send to editor");
+        builder.setSingleChoiceItems(accountAdapter, 0, clickListener);
+        final AlertDialog result = builder.create();
+        return result;
+    }
+
+    public static Bundle createBundle(int tag) {
+        final Bundle result = new Bundle();
+        result.putInt(EXTRA_TAG, tag);
+        return result;
+    }
+
+    public interface Listener {
+        void onAccountChosen(Account account, String dataSet, int tag);
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/quickcontact/QuickContactTestsActivity.java b/tests/src/com/android/contacts/tests/quickcontact/QuickContactTestsActivity.java
new file mode 100644
index 0000000..1600744
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/quickcontact/QuickContactTestsActivity.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.tests.quickcontact;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.Editor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.QuickContact;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.Window;
+import android.widget.Button;
+import android.widget.QuickContactBadge;
+import android.widget.TextView;
+
+import com.android.contacts.tests.R;
+
+public class QuickContactTestsActivity extends Activity {
+    private static final int REQUEST_CODE_PICK = 1;
+    private static final String PREF_NAME = "quick_contact_prefs";
+    private static final String PREF_SETTING_URI = "uri";
+
+    private Button mPickContact;
+    private TextView mUriTextView;
+    private QuickContactBadge mSmallBadge1;
+    private QuickContactBadge mSmallBadge2;
+    private QuickContactBadge mMediumBadge1;
+    private QuickContactBadge mMediumBadge2;
+    private QuickContactBadge mLargeBadge1;
+    private QuickContactBadge mLargeBadge2;
+    private Button mButton;
+
+    private Uri mContactUri;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        getWindow().requestFeature(Window.FEATURE_NO_TITLE);
+        setContentView(R.layout.quick_contact_tests);
+
+        mPickContact = (Button) findViewById(R.id.pick_contact);
+        mUriTextView = (TextView) findViewById(R.id.uri);
+        mSmallBadge1 = (QuickContactBadge) findViewById(R.id.small_badge1);
+        mSmallBadge2 = (QuickContactBadge) findViewById(R.id.small_badge2);
+        mMediumBadge1 = (QuickContactBadge) findViewById(R.id.medium_badge1);
+        mMediumBadge2 = (QuickContactBadge) findViewById(R.id.medium_badge2);
+        mLargeBadge1 = (QuickContactBadge) findViewById(R.id.large_badge1);
+        mLargeBadge2 = (QuickContactBadge) findViewById(R.id.large_badge2);
+        mButton = (Button) findViewById(android.R.id.button1);
+        mButton.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                final Intent intent = new Intent(QuickContact.ACTION_QUICK_CONTACT);
+                intent.setData(mContactUri);
+                startActivity(intent);
+            }
+        });
+
+        mPickContact.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                final Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
+                startActivityForResult(intent , REQUEST_CODE_PICK);
+            }
+        });
+
+        // Load Uri if known
+        final SharedPreferences sharedPreferences = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
+        final String uriString = sharedPreferences.getString(PREF_SETTING_URI, null);
+        if (uriString != null) {
+            mContactUri = Uri.parse(uriString);
+            assignUri();
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (resultCode == Activity.RESULT_CANCELED) return;
+        switch (requestCode) {
+            case REQUEST_CODE_PICK: {
+                mContactUri = data.getData();
+                assignUri();
+                mButton.setEnabled(true);
+                break;
+            }
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+
+        final SharedPreferences sharedPreferences = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
+        final Editor editor = sharedPreferences.edit();
+        editor.putString(PREF_SETTING_URI, mContactUri == null ? null : mContactUri.toString());
+        editor.apply();
+    }
+
+    private void assignUri() {
+        mUriTextView.setText(mContactUri.toString());
+        mSmallBadge1.assignContactUri(mContactUri);
+        mSmallBadge2.assignContactUri(mContactUri);
+        mMediumBadge1.assignContactUri(mContactUri);
+        mMediumBadge2.assignContactUri(mContactUri);
+        mLargeBadge1.assignContactUri(mContactUri);
+        mLargeBadge2.assignContactUri(mContactUri);
+    }
+}
diff --git a/tests/src/com/android/contacts/widget/CompositeListAdapterTest.java b/tests/src/com/android/contacts/widget/CompositeListAdapterTest.java
new file mode 100644
index 0000000..f7dc08e
--- /dev/null
+++ b/tests/src/com/android/contacts/widget/CompositeListAdapterTest.java
@@ -0,0 +1,324 @@
+/*
+ * 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.widget;
+
+import android.content.Context;
+import android.database.DataSetObserver;
+import android.test.AndroidTestCase;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+
+import com.google.common.collect.Lists;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+
+/**
+ * Tests for {@link CompositeListAdapter}.
+ */
+public class CompositeListAdapterTest extends AndroidTestCase {
+
+    private final class MockAdapter extends ArrayAdapter<String> {
+        boolean allItemsEnabled = true;
+        HashSet<Integer> enabledItems = new HashSet<Integer>();
+        int viewTypeCount = 1;
+        HashMap<Integer, Integer> viewTypes = new HashMap<Integer, Integer>();
+
+        private MockAdapter(Context context, List<String> objects) {
+            super(context, android.R.layout.simple_list_item_1, objects);
+            for (int i = 0; i < objects.size(); i++) {
+                viewTypes.put(i, 0);
+            }
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            return new MockView(getContext(), position);
+        }
+
+        @Override
+        public boolean areAllItemsEnabled() {
+            return allItemsEnabled;
+        }
+
+        @Override
+        public boolean isEnabled(int position) {
+            return enabledItems.contains(position);
+        }
+
+        @Override
+        public int getViewTypeCount() {
+            return viewTypeCount;
+        }
+
+        @Override
+        public int getItemViewType(int position) {
+            return viewTypes.get(position);
+        }
+    }
+
+    private final class MockView extends View {
+        public MockView(Context context, int position) {
+            super(context);
+            setTag(position);
+        }
+    }
+
+    private final class TestDataSetObserver extends DataSetObserver {
+
+        public int changeCount;
+        public int invalidationCount;
+
+        @Override
+        public void onChanged() {
+            changeCount++;
+        }
+
+        @Override
+        public void onInvalidated() {
+            invalidationCount++;
+        }
+    }
+
+    private MockAdapter mAdapter1;
+    private MockAdapter mAdapter2;
+    private MockAdapter mAdapter3;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mAdapter1 = new MockAdapter(getContext(), Lists.newArrayList("A", "B"));
+        mAdapter2 = new MockAdapter(getContext(), new ArrayList<String>());
+        mAdapter3 = new MockAdapter(getContext(), Lists.newArrayList("C", "D", "E"));
+    }
+
+    public void testGetCount() {
+        CompositeListAdapter adapter = new CompositeListAdapter();
+        adapter.addAdapter(mAdapter1);
+        adapter.addAdapter(mAdapter2);
+        adapter.addAdapter(mAdapter3);
+
+        assertEquals(5, adapter.getCount());
+    }
+
+    public void testGetCountWithInvalidation() {
+        CompositeListAdapter adapter = new CompositeListAdapter();
+        assertEquals(0, adapter.getCount());
+
+        adapter.addAdapter(mAdapter1);
+        assertEquals(2, adapter.getCount());
+
+        adapter.addAdapter(mAdapter2);
+        assertEquals(2, adapter.getCount());
+
+        adapter.addAdapter(mAdapter3);
+        assertEquals(5, adapter.getCount());
+    }
+
+    public void testGetItem() {
+        CompositeListAdapter adapter = new CompositeListAdapter();
+        adapter.addAdapter(mAdapter1);
+        adapter.addAdapter(mAdapter2);
+        adapter.addAdapter(mAdapter3);
+
+        assertEquals("A", adapter.getItem(0));
+        assertEquals("B", adapter.getItem(1));
+        assertEquals("C", adapter.getItem(2));
+        assertEquals("D", adapter.getItem(3));
+        assertEquals("E", adapter.getItem(4));
+    }
+
+    public void testGetItemId() {
+        CompositeListAdapter adapter = new CompositeListAdapter();
+        adapter.addAdapter(mAdapter1);
+        adapter.addAdapter(mAdapter2);
+        adapter.addAdapter(mAdapter3);
+
+        assertEquals(0, adapter.getItemId(0));
+        assertEquals(1, adapter.getItemId(1));
+        assertEquals(0, adapter.getItemId(2));
+        assertEquals(1, adapter.getItemId(3));
+        assertEquals(2, adapter.getItemId(4));
+    }
+
+    public void testGetView() {
+        CompositeListAdapter adapter = new CompositeListAdapter();
+        adapter.addAdapter(mAdapter1);
+        adapter.addAdapter(mAdapter2);
+        adapter.addAdapter(mAdapter3);
+
+        assertEquals(0, adapter.getView(0, null, null).getTag());
+        assertEquals(1, adapter.getView(1, null, null).getTag());
+        assertEquals(0, adapter.getView(2, null, null).getTag());
+        assertEquals(1, adapter.getView(3, null, null).getTag());
+        assertEquals(2, adapter.getView(4, null, null).getTag());
+    }
+
+    public void testGetViewTypeCount() {
+        mAdapter1.viewTypeCount = 2;
+        mAdapter2.viewTypeCount = 3;
+        CompositeListAdapter adapter = new CompositeListAdapter();
+        adapter.addAdapter(mAdapter1);
+        adapter.addAdapter(mAdapter2);
+        adapter.addAdapter(mAdapter3);
+
+        // Note that mAdapter2 adds an implicit +1
+        assertEquals(6, adapter.getViewTypeCount());
+    }
+
+    public void testGetItemViewType() {
+        mAdapter1.viewTypeCount = 2;
+        mAdapter1.viewTypes.put(0, 1);
+        mAdapter1.viewTypes.put(1, 0);
+
+        mAdapter3.viewTypeCount = 3;
+        mAdapter3.viewTypes.put(0, 1);
+        mAdapter3.viewTypes.put(1, 2);
+        mAdapter3.viewTypes.put(2, 0);
+
+        CompositeListAdapter adapter = new CompositeListAdapter();
+        adapter.addAdapter(mAdapter1);
+        adapter.addAdapter(mAdapter2);
+        adapter.addAdapter(mAdapter3);
+
+        assertEquals(1, adapter.getItemViewType(0));
+        assertEquals(0, adapter.getItemViewType(1));
+
+        // Note: mAdapter2 throws in a +1
+
+        assertEquals(4, adapter.getItemViewType(2));
+        assertEquals(5, adapter.getItemViewType(3));
+        assertEquals(3, adapter.getItemViewType(4));
+    }
+
+    public void testNotifyDataSetChangedPropagated() {
+        CompositeListAdapter adapter = new CompositeListAdapter();
+        adapter.addAdapter(mAdapter1);
+        adapter.addAdapter(mAdapter2);
+
+        TestDataSetObserver observer = new TestDataSetObserver();
+        adapter.registerDataSetObserver(observer);
+        mAdapter1.add("X");
+
+        assertEquals(1, observer.changeCount);
+        assertEquals(0, observer.invalidationCount);
+        assertEquals(3, adapter.getCount());
+        assertEquals("A", adapter.getItem(0));
+        assertEquals("B", adapter.getItem(1));
+        assertEquals("X", adapter.getItem(2));
+
+        mAdapter2.add("Y");
+        assertEquals(2, observer.changeCount);
+        assertEquals(0, observer.invalidationCount);
+        assertEquals(4, adapter.getCount());
+        assertEquals("A", adapter.getItem(0));
+        assertEquals("B", adapter.getItem(1));
+        assertEquals("X", adapter.getItem(2));
+        assertEquals("Y", adapter.getItem(3));
+
+    }
+
+    public void testNotifyDataSetChangedOnAddingAdapter() {
+        CompositeListAdapter adapter = new CompositeListAdapter();
+        adapter.addAdapter(mAdapter1);
+
+        TestDataSetObserver observer = new TestDataSetObserver();
+        adapter.registerDataSetObserver(observer);
+        adapter.addAdapter(mAdapter3);
+
+        assertEquals(1, observer.changeCount);
+        assertEquals(0, observer.invalidationCount);
+        assertEquals(5, adapter.getCount());
+        assertEquals("A", adapter.getItem(0));
+        assertEquals("B", adapter.getItem(1));
+        assertEquals("C", adapter.getItem(2));
+        assertEquals("D", adapter.getItem(3));
+        assertEquals("E", adapter.getItem(4));
+    }
+
+    public void testNotifyDataSetInvalidated() {
+        CompositeListAdapter adapter = new CompositeListAdapter();
+        adapter.addAdapter(mAdapter1);
+
+        TestDataSetObserver observer = new TestDataSetObserver();
+        adapter.registerDataSetObserver(observer);
+
+        mAdapter1.remove("A");
+        assertEquals(1, observer.changeCount);
+        assertEquals(0, observer.invalidationCount);
+        assertEquals(1, adapter.getCount());
+
+        mAdapter1.remove("B");
+        assertEquals(1, observer.changeCount);
+        assertEquals(1, observer.invalidationCount);
+        assertEquals(0, adapter.getCount());
+    }
+
+    public void testAreAllItemsEnabled() {
+        CompositeListAdapter adapter = new CompositeListAdapter();
+        adapter.addAdapter(mAdapter1);
+        adapter.addAdapter(mAdapter3);
+
+        assertTrue(adapter.areAllItemsEnabled());
+    }
+
+    public void testAreAllItemsEnabledWithInvalidation() {
+        CompositeListAdapter adapter = new CompositeListAdapter();
+        adapter.addAdapter(mAdapter1);
+        assertTrue(adapter.areAllItemsEnabled());
+
+        mAdapter3.allItemsEnabled = false;
+        adapter.addAdapter(mAdapter3);
+
+        assertFalse(adapter.areAllItemsEnabled());
+    }
+
+    public void testIsEnabled() {
+        mAdapter1.allItemsEnabled = false;
+        mAdapter1.enabledItems.add(1);
+
+        CompositeListAdapter adapter = new CompositeListAdapter();
+        adapter.addAdapter(mAdapter1);
+        adapter.addAdapter(mAdapter2);
+        adapter.addAdapter(mAdapter3);
+
+        assertFalse(adapter.isEnabled(0));
+        assertTrue(adapter.isEnabled(1));
+        assertTrue(adapter.isEnabled(2));
+        assertTrue(adapter.isEnabled(3));
+        assertTrue(adapter.isEnabled(4));
+    }
+
+    public void testIsEnabledWhenAllEnabledAtLeastOneAdapter() {
+        mAdapter1.allItemsEnabled = false;
+        mAdapter1.enabledItems.add(1);
+        mAdapter3.allItemsEnabled = false;
+        mAdapter3.enabledItems.add(1);
+
+        CompositeListAdapter adapter = new CompositeListAdapter();
+        adapter.addAdapter(mAdapter1);
+        adapter.addAdapter(mAdapter3);
+
+        assertFalse(adapter.isEnabled(0));
+        assertTrue(adapter.isEnabled(1));
+        assertFalse(adapter.isEnabled(2));
+        assertTrue(adapter.isEnabled(3));
+        assertFalse(adapter.isEnabled(4));
+    }
+}