diff --git a/Android.mk b/Android.mk
index 4877cdd..124549b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -4,28 +4,32 @@
 LOCAL_MODULE_TAGS := optional
 
 contacts_common_dir := ../ContactsCommon
+phone_common_dir := ../PhoneCommon
 
-src_dirs := src $(contacts_common_dir)/src
-res_dirs := res $(contacts_common_dir)/res
+src_dirs := src $(contacts_common_dir)/src $(phone_common_dir)/src
+res_dirs := res $(contacts_common_dir)/res $(phone_common_dir)/res
 
 LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
+LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs)) \
+    frameworks/support/v7/cardview/res
 
 LOCAL_AAPT_FLAGS := \
     --auto-add-overlay \
-    --extra-packages com.android.contacts.common
+    --extra-packages com.android.contacts.common \
+    --extra-packages com.android.phone.common \
+    --extra-packages android.support.v7.cardview
 
 LOCAL_JAVA_LIBRARIES := telephony-common voip-common
 LOCAL_STATIC_JAVA_LIBRARIES := \
-    com.android.phone.shared \
     com.android.vcard \
     android-common \
     guava \
     android-support-v13 \
+    android-support-v7-cardview \
+    android-support-v7-palette \
     android-support-v4 \
-    android-ex-variablespeed \
-
-LOCAL_REQUIRED_MODULES := libvariablespeed
+    libphonenumber \
+    libgeocoding
 
 LOCAL_PACKAGE_NAME := Contacts
 LOCAL_CERTIFICATE := shared
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index bae0341..4175ef4 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -20,36 +20,29 @@
 
     <original-package android:name="com.android.contacts" />
 
-    <uses-permission android:name="android.permission.CALL_PRIVILEGED" />
+    <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.READ_CALL_LOG" />
-    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
     <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
     <uses-permission android:name="android.permission.READ_PROFILE" />
     <uses-permission android:name="android.permission.WRITE_PROFILE" />
-    <uses-permission android:name="android.permission.READ_SOCIAL_STREAM" />
     <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.MODIFY_AUDIO_SETTINGS" />
-    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
     <uses-permission android:name="android.permission.WAKE_LOCK" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <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="com.android.voicemail.permission.ADD_VOICEMAIL" />
-    <uses-permission android:name="com.android.voicemail.permission.READ_WRITE_ALL_VOICEMAIL" />
-    <uses-permission android:name="android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK" />
     <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
-    <!-- allow broadcasting secret code intents that reboot the phone -->
-    <uses-permission android:name="android.permission.REBOOT" />
-    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+    <!-- 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" />
 
     <application
         android:name="com.android.contacts.ContactsApplication"
@@ -64,7 +57,6 @@
         <activity android:name=".activities.PeopleActivity"
             android:label="@string/people"
             android:theme="@style/PeopleTheme"
-            android:uiOptions="splitActionBarWhenNarrow"
             android:clearTaskOnLaunch="true"
             android:launchMode="singleTop"
         >
@@ -183,6 +175,11 @@
                 <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 -->
@@ -202,17 +199,6 @@
             android:exported="true"
         />
 
-        <!-- An activity for joining contacts -->
-        <activity android:name=".activities.JoinContactActivity"
-            android:theme="@style/JoinContactActivityTheme"
-            android:clearTaskOnLaunch="true"
-        >
-            <intent-filter>
-                <action android:name="com.android.contacts.action.JOIN_CONTACT" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-        </activity>
-
         <!-- Used to set options -->
         <activity
             android:name=".preference.ContactsPreferenceActivity"
@@ -255,14 +241,11 @@
             android:theme="@style/EditorActivityTheme"
             android:windowSoftInputMode="adjustResize" />
 
-        <!-- Used to show QuickContact window over a translucent activity, which is a
-             temporary hack until we add better framework support. -->
         <activity
             android:name=".quickcontact.QuickContactActivity"
             android:theme="@style/Theme.QuickContact"
             android:launchMode="singleTop"
             android:excludeFromRecents="true"
-            android:noHistory="true"
             android:taskAffinity=""
             android:windowSoftInputMode="stateUnchanged">
 
@@ -272,6 +255,14 @@
                 <data android:mimeType="vnd.android.cursor.item/contact" />
                 <data android:mimeType="vnd.android.cursor.item/person" />
             </intent-filter>
+
+            <intent-filter android:label="@string/viewContactDesription">
+                <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
@@ -317,21 +308,6 @@
 
         </activity-alias>
 
-        <!-- Views the details of a single contact -->
-        <activity android:name=".activities.ContactDetailActivity"
-            android:label="@string/viewContactTitle"
-            android:theme="@style/DetailActivityTheme"
-            android:parentActivityName=".activities.PeopleActivity">
-
-            <intent-filter android:label="@string/viewContactDesription">
-                <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>
-
         <!-- Confirm that a single detail will be added to an existing contact -->
         <activity
             android:name=".activities.ConfirmAddDetailActivity"
@@ -351,7 +327,7 @@
         <activity
             android:name=".activities.ContactEditorActivity"
             android:theme="@style/EditorActivityTheme"
-            android:windowSoftInputMode="adjustResize">
+            android:windowSoftInputMode="stateHidden|adjustResize">
 
             <intent-filter android:label="@string/editContactDescription">
                 <action android:name="android.intent.action.EDIT" />
@@ -498,6 +474,13 @@
             </intent-filter>
         </service>
 
+        <!-- Broadcast receiver that passively listens to location updates -->
+        <receiver android:name="com.android.contacts.common.location.CountryDetector$LocationChangedReceiver"/>
+
+        <!-- IntentService to update the user's current country -->
+        <service android:name="com.android.contacts.common.location.UpdateCountryService"
+            android:exported="false"/>
+
         <provider
             android:name="android.support.v4.content.FileProvider"
             android:authorities="com.android.contacts.files"
diff --git a/CleanSpec.mk b/CleanSpec.mk
index b84e1b6..63f1939 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -47,3 +47,4 @@
 # ************************************************
 # 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/proguard.flags b/proguard.flags
index 3991a14..05071df 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -10,10 +10,10 @@
 }
 
 # Any class or method annotated with NeededForTesting or NeededForReflection.
--keep @com.android.contacts.common.test.NeededForTesting class *
+-keep @com.android.contacts.common.testing.NeededForTesting class *
 -keep @com.android.contacts.test.NeededForReflection class *
 -keepclassmembers class * {
-@com.android.contacts.common.test.NeededForTesting *;
+@com.android.contacts.common.testing.NeededForTesting *;
 @com.android.contacts.test.NeededForReflection *;
 }
 
diff --git a/res/drawable-hdpi/default_avatar_white.png b/res/drawable-hdpi/default_avatar_white.png
new file mode 100644
index 0000000..711286c
--- /dev/null
+++ b/res/drawable-hdpi/default_avatar_white.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/ic_ab_search_holo_dark.png b/res/drawable-hdpi/ic_ab_search_holo_dark.png
deleted file mode 100644
index 6dff03e..0000000
--- a/res/drawable-hdpi/ic_ab_search_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_add_to_circles_black_24.png b/res/drawable-hdpi/ic_add_to_circles_black_24.png
new file mode 100644
index 0000000..6eb1fcc
--- /dev/null
+++ b/res/drawable-hdpi/ic_add_to_circles_black_24.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_create_24dp.png b/res/drawable-hdpi/ic_create_24dp.png
new file mode 100644
index 0000000..540ab4d
--- /dev/null
+++ b/res/drawable-hdpi/ic_create_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_google_plus_24dp.png b/res/drawable-hdpi/ic_google_plus_24dp.png
new file mode 100644
index 0000000..af17f2b
--- /dev/null
+++ b/res/drawable-hdpi/ic_google_plus_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_list_default_mime_holo_dark.png b/res/drawable-hdpi/ic_list_default_mime_holo_dark.png
deleted file mode 100644
index 4dc1c39..0000000
--- a/res/drawable-hdpi/ic_list_default_mime_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_done_holo_dark.png b/res/drawable-hdpi/ic_menu_done_holo_dark.png
deleted file mode 100644
index 750c77e..0000000
--- a/res/drawable-hdpi/ic_menu_done_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_done_holo_light.png b/res/drawable-hdpi/ic_menu_done_holo_light.png
deleted file mode 100644
index 2c07476..0000000
--- a/res/drawable-hdpi/ic_menu_done_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_message_24dp.png b/res/drawable-hdpi/ic_message_24dp.png
new file mode 100644
index 0000000..48f008a
--- /dev/null
+++ b/res/drawable-hdpi/ic_message_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_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_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-mdpi/default_avatar_white.png b/res/drawable-mdpi/default_avatar_white.png
new file mode 100644
index 0000000..0983eb0
--- /dev/null
+++ b/res/drawable-mdpi/default_avatar_white.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/ic_ab_search_holo_dark.png b/res/drawable-mdpi/ic_ab_search_holo_dark.png
deleted file mode 100644
index 5a10e93..0000000
--- a/res/drawable-mdpi/ic_ab_search_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_add_to_circles_black_24.png b/res/drawable-mdpi/ic_add_to_circles_black_24.png
new file mode 100644
index 0000000..fbffc97
--- /dev/null
+++ b/res/drawable-mdpi/ic_add_to_circles_black_24.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_create_24dp.png b/res/drawable-mdpi/ic_create_24dp.png
new file mode 100644
index 0000000..8a2df39
--- /dev/null
+++ b/res/drawable-mdpi/ic_create_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_google_plus_24dp.png b/res/drawable-mdpi/ic_google_plus_24dp.png
new file mode 100644
index 0000000..d8eacf0
--- /dev/null
+++ b/res/drawable-mdpi/ic_google_plus_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_list_default_mime_holo_dark.png b/res/drawable-mdpi/ic_list_default_mime_holo_dark.png
deleted file mode 100644
index d950b31..0000000
--- a/res/drawable-mdpi/ic_list_default_mime_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_done_holo_dark.png b/res/drawable-mdpi/ic_menu_done_holo_dark.png
deleted file mode 100644
index 7ec8c8f..0000000
--- a/res/drawable-mdpi/ic_menu_done_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_done_holo_light.png b/res/drawable-mdpi/ic_menu_done_holo_light.png
deleted file mode 100644
index d18b783..0000000
--- a/res/drawable-mdpi/ic_menu_done_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_message_24dp.png b/res/drawable-mdpi/ic_message_24dp.png
new file mode 100644
index 0000000..c18f225
--- /dev/null
+++ b/res/drawable-mdpi/ic_message_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_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_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-xhdpi/default_avatar_white.png b/res/drawable-xhdpi/default_avatar_white.png
new file mode 100644
index 0000000..f645ff2
--- /dev/null
+++ b/res/drawable-xhdpi/default_avatar_white.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/ic_ab_search_holo_dark.png b/res/drawable-xhdpi/ic_ab_search_holo_dark.png
deleted file mode 100644
index b2d23c9..0000000
--- a/res/drawable-xhdpi/ic_ab_search_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_add_to_circles_black_24.png b/res/drawable-xhdpi/ic_add_to_circles_black_24.png
new file mode 100644
index 0000000..79116b5
--- /dev/null
+++ b/res/drawable-xhdpi/ic_add_to_circles_black_24.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_create_24dp.png b/res/drawable-xhdpi/ic_create_24dp.png
new file mode 100644
index 0000000..48e75be
--- /dev/null
+++ b/res/drawable-xhdpi/ic_create_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_google_plus_24dp.png b/res/drawable-xhdpi/ic_google_plus_24dp.png
new file mode 100644
index 0000000..ea352d3
--- /dev/null
+++ b/res/drawable-xhdpi/ic_google_plus_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_list_default_mime_holo_dark.png b/res/drawable-xhdpi/ic_list_default_mime_holo_dark.png
deleted file mode 100644
index 73cddd1..0000000
--- a/res/drawable-xhdpi/ic_list_default_mime_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_done_holo_dark.png b/res/drawable-xhdpi/ic_menu_done_holo_dark.png
deleted file mode 100644
index b9af04a..0000000
--- a/res/drawable-xhdpi/ic_menu_done_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_done_holo_light.png b/res/drawable-xhdpi/ic_menu_done_holo_light.png
deleted file mode 100644
index 7cde3e5..0000000
--- a/res/drawable-xhdpi/ic_menu_done_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_message_24dp.png b/res/drawable-xhdpi/ic_message_24dp.png
new file mode 100644
index 0000000..ee5021c
--- /dev/null
+++ b/res/drawable-xhdpi/ic_message_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_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_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-xxhdpi/default_avatar_white.png b/res/drawable-xxhdpi/default_avatar_white.png
new file mode 100644
index 0000000..b92f026
--- /dev/null
+++ b/res/drawable-xxhdpi/default_avatar_white.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/ic_ab_search_holo_dark.png b/res/drawable-xxhdpi/ic_ab_search_holo_dark.png
deleted file mode 100644
index d56194d..0000000
--- a/res/drawable-xxhdpi/ic_ab_search_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_add_to_circles_black_24.png b/res/drawable-xxhdpi/ic_add_to_circles_black_24.png
new file mode 100644
index 0000000..23a2084
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_add_to_circles_black_24.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_create_24dp.png b/res/drawable-xxhdpi/ic_create_24dp.png
new file mode 100644
index 0000000..24142c7
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_create_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_google_plus_24dp.png b/res/drawable-xxhdpi/ic_google_plus_24dp.png
new file mode 100644
index 0000000..933cd62
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_google_plus_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_list_default_mime_holo_dark.png b/res/drawable-xxhdpi/ic_list_default_mime_holo_dark.png
deleted file mode 100644
index 4f12d95..0000000
--- a/res/drawable-xxhdpi/ic_list_default_mime_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_done_holo_dark.png b/res/drawable-xxhdpi/ic_menu_done_holo_dark.png
deleted file mode 100644
index 7f6919c..0000000
--- a/res/drawable-xxhdpi/ic_menu_done_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_done_holo_light.png b/res/drawable-xxhdpi/ic_menu_done_holo_light.png
deleted file mode 100644
index 9a6f448..0000000
--- a/res/drawable-xxhdpi/ic_menu_done_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_message_24dp.png b/res/drawable-xxhdpi/ic_message_24dp.png
new file mode 100644
index 0000000..3b74d32
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_message_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..3c546e5
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_phone_24dp.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..0eca249
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_place_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..eeb659e
--- /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..d1728ff
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_star_outline_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_create_24dp.png b/res/drawable-xxxhdpi/ic_create_24dp.png
new file mode 100644
index 0000000..d3ff0ec
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_create_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_google_plus_24dp.png b/res/drawable-xxxhdpi/ic_google_plus_24dp.png
new file mode 100644
index 0000000..dcd6c97
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_google_plus_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_star_24dp.png b/res/drawable-xxxhdpi/ic_star_24dp.png
new file mode 100644
index 0000000..bd1cd8d
--- /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..cb90707
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_star_outline_24dp.png
Binary files differ
diff --git a/res/drawable/action_bar_tab.xml b/res/drawable/action_bar_tab.xml
deleted file mode 100644
index 2fc5c2b..0000000
--- a/res/drawable/action_bar_tab.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:drawable="@drawable/tab_selected_pressed" android:state_pressed="true"/>
-    <item android:drawable="@drawable/tab_selected_focused" android:state_focused="true"/>
-    <item android:drawable="@drawable/tab_selected" />
-</selector>
\ No newline at end of file
diff --git a/res/drawable/quickcontact_track_background.xml b/res/drawable/default_avatar_white.xml
similarity index 71%
copy from res/drawable/quickcontact_track_background.xml
copy to res/drawable/default_avatar_white.xml
index fcf61fd..9bc5cbf 100644
--- a/res/drawable/quickcontact_track_background.xml
+++ b/res/drawable/default_avatar_white.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
+<!-- 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.
@@ -14,6 +14,8 @@
      limitations under the License.
 -->
 
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:src="@drawable/quickcon_background_texture"
-    android:tileMode="repeat" />
+<inset
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:drawable="@drawable/default_avatar_white"
+    android:insetRight="102dp"
+    android:insetLeft="102dp" />
\ No newline at end of file
diff --git a/res/drawable/quickcontact_track_background.xml b/res/drawable/floating_action_button.xml
similarity index 72%
copy from res/drawable/quickcontact_track_background.xml
copy to res/drawable/floating_action_button.xml
index fcf61fd..34612d5 100644
--- a/res/drawable/quickcontact_track_background.xml
+++ b/res/drawable/floating_action_button.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
+<!--
+     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.
@@ -14,6 +15,7 @@
      limitations under the License.
 -->
 
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:src="@drawable/quickcon_background_texture"
-    android:tileMode="repeat" />
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="@color/contacts_accent_color">
+    <item android:drawable="@drawable/fab_blue" />
+</ripple>
diff --git a/res/drawable/list_divider.xml b/res/drawable/quickcontact_card_border.xml
similarity index 79%
rename from res/drawable/list_divider.xml
rename to res/drawable/quickcontact_card_border.xml
index 81df0f5..f0daea1 100644
--- a/res/drawable/list_divider.xml
+++ b/res/drawable/quickcontact_card_border.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
+<!-- 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.
@@ -15,6 +15,7 @@
 -->
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle">
-    <solid
-        android:color="@color/quickcontact_list_divider"/>
-</shape>
\ No newline at end of file
+    <stroke
+        android:width="@dimen/expanding_entry_card_border_width"
+        android:color="@color/card_margin_color"/>
+</shape>
diff --git a/res/drawable/quickcontact_list_item_divider.xml b/res/drawable/quickcontact_list_item_divider.xml
deleted file mode 100644
index 99882c4..0000000
--- a/res/drawable/quickcontact_list_item_divider.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<inset xmlns:android="http://schemas.android.com/apk/res/android"
-    android:drawable="@drawable/list_divider"
-    android:insetRight="16dp"
-    android:insetLeft="16dp" />
\ No newline at end of file
diff --git a/res/drawable/tab_selected.xml b/res/drawable/tab_selected.xml
deleted file mode 100644
index 36a4175..0000000
--- a/res/drawable/tab_selected.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item>
-        <shape android:shape="rectangle" >
-            <solid android:color="@color/action_bar_background" />
-        </shape>
-    </item>
-</layer-list>
\ No newline at end of file
diff --git a/res/drawable/tab_selected_focused.xml b/res/drawable/tab_selected_focused.xml
deleted file mode 100644
index 13aeb4ce..0000000
--- a/res/drawable/tab_selected_focused.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item>
-        <shape android:shape="rectangle" >
-            <solid android:color="@color/action_bar_background_highlight" />
-        </shape>
-    </item>
-</layer-list>
\ No newline at end of file
diff --git a/res/drawable/tab_selected_pressed.xml b/res/drawable/tab_selected_pressed.xml
deleted file mode 100644
index 13aeb4ce..0000000
--- a/res/drawable/tab_selected_pressed.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item>
-        <shape android:shape="rectangle" >
-            <solid android:color="@color/action_bar_background_highlight" />
-        </shape>
-    </item>
-</layer-list>
\ No newline at end of file
diff --git a/res/drawable/tab_unselected_focused.xml b/res/drawable/tab_unselected_focused.xml
deleted file mode 100644
index 13aeb4ce..0000000
--- a/res/drawable/tab_unselected_focused.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item>
-        <shape android:shape="rectangle" >
-            <solid android:color="@color/action_bar_background_highlight" />
-        </shape>
-    </item>
-</layer-list>
\ No newline at end of file
diff --git a/res/drawable/tab_unselected_pressed.xml b/res/drawable/tab_unselected_pressed.xml
deleted file mode 100644
index 13aeb4ce..0000000
--- a/res/drawable/tab_unselected_pressed.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item>
-        <shape android:shape="rectangle" >
-            <solid android:color="@color/action_bar_background_highlight" />
-        </shape>
-    </item>
-</layer-list>
\ No newline at end of file
diff --git a/res/drawable/view_pager_tab_background.xml b/res/drawable/view_pager_tab_background.xml
new file mode 100644
index 0000000..1ba6c57
--- /dev/null
+++ b/res/drawable/view_pager_tab_background.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
+  -->
+<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/layout-land/contact_detail_container.xml b/res/layout-land/contact_detail_container.xml
deleted file mode 100644
index fc401b7..0000000
--- a/res/layout-land/contact_detail_container.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <com.android.contacts.detail.ContactDetailFragmentCarousel
-        android:id="@+id/fragment_carousel"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"/>
-
-</FrameLayout>
\ No newline at end of file
diff --git a/res/layout-land/contact_detail_fragment.xml b/res/layout-land/contact_detail_fragment.xml
deleted file mode 100644
index 2d788df..0000000
--- a/res/layout-land/contact_detail_fragment.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/contact_detail"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <!-- "QuickFix"- button (Copy to local contact, add to group) -->
-    <Button
-        android:id="@+id/contact_quick_fix"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:visibility="gone"
-        android:layout_alignParentRight="true"
-        android:layout_alignParentEnd="true"
-        android:layout_alignParentBottom="true"
-        android:layout_marginRight="40dip"
-        android:layout_marginEnd="40dip"
-        android:layout_marginTop="20dip"
-        android:layout_marginBottom="20dip" />
-
-    <LinearLayout
-        android:orientation="horizontal"
-        android:layout_width="match_parent"
-        android:layout_above="@id/contact_quick_fix"
-        android:layout_height="match_parent"
-        android:baselineAligned="false"
-        android:background="@android:color/white">
-
-        <include android:id="@+id/static_photo_container"
-            layout="@layout/photo_selector_view"
-            android:layout_width="@dimen/detail_contact_photo_size"
-            android:layout_height="@dimen/detail_contact_photo_size"
-            android:layout_marginLeft="@dimen/detail_contact_photo_margin"
-            android:layout_marginStart="@dimen/detail_contact_photo_margin"
-            android:layout_marginTop="@dimen/detail_contact_photo_margin" />
-
-        <ListView android:id="@android:id/list"
-            android:layout_width="0dip"
-            android:layout_height="match_parent"
-            android:fadingEdge="none"
-            android:layout_weight="1"
-            android:divider="@null"/>
-
-    </LinearLayout>
-
-    <ScrollView android:id="@android:id/empty"
-        android:layout_width="match_parent"
-        android:layout_height="0px"
-        android:fadingEdge="none"
-        android:visibility="gone">
-        <TextView android:id="@+id/emptyText"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/no_contact_details"
-            android:textSize="20sp"
-            android:textColor="?android:attr/textColorSecondary"
-            android:paddingLeft="10dip"
-            android:paddingRight="10dip"
-            android:paddingStart="10dip"
-            android:paddingEnd="10dip"
-            android:paddingTop="10dip"
-            android:lineSpacingMultiplier="0.92"/>
-    </ScrollView>
-
-</RelativeLayout>
-
diff --git a/res/layout-land/contact_detail_updates_fragment.xml b/res/layout-land/contact_detail_updates_fragment.xml
deleted file mode 100644
index 801f2bb..0000000
--- a/res/layout-land/contact_detail_updates_fragment.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/contact_detail_updates_fragment"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/background_social_updates">
-
-    <ListView android:id="@android:id/list"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:fadingEdge="none"
-        android:divider="@null"
-        android:background="@android:color/transparent"/>
-
-</FrameLayout>
diff --git a/res/layout-land/detail_header_contact_with_updates.xml b/res/layout-land/detail_header_contact_with_updates.xml
deleted file mode 100644
index 588957e..0000000
--- a/res/layout-land/detail_header_contact_with_updates.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact details list for when the contact has social updates.
-  This is empty because all the information will be displayed elsewhere.
--->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="0dip"/>
\ No newline at end of file
diff --git a/res/layout-land/detail_header_contact_without_updates.xml b/res/layout-land/detail_header_contact_without_updates.xml
deleted file mode 100644
index 44ea04c..0000000
--- a/res/layout-land/detail_header_contact_without_updates.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact details list for when the contact does not have social
-  updates. This is empty because all the information will be displayed elsewhere.
--->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="0dip"/>
\ No newline at end of file
diff --git a/res/layout-land/people_activity_toolbar.xml b/res/layout-land/people_activity_toolbar.xml
new file mode 100644
index 0000000..1f86879
--- /dev/null
+++ b/res/layout-land/people_activity_toolbar.xml
@@ -0,0 +1,35 @@
+<?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" >
+
+    <Toolbar
+        android:layout_width="match_parent"
+        android:layout_height="?android:attr/actionBarSize"
+        android:background="@color/actionbar_background_color"
+        android:id="@+id/toolbar"
+        style="@style/ContactsToolbarStyle" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-land/quickcontact_activity.xml b/res/layout-land/quickcontact_activity.xml
index c398551..b22b5ef 100644
--- a/res/layout-land/quickcontact_activity.xml
+++ b/res/layout-land/quickcontact_activity.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
+<!-- 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.
@@ -13,45 +13,50 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<view
+<com.android.contacts.widget.MultiShrinkScroller
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:ex="http://schemas.android.com/apk/res-auto"
-    class="com.android.contacts.quickcontact.FloatingChildLayout"
-    android:id="@+id/floating_layout"
     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">
+    android:descendantFocusability="afterDescendants" >
+
     <LinearLayout
-        android:id="@android:id/content"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:padding="32dip"
-        android:orientation="horizontal">
-        <view
-            class="com.android.contacts.common.widget.ProportionalLayout"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            ex:ratio="1.0"
-            ex:direction="heightToWidth">
-            <include layout="@layout/quickcontact_photo_container" />
-        </view>
+        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="vertical">
-            <include layout="@layout/quickcontact_track" />
-            <View
-                android:id="@+id/line_after_track"
+            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="2dip"
-                android:background="@color/quickcontact_tab_indicator" />
-            <android.support.v4.view.ViewPager
-                android:id="@+id/item_list_pager"
-                android:background="@drawable/quickcontact_track_background"
-                android:layout_width="match_parent"
-                android:layout_height="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" />
+
+            </FrameLayout>
+
+            <include layout="@layout/quickcontact_content" />
+
         </LinearLayout>
+
     </LinearLayout>
-</view>
+
+</com.android.contacts.widget.MultiShrinkScroller>
\ No newline at end of file
diff --git a/res/layout-land/updates_header_contact.xml b/res/layout-land/updates_header_contact.xml
deleted file mode 100644
index 844188e..0000000
--- a/res/layout-land/updates_header_contact.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact updates list.
--->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="32dip"
-    android:paddingLeft="16dip"
-    android:paddingRight="16dip"
-    android:paddingStart="16dip"
-    android:paddingEnd="16dip"
-    android:focusable="false">
-
-    <TextView
-        style="?android:attr/listSeparatorTextViewStyle"
-        android:paddingLeft="8dip"
-        android:paddingRight="8dip"
-        android:paddingStart="8dip"
-        android:paddingEnd="8dip"
-        android:background="@drawable/list_section_divider_holo_custom"
-        android:text="@string/recent_updates"
-        android:textColor="@color/people_app_theme_color"
-        android:textAllCaps="true"
-        android:singleLine="true"
-        android:ellipsize="end" />
-
-</FrameLayout>
diff --git a/res/layout-sw600dp-land/contact_detail_container.xml b/res/layout-sw600dp-land/contact_detail_container.xml
deleted file mode 100644
index 3597d9f..0000000
--- a/res/layout-sw600dp-land/contact_detail_container.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <com.android.contacts.detail.ContactDetailFragmentCarousel
-        android:id="@+id/fragment_carousel"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_marginLeft="16dip"
-        android:layout_marginStart="16dip"/>
-
-</FrameLayout>
diff --git a/res/layout-sw600dp-land/contact_detail_fragment.xml b/res/layout-sw600dp-land/contact_detail_fragment.xml
deleted file mode 100644
index a48a5b5..0000000
--- a/res/layout-sw600dp-land/contact_detail_fragment.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/contact_detail"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <!-- Placeholder for empty list -->
-    <include
-        android:id="@android:id/empty"
-        layout="@layout/contact_detail_empty"
-        android:visibility="gone" />
-
-    <!-- Real list -->
-    <LinearLayout
-        android:orientation="horizontal"
-        android:layout_weight="1"
-        android:layout_width="match_parent"
-        android:layout_height="0dip"
-        android:baselineAligned="false">
-
-        <include android:id="@+id/static_photo_container"
-            layout="@layout/photo_selector_view"
-            android:layout_width="@dimen/detail_contact_photo_size"
-            android:layout_height="@dimen/detail_contact_photo_size"
-            android:layout_marginTop="@dimen/detail_contact_photo_margin"
-            android:layout_marginRight="@dimen/detail_contact_photo_margin"
-            android:layout_marginEnd="@dimen/detail_contact_photo_margin" />
-
-        <ListView android:id="@android:id/list"
-            android:layout_width="0dip"
-            android:layout_height="match_parent"
-            android:paddingTop="16dip"
-            android:clipToPadding="false"
-            android:fadingEdge="none"
-            android:layout_weight="1"
-            android:divider="@null"
-            android:scrollbarStyle="outsideOverlay"
-            android:paddingRight="16dip"
-            android:paddingEnd="16dip"/>
-
-    </LinearLayout>
-
-    <!-- "QuickFix"- button (Copy to local contact, add to group) -->
-    <Button
-        android:id="@+id/contact_quick_fix"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:visibility="gone"
-        android:layout_gravity="center"
-        android:layout_marginTop="10dip"
-        android:layout_marginBottom="10dip" />
-</LinearLayout>
diff --git a/res/layout-sw600dp-land/detail_header_contact_with_updates.xml b/res/layout-sw600dp-land/detail_header_contact_with_updates.xml
deleted file mode 100644
index 6476300..0000000
--- a/res/layout-sw600dp-land/detail_header_contact_with_updates.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact details list for when the contact has social updates. The
-  entry shows the contact's basic info and maintains vertical padding to ensure that the first
-  contact detail is visible (and below the tab carousel). The photo is not displayed here
-  because it will be shown in the tab carousel.
--->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingBottom="8dip"
-    android:orientation="horizontal">
-
-    <include layout="@layout/photo_selector_view"
-        android:layout_width="@dimen/detail_contact_photo_size"
-        android:layout_height="@dimen/detail_contact_photo_size" />
-
-    <LinearLayout
-        android:layout_width="0dip"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:orientation="vertical"
-        android:paddingLeft="16dip"
-        android:paddingRight="4dip"
-        android:paddingStart="16dip"
-        android:paddingEnd="4dip">
-
-        <TextView
-            android:id="@+id/name"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:gravity="center_vertical"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:textSize="@dimen/detail_header_name_text_size" />
-
-        <TextView
-            android:id="@+id/company"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:gravity="center_vertical"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textColor="?android:attr/textColorSecondary" />
-
-    </LinearLayout>
-
-    <include
-        layout="@layout/favorites_star" />
-
-</LinearLayout>
diff --git a/res/layout-sw600dp-land/detail_header_contact_without_updates.xml b/res/layout-sw600dp-land/detail_header_contact_without_updates.xml
deleted file mode 100644
index 085b972..0000000
--- a/res/layout-sw600dp-land/detail_header_contact_without_updates.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact details list for when the contact does not have social
-  updates, which means that the contact's basic info will scroll with the list of details. The
-  photo is not included because it will be displayed in a static place elsewhere.
--->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingLeft="8dip"
-    android:paddingStart="8dip"
-    android:paddingBottom="16dip"
-    android:orientation="vertical">
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingRight="16dip"
-        android:paddingEnd="16dip">
-
-        <TextView
-            android:id="@+id/name"
-            android:layout_width="0dip"
-            android:layout_weight="1"
-            android:layout_height="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:textSize="@dimen/detail_header_name_text_size"
-            android:paddingRight="16dip"
-            android:paddingEnd="16dip" />
-
-        <include
-            layout="@layout/favorites_star" />
-
-    </LinearLayout>
-
-    <TextView
-        android:id="@+id/company"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:textColor="?android:attr/textColorSecondary" />
-
-</LinearLayout>
diff --git a/res/layout-sw600dp-land/people_activity.xml b/res/layout-sw600dp-land/people_activity.xml
deleted file mode 100644
index 46f27a0..0000000
--- a/res/layout-sw600dp-land/people_activity.xml
+++ /dev/null
@@ -1,162 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<view
-    class="com.android.contacts.widget.TransitionAnimationView"
-    android:id="@+id/people_view"
-    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">
-
-    <LinearLayout
-        android:id="@+id/main_view"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="horizontal"
-        android:splitMotionEvents="true"
-        android:baselineAligned="false">
-
-        <!-- Left panel browse list for Groups or All tabs -->
-        <FrameLayout
-            android:id="@+id/browse_view"
-            android:layout_width="0dip"
-            android:layout_height="match_parent"
-            android:layout_weight="1"
-            android:background="@drawable/list_background_holo"
-            android:visibility="gone">
-
-            <!-- All -->
-            <fragment
-                android:id="@+id/all_fragment"
-                class="com.android.contacts.list.DefaultContactBrowseListFragment"
-                android:layout_height="match_parent"
-                android:layout_width="match_parent" />
-
-            <!-- Groups -->
-            <fragment
-                android:id="@+id/groups_fragment"
-                class="com.android.contacts.group.GroupBrowseListFragment"
-                android:layout_height="match_parent"
-                android:layout_width="match_parent" />
-        </FrameLayout>
-
-        <!-- Right panel detail view for All tab -->
-        <view
-            class="com.android.contacts.widget.TransitionAnimationView"
-            android:id="@+id/contact_details_view"
-            android:layout_width="0dip"
-            android:layout_height="match_parent"
-            android:layout_weight="2"
-            android:visibility="gone">
-
-            <!-- This layout includes all possible views needed for a contact detail page -->
-            <include
-                android:id="@+id/contact_detail_container"
-                layout="@layout/contact_detail_container"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"/>
-
-            <!-- This invisible worker fragment loads the contact's details -->
-            <fragment
-                android:id="@+id/contact_detail_loader_fragment"
-                class="com.android.contacts.detail.ContactLoaderFragment"
-                android:layout_height="0dip"
-                android:layout_width="0dip"
-                android:visibility="gone"/>
-        </view>
-
-        <!-- Right panel detail view for Groups tab -->
-        <view
-            class="com.android.contacts.widget.TransitionAnimationView"
-            android:id="@+id/group_details_view"
-            android:layout_width="0dip"
-            android:layout_height="match_parent"
-            android:layout_weight="2"
-            android:visibility="gone">
-
-            <!-- This is the group detail page -->
-            <fragment
-                android:id="@+id/group_detail_fragment"
-                class="com.android.contacts.group.GroupDetailFragment"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:visibility="gone" />
-        </view>
-
-        <!-- Two-panel view under the Favorites tab -->
-        <LinearLayout
-            android:id="@+id/favorites_view"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="@drawable/list_background_holo"
-            android:baselineAligned="false">
-
-            <!-- Starred -->
-            <FrameLayout
-                android:layout_width="0dip"
-                android:layout_height="match_parent"
-                android:layout_weight="2"
-                android:background="@drawable/panel_favorites_holo_light">
-
-                <fragment
-                    android:id="@+id/favorites_fragment"
-                    class="com.android.contacts.list.ContactTileListFragment"
-                    android:layout_height="match_parent"
-                    android:layout_width="match_parent"
-                    android:layout_marginLeft="16dip"
-                    android:layout_marginRight="16dip"
-                    android:layout_marginStart="16dip"
-                    android:layout_marginEnd="16dip" />
-
-            </FrameLayout>
-
-            <!-- Most Frequent -->
-            <fragment
-                android:id="@+id/frequent_fragment"
-                class="com.android.contacts.list.ContactTileFrequentFragment"
-                android:layout_width="0dip"
-                android:layout_height="match_parent"
-                android:layout_weight="1"
-                android:layout_marginTop="16dip"
-                android:layout_marginRight="16dip"
-                android:layout_marginEnd="16dip"/>
-
-        </LinearLayout>
-
-    </LinearLayout>
-
-    <com.android.contacts.widget.InterpolatingLayout
-        android:id="@+id/contacts_unavailable_view"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="@drawable/background_holo_light"
-        android:visibility="gone">
-
-        <FrameLayout
-            android:id="@+id/contacts_unavailable_container"
-            android:layout_height="match_parent"
-            android:layout_width="match_parent"
-            ex:layout_narrowParentWidth="800dip"
-            ex:layout_narrowMarginLeft="80dip"
-            ex:layout_narrowMarginRight="80dip"
-            ex:layout_wideParentWidth="1280dip"
-            ex:layout_wideMarginLeft="200dip"
-            ex:layout_wideMarginRight="200dip"
-            android:paddingBottom="20dip" />
-
-    </com.android.contacts.widget.InterpolatingLayout>
-</view>
diff --git a/res/layout-sw600dp-land/quickcontact_activity.xml b/res/layout-sw600dp-land/quickcontact_activity.xml
deleted file mode 100644
index 230c4e0..0000000
--- a/res/layout-sw600dp-land/quickcontact_activity.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<view
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    class="com.android.contacts.quickcontact.FloatingChildLayout"
-    android:id="@+id/floating_layout"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:focusable="true"
-    android:focusableInTouchMode="true"
-    android:descendantFocusability="afterDescendants">
-    <LinearLayout
-        android:id="@android:id/content"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:padding="32dip"
-        android:orientation="horizontal">
-        <FrameLayout
-            android:layout_width="360dip"
-            android:layout_height="360dip">
-            <include layout="@layout/quickcontact_photo_container" />
-        </FrameLayout>
-        <LinearLayout
-            android:layout_width="360dip"
-            android:layout_height="match_parent"
-            android:orientation="vertical">
-            <include layout="@layout/quickcontact_track" />
-            <View
-                android:id="@+id/line_after_track"
-                android:layout_width="match_parent"
-                android:layout_height="2dip"
-                android:background="@color/quickcontact_tab_indicator" />
-            <android.support.v4.view.ViewPager
-                android:id="@+id/item_list_pager"
-                android:background="@drawable/quickcontact_track_background"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent" />
-        </LinearLayout>
-    </LinearLayout>
-</view>
diff --git a/res/layout-sw600dp-land/updates_header_contact.xml b/res/layout-sw600dp-land/updates_header_contact.xml
deleted file mode 100644
index eb0eee7..0000000
--- a/res/layout-sw600dp-land/updates_header_contact.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact updates list.
--->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:focusable="false">
-
-    <TextView
-        style="?android:attr/listSeparatorTextViewStyle"
-        android:layout_height="32dip"
-        android:paddingLeft="8dip"
-        android:paddingRight="8dip"
-        android:paddingStart="8dip"
-        android:paddingEnd="8dip"
-        android:background="@drawable/list_section_divider_holo_custom"
-        android:text="@string/recent_updates"
-        android:textColor="@color/people_app_theme_color"
-        android:textAllCaps="true"
-        android:singleLine="true"
-        android:ellipsize="end" />
-
-</FrameLayout>
diff --git a/res/layout-sw600dp/contact_detail_container.xml b/res/layout-sw600dp/contact_detail_container.xml
deleted file mode 100644
index d7accaf..0000000
--- a/res/layout-sw600dp/contact_detail_container.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <android.support.v4.view.ViewPager
-        android:id="@+id/pager"
-        android:layout_alignParentTop="true"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-    <include
-        android:id="@+id/tab_carousel"
-        layout="@layout/contact_detail_tab_carousel"
-        android:layout_alignParentTop="true"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:visibility="gone"/>
-
-</RelativeLayout>
\ No newline at end of file
diff --git a/res/layout-sw600dp/contact_detail_fragment.xml b/res/layout-sw600dp/contact_detail_fragment.xml
deleted file mode 100644
index 1e0f7e6..0000000
--- a/res/layout-sw600dp/contact_detail_fragment.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/contact_detail"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <!-- Placeholder for empty list -->
-    <include
-        android:id="@android:id/empty"
-        layout="@layout/contact_detail_empty"
-        android:visibility="gone" />
-
-    <!-- Real list -->
-    <ListView android:id="@android:id/list"
-        android:layout_weight="1"
-        android:layout_width="match_parent"
-        android:layout_height="0dip"
-        android:fadingEdge="none"
-        android:cacheColorHint="#00000000"
-        android:divider="@null"
-        android:scrollbarStyle="outsideOverlay"
-        android:paddingRight="12dip"
-        android:paddingEnd="12dip" />
-
-    <!-- "QuickFix"- button (Copy to local contact, add to group) -->
-    <Button
-        android:id="@+id/contact_quick_fix"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:visibility="gone"
-        android:layout_gravity="center"
-        android:layout_marginTop="10dip"
-        android:layout_marginBottom="10dip" />
-</LinearLayout>
diff --git a/res/layout-sw600dp/contact_detail_updates_fragment.xml b/res/layout-sw600dp/contact_detail_updates_fragment.xml
deleted file mode 100644
index 537d68f..0000000
--- a/res/layout-sw600dp/contact_detail_updates_fragment.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/contact_detail_updates_fragment"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <ListView android:id="@android:id/list"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:fadingEdge="none"
-        android:divider="@null"
-        android:scrollbarStyle="outsideOverlay"
-        android:paddingRight="12dip"
-        android:paddingEnd="12dip" />
-
-</FrameLayout>
diff --git a/res/layout-sw600dp/contact_list_content.xml b/res/layout-sw600dp/contact_list_content.xml
new file mode 100644
index 0000000..1b52068
--- /dev/null
+++ b/res/layout-sw600dp/contact_list_content.xml
@@ -0,0 +1,76 @@
+<?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:id="@+id/pinned_header_list_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="horizontal">
+        <View
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="@integer/people_activity_space_layout_weight"
+            android:background="@color/background_primary"/>
+        <View
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:background="@color/contact_all_list_background_color"
+            android:layout_weight="@integer/people_activity_list_view_layout_weight"
+            android:elevation="@dimen/people_activity_card_elevation"/>
+        <View
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="@integer/people_activity_space_layout_weight"
+            android:background="@color/background_primary"/>
+    </LinearLayout>
+    <LinearLayout
+        android:orientation="vertical"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+        <!-- Shown only when an Account filter is set.
+             - paddingTop should be here to show "shade" effect correctly. -->
+        <include
+            android:id="@+id/account_filter_header_container"
+            layout="@layout/account_filter_header" />
+
+        <FrameLayout
+            android:layout_width="match_parent"
+            android:layout_height="0dip"
+            android:layout_weight="1" >
+            <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:fadingEdge="none" />
+            <ProgressBar
+                android:id="@+id/search_progress"
+                style="?android:attr/progressBarStyleLarge"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:visibility="gone" />
+        </FrameLayout>
+    </LinearLayout>
+</FrameLayout>
diff --git a/res/layout-sw600dp/contact_picker.xml b/res/layout-sw600dp/contact_picker.xml
deleted file mode 100644
index 558c604..0000000
--- a/res/layout-sw600dp/contact_picker.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/ContactPickerLayout"
-    android:orientation="vertical"
-    android:layout_height="match_parent">
-    <!-- Right bound should be aligned to ListView's right edge. -->
-    <!--
-      The SearchView should have a max width to prevent the dialog from resizing to the
-      full screen width of the device. The precise value of the max width is not as important
-      because the SearchView can take on a smaller width than the max width, so in some cases it
-      will take on the automatically computed width of a dialog (based on the dialog contents)
-      from the framework.
-    -->
-    <view
-        class="android.widget.SearchView"
-        android:id="@+id/search_view"
-        android:layout_width="match_parent"
-        android:maxWidth="@dimen/contact_picker_search_view_max_width"
-        android:layout_height="wrap_content"
-        android:layout_marginLeft="0dip"
-        android:layout_marginRight="@dimen/list_visible_scrollbar_padding"
-        android:layout_marginStart="0dip"
-        android:layout_marginEnd="@dimen/list_visible_scrollbar_padding"
-        android:paddingRight="0dip"
-        android:paddingEnd="0dip"
-        android:iconifiedByDefault="false" />
-    <!--
-      This will contain an appropriate contacts list. Add a min height to prevent
-      the dialog from resizing too much when the search results change. The activity dialog
-      is wrap content for height in the framework, so there is no way around this.
-    -->
-    <FrameLayout
-        android:id="@+id/list_container"
-        android:layout_width="match_parent"
-        android:minHeight="@dimen/contact_picker_contact_list_min_height"
-        android:layout_height="0dip"
-        android:layout_weight="1" />
-
-    <!-- This should look like a menu on the split action bar. -->
-    <LinearLayout
-        android:id="@+id/new_contact"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:minHeight="48dip"
-        android:background="@drawable/gray_action_bar_background"
-        android:paddingLeft="16dip"
-        android:paddingRight="16dip"
-        android:paddingStart="16dip"
-        android:paddingEnd="16dip">
-        <TextView
-            android:id="@android:id/title"
-            android:layout_width="0dip"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:layout_gravity="center"
-            android:gravity="center"
-            android:duplicateParentState="true"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textColor="@color/action_bar_button_text_color"
-            style="@android:style/Widget.Holo.Light.ActionBar.TabText"
-            android:text="@string/pickerNewContactText"/>
-    </LinearLayout>
-</LinearLayout>
diff --git a/res/layout-sw600dp/contact_tile_list.xml b/res/layout-sw600dp/contact_tile_list.xml
new file mode 100644
index 0000000..102a58d
--- /dev/null
+++ b/res/layout-sw600dp/contact_tile_list.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:paddingBottom="?attr/favorites_padding_bottom">
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="horizontal">
+        <View
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="@integer/people_activity_space_layout_weight"
+            android:background="@color/background_primary"/>
+        <View
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:background="@color/contact_favorites_list_background_color"
+            android:layout_weight="@integer/people_activity_list_view_layout_weight"
+            android:elevation="@dimen/people_activity_card_elevation"/>
+        <View
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="@integer/people_activity_space_layout_weight"
+            android:background="@color/background_primary"/>
+    </LinearLayout>
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+        <ListView
+            android:id="@+id/contact_tile_list"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:paddingTop="@dimen/contact_tile_list_padding_top"
+            android:clipToPadding="false"
+            android:fadingEdge="none"
+            android:divider="@null"
+            android:scrollbarStyle="outsideOverlay"/>
+        <TextView
+            android:id="@+id/contact_tile_list_empty"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:gravity="center_horizontal"
+            android:layout_marginTop="@dimen/empty_message_top_margin"
+            android:textColor="?android:attr/textColorSecondary"
+            android:textAppearance="?android:attr/textAppearanceLarge"/>
+    </FrameLayout>
+</FrameLayout>
diff --git a/res/layout-sw600dp/contacts_unavailable_fragment.xml b/res/layout-sw600dp/contacts_unavailable_fragment.xml
new file mode 100644
index 0000000..8727359
--- /dev/null
+++ b/res/layout-sw600dp/contacts_unavailable_fragment.xml
@@ -0,0 +1,49 @@
+<?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="match_parent"
+    android:layout_height="match_parent"
+    android:paddingBottom="?attr/favorites_padding_bottom">
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="horizontal">
+        <View
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="@integer/people_activity_space_layout_weight"
+            android:background="@color/background_primary"/>
+        <View
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:background="@color/contact_favorites_list_background_color"
+            android:layout_weight="@integer/people_activity_list_view_layout_weight"
+            android:elevation="@dimen/people_activity_card_elevation"/>
+        <View
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="@integer/people_activity_space_layout_weight"
+            android:background="@color/background_primary"/>
+    </LinearLayout>
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:fillViewport="true">
+        <include layout="@layout/contacts_unavailable_fragment_content"/>
+    </ScrollView>
+</FrameLayout>
diff --git a/res/layout-sw600dp/detail_header_contact_with_updates.xml b/res/layout-sw600dp/detail_header_contact_with_updates.xml
deleted file mode 100644
index 06b82dd..0000000
--- a/res/layout-sw600dp/detail_header_contact_with_updates.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact details list for when the contact has social updates. The
-  entry shows the contact's basic info and maintains vertical padding to ensure that the first
-  contact detail is visible (and below the tab carousel). The photo is not displayed here
-  because it will be shown in the tab carousel.
--->
-<LinearLayout
-    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="wrap_content"
-    android:orientation="vertical"
-    android:layout_marginTop="30dip"
-    android:paddingBottom="16dip">
-
-    <!-- Add a first item that gives us enough space to show the carousel -->
-    <view
-        class="com.android.contacts.common.widget.ProportionalLayout"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        ex:ratio="0.6667"
-        ex:direction="widthToHeight">
-
-        <!-- Put a dummy view here because the ProportionalLayout requires one -->
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="match_parent" />
-
-    </view>
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        android:paddingTop="8dip"
-        android:paddingEnd="8dip" >
-
-        <TextView
-            android:id="@+id/name"
-            android:layout_width="0dip"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:paddingStart="8dip"
-            android:paddingEnd="24dip"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:textSize="@dimen/detail_header_name_text_size" />
-
-        <include
-            layout="@layout/favorites_star" />
-
-    </LinearLayout>
-
-    <TextView
-        android:id="@+id/company"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingStart="8dip"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:textColor="?android:attr/textColorSecondary" />
-
-</LinearLayout>
diff --git a/res/layout-sw600dp/detail_header_contact_without_updates.xml b/res/layout-sw600dp/detail_header_contact_without_updates.xml
deleted file mode 100644
index 069e0de..0000000
--- a/res/layout-sw600dp/detail_header_contact_without_updates.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact details list for when the contact does not have social
-  updates, which means that the contact's photo and basic info will scroll with the list of details.
--->
-<LinearLayout
-    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="wrap_content"
-    android:orientation="vertical"
-    android:paddingBottom="16dip">
-
-    <!-- Ensure that the contact photo for a contact WITHOUT social updates is the same width and
-    height as a contact WITH social updates (where the photo is 2/3 of the screen width). -->
-    <view
-        class="com.android.contacts.common.widget.ProportionalLayout"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        ex:ratio="0.6667"
-        ex:direction="widthToHeight">
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:orientation="horizontal">
-
-            <include layout="@layout/photo_selector_view"
-                android:layout_width="0dip"
-                android:layout_height="match_parent"
-                android:layout_weight="2" />
-
-            <!-- Empty view to fill the rest of the LinearLayout, so that a weight on its sibling
-            ImageView will work.-->
-            <View
-                android:layout_width="0dip"
-                android:layout_weight="1"
-                android:layout_height="match_parent" />
-
-        </LinearLayout>
-
-    </view>
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        android:paddingTop="8dip"
-        android:paddingEnd="8dip" >
-
-        <TextView
-            android:id="@+id/name"
-            android:layout_width="0dip"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:paddingStart="8dip"
-            android:paddingEnd="24dip"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:textSize="@dimen/detail_header_name_text_size" />
-
-        <include
-            layout="@layout/favorites_star" />
-
-    </LinearLayout>
-
-    <TextView
-        android:id="@+id/company"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingStart="8dip"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:textColor="?android:attr/textColorSecondary" />
-
-</LinearLayout>
diff --git a/res/layout-sw600dp/join_contact_picker.xml b/res/layout-sw600dp/join_contact_picker.xml
deleted file mode 100644
index 9de85db..0000000
--- a/res/layout-sw600dp/join_contact_picker.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<view xmlns:android="http://schemas.android.com/apk/res/android"
-    class="com.android.contacts.widget.FullHeightLinearLayout"
-    style="@style/ContactPickerLayout"
-    android:orientation="vertical">
-    <!-- See also comments in contact_picker.xml -->
-    <view
-        class="android.widget.SearchView"
-        android:id="@+id/search_view"
-        android:layout_width="match_parent"
-        android:maxWidth="@dimen/contact_picker_search_view_max_width"
-        android:layout_height="wrap_content"
-        android:layout_marginLeft="0dip"
-        android:layout_marginRight="@dimen/list_visible_scrollbar_padding"
-        android:layout_marginStart="0dip"
-        android:layout_marginEnd="@dimen/list_visible_scrollbar_padding"
-        android:paddingRight="0dip"
-        android:paddingEnd="0dip"
-        android:iconifiedByDefault="false" />
-
-    <FrameLayout
-        android:layout_width="match_parent"
-        android:layout_height="0dip"
-        android:layout_weight="1"
-        android:id="@+id/list_container" />
-</view>
diff --git a/res/layout-sw600dp/people_activity.xml b/res/layout-sw600dp/people_activity.xml
deleted file mode 100644
index f788f72..0000000
--- a/res/layout-sw600dp/people_activity.xml
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<view
-    class="com.android.contacts.widget.TransitionAnimationView"
-    android:id="@+id/people_view"
-    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">
-
-    <LinearLayout
-        android:id="@+id/main_view"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="horizontal"
-        android:splitMotionEvents="true"
-        android:baselineAligned="false">
-
-        <!-- Left panel browse list for Groups or All tabs -->
-        <FrameLayout
-            android:id="@+id/browse_view"
-            android:layout_width="0dip"
-            android:layout_height="match_parent"
-            android:layout_weight="1"
-            android:background="@drawable/list_background_holo"
-            android:visibility="gone">
-
-            <!-- All -->
-            <fragment
-                android:id="@+id/all_fragment"
-                class="com.android.contacts.list.DefaultContactBrowseListFragment"
-                android:layout_height="match_parent"
-                android:layout_width="match_parent" />
-
-            <!-- Groups -->
-            <fragment
-                android:id="@+id/groups_fragment"
-                class="com.android.contacts.group.GroupBrowseListFragment"
-                android:layout_height="match_parent"
-                android:layout_width="match_parent" />
-        </FrameLayout>
-
-        <!-- Right panel detail view for All tab -->
-        <view
-            class="com.android.contacts.widget.TransitionAnimationView"
-            android:id="@+id/contact_details_view"
-            android:layout_width="0dip"
-            android:layout_height="match_parent"
-            android:layout_weight="2"
-            android:visibility="gone">
-
-            <!-- This layout includes all possible views needed for a contact detail page -->
-            <include
-                android:id="@+id/contact_detail_container"
-                layout="@layout/contact_detail_container"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_marginLeft="16dip"
-                android:layout_marginRight="16dip"
-                android:layout_marginStart="16dip"
-                android:layout_marginEnd="16dip"
-                android:layout_marginTop="16dip" />
-
-            <!-- This invisible worker fragment loads the contact's details -->
-            <fragment
-                android:id="@+id/contact_detail_loader_fragment"
-                class="com.android.contacts.detail.ContactLoaderFragment"
-                android:layout_height="0dip"
-                android:layout_width="0dip"
-                android:visibility="gone" />
-        </view>
-
-        <!-- Right panel detail view for Groups tab -->
-        <view
-            class="com.android.contacts.widget.TransitionAnimationView"
-            android:id="@+id/group_details_view"
-            android:layout_width="0dip"
-            android:layout_height="match_parent"
-            android:layout_weight="2"
-            android:visibility="gone">
-
-            <!-- This is the group detail page -->
-            <fragment
-                android:id="@+id/group_detail_fragment"
-                class="com.android.contacts.group.GroupDetailFragment"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:visibility="gone" />
-        </view>
-
-        <!-- Single panel view under the Favorites tab (Strequent) -->
-        <FrameLayout
-            android:id="@+id/favorites_view"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="@color/background_primary">
-
-            <fragment
-                android:id="@+id/favorites_fragment"
-                class="com.android.contacts.list.ContactTileListFragment"
-                android:layout_height="match_parent"
-                android:layout_width="match_parent"
-                android:layout_marginLeft="16dip"
-                android:layout_marginRight="16dip"
-                android:layout_marginStart="16dip"
-                android:layout_marginEnd="16dip" />
-
-        </FrameLayout>
-
-    </LinearLayout>
-
-    <com.android.contacts.widget.InterpolatingLayout
-        android:id="@+id/contacts_unavailable_view"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="@drawable/background_holo_light"
-        android:visibility="gone">
-
-        <FrameLayout
-            android:id="@+id/contacts_unavailable_container"
-            android:layout_height="match_parent"
-            android:layout_width="match_parent"
-            ex:layout_narrowParentWidth="800dip"
-            ex:layout_narrowMarginLeft="80dip"
-            ex:layout_narrowMarginRight="80dip"
-            ex:layout_wideParentWidth="1280dip"
-            ex:layout_wideMarginLeft="200dip"
-            ex:layout_wideMarginRight="200dip"
-            android:paddingBottom="20dip" />
-
-    </com.android.contacts.widget.InterpolatingLayout>
-</view>
diff --git a/res/layout-sw600dp/quickcontact_activity.xml b/res/layout-sw600dp/quickcontact_activity.xml
deleted file mode 100644
index 229974b..0000000
--- a/res/layout-sw600dp/quickcontact_activity.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<view
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:ex="http://schemas.android.com/apk/res-auto"
-    class="com.android.contacts.quickcontact.FloatingChildLayout"
-    android:id="@+id/floating_layout"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:focusable="true"
-    android:focusableInTouchMode="true"
-    android:descendantFocusability="afterDescendants">
-    <LinearLayout
-        android:id="@android:id/content"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:padding="32dip"
-        android:orientation="vertical" >
-        <FrameLayout
-            android:layout_width="360dip"
-            android:layout_height="@dimen/quick_contact_photo_container_height">
-            <include layout="@layout/quickcontact_photo_container" />
-        </FrameLayout>
-        <include layout="@layout/quickcontact_track" />
-        <View
-            android:id="@+id/line_after_track"
-            android:layout_width="match_parent"
-            android:layout_height="2dip"
-            android:background="@color/quickcontact_tab_indicator" />
-        <android.support.v4.view.ViewPager
-            android:id="@+id/item_list_pager"
-            android:background="@drawable/quickcontact_track_background"
-            android:layout_width="match_parent"
-            android:layout_height="160dip" />
-    </LinearLayout>
-</view>
diff --git a/res/layout-sw600dp/updates_header_contact.xml b/res/layout-sw600dp/updates_header_contact.xml
deleted file mode 100644
index e95f1dd..0000000
--- a/res/layout-sw600dp/updates_header_contact.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact updates list.
--->
-<LinearLayout
-    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="wrap_content"
-    android:orientation="vertical">
-
-    <!-- This blank view pushes the other content down because of the tab carousel -->
-    <view
-        class="com.android.contacts.common.widget.ProportionalLayout"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="8dip"
-        ex:ratio="0.6667"
-        ex:direction="widthToHeight">
-
-        <!-- Put a dummy view here because the ProportionalLayout requires one -->
-        <FrameLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"/>
-
-    </view>
-
-    <!-- "Recent updates" header text -->
-    <TextView
-        style="?android:attr/listSeparatorTextViewStyle"
-        android:layout_height="32dip"
-        android:paddingLeft="8dip"
-        android:paddingRight="8dip"
-        android:paddingStart="8dip"
-        android:paddingEnd="8dip"
-        android:background="@drawable/list_section_divider_holo_custom"
-        android:text="@string/recent"
-        android:textColor="@color/people_app_theme_color"
-        android:textAllCaps="true"
-        android:singleLine="true"
-        android:ellipsize="end" />
-
-</LinearLayout>
diff --git a/res/layout-sw720dp-land/contact_detail_container.xml b/res/layout-sw720dp-land/contact_detail_container.xml
deleted file mode 100644
index 8180e92..0000000
--- a/res/layout-sw720dp-land/contact_detail_container.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  Two-column layout for a contact with social updates. If the contact does not
-  have social updates, then the second fragment container will just be hidden.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:scrollbars="none"
-    android:orientation="horizontal"
-    android:baselineAligned="false">
-
-    <!--
-      Container for the "About" 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
-        android:id="@+id/about_fragment_container"
-        android:layout_width="0dip"
-        android:layout_height="match_parent"
-        android:layout_weight="3" />
-
-    <!-- Vertical divider -->
-    <View
-        android:layout_width="2dip"
-        android:layout_height="match_parent"
-        android:background="?android:attr/listDivider"
-        />
-
-    <!--
-      Container for the "Updates" 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
-        android:id="@+id/updates_fragment_container"
-        android:layout_width="0dip"
-        android:layout_weight="2"
-        android:layout_height="match_parent"
-        android:visibility="gone" />
-
-</LinearLayout>
diff --git a/res/layout-sw720dp-land/contact_detail_empty.xml b/res/layout-sw720dp-land/contact_detail_empty.xml
deleted file mode 100644
index 0ff9960..0000000
--- a/res/layout-sw720dp-land/contact_detail_empty.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Placeholder for empty details for a contact -->
-
-<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="wrap_content">
-    <TextView android:id="@+id/emptyText"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/no_contact_details"
-        android:textSize="20sp"
-        android:textColor="?android:attr/textColorSecondary"
-        ex:layout_wideParentWidth="800dip"
-        ex:layout_wideMarginLeft="80dip"
-        ex:layout_narrowParentWidth="500dip"
-        ex:layout_narrowMarginLeft="44dip"
-        android:paddingTop="10dip"
-        android:lineSpacingMultiplier="0.92"/>
-</com.android.contacts.widget.InterpolatingLayout>
diff --git a/res/layout-sw720dp-land/contact_detail_fragment.xml b/res/layout-sw720dp-land/contact_detail_fragment.xml
deleted file mode 100644
index 4eee458..0000000
--- a/res/layout-sw720dp-land/contact_detail_fragment.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/contact_detail"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingLeft="16dip"
-    android:paddingStart="16dip">
-
-    <!-- Placeholder for empty list -->
-    <include
-        android:id="@android:id/empty"
-        layout="@layout/contact_detail_empty"
-        android:visibility="gone" />
-
-    <!-- Real list -->
-    <LinearLayout
-        android:orientation="horizontal"
-        android:layout_weight="1"
-        android:layout_width="match_parent"
-        android:layout_height="0dip"
-        android:baselineAligned="false">
-
-        <include android:id="@+id/static_photo_container"
-            layout="@layout/photo_selector_view"
-            android:layout_width="@dimen/detail_contact_photo_size"
-            android:layout_height="@dimen/detail_contact_photo_size"
-            android:layout_marginTop="@dimen/detail_contact_photo_margin"
-            android:layout_marginRight="@dimen/detail_contact_photo_margin"
-            android:layout_marginEnd="@dimen/detail_contact_photo_margin" />
-
-        <ListView android:id="@android:id/list"
-            android:layout_width="0dip"
-            android:layout_height="match_parent"
-            android:paddingTop="16dip"
-            android:clipToPadding="false"
-            android:fadingEdge="none"
-            android:layout_weight="1"
-            android:divider="@null"
-            android:paddingRight="16dip"
-            android:paddingEnd="16dip"
-            android:scrollbarStyle="outsideOverlay"/>
-
-    </LinearLayout>
-
-    <!-- "QuickFix"- button (Copy to local contact, add to group) -->
-    <Button
-        android:id="@+id/contact_quick_fix"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:visibility="gone"
-        android:layout_gravity="center"
-        android:layout_marginTop="10dip"
-        android:layout_marginBottom="10dip" />
-</LinearLayout>
diff --git a/res/layout-sw720dp-land/contact_detail_list_item.xml b/res/layout-sw720dp-land/contact_detail_list_item.xml
deleted file mode 100644
index a5af1dd..0000000
--- a/res/layout-sw720dp-land/contact_detail_list_item.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
- * Copyright 2010, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
-
-<!-- Note: padding might be controlled programatically -->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingLeft="16dip"
-    android:paddingStart="16dip">
-
-    <com.android.contacts.detail.ActionsViewContainer
-        android:id="@+id/actions_view_container"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:minHeight="@dimen/detail_min_line_item_height"
-        android:gravity="center_vertical"
-        android:orientation="horizontal"
-        android:focusable="true"
-        android:background="?android:attr/selectableItemBackground"
-        android:nextFocusRight="@+id/secondary_action_view_container">
-
-        <!-- Note: padding might be controlled programatically -->
-        <LinearLayout
-            android:id="@+id/primary_action_view"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:layout_weight="1"
-            android:paddingLeft="8dip"
-            android:paddingStart="8dip"
-            android:orientation="vertical">
-
-            <TextView
-                android:id="@+id/data"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textAppearance="?android:attr/textAppearanceMedium" />
-        </LinearLayout>
-
-        <ImageView
-            android:id="@+id/presence_icon"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="1dip"
-            android:layout_marginRight="4dip"
-            android:layout_marginEnd="4dip"
-            android:layout_gravity="center_vertical"
-            android:scaleType="centerInside" />
-
-        <TextView
-            android:id="@+id/kind"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:visibility="gone" />
-
-        <View
-            android:id="@+id/primary_indicator"
-            android:layout_width="16dip"
-            android:layout_height="16dip"
-            android:visibility="gone"
-            android:layout_gravity="center_vertical"
-            android:background="@drawable/ic_list_default_mime_holo_dark"
-            android:layout_marginRight="8dip"
-            android:layout_marginEnd="8dip" />
-
-        <TextView
-            android:id="@+id/type"
-            style="@style/ContactDetailItemType"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:paddingRight="16dip"
-            android:paddingEnd="16dip" />
-
-        <View
-            android:id="@+id/vertical_divider"
-            android:layout_width="1px"
-            android:layout_height="match_parent"
-            android:layout_marginTop="@dimen/detail_vertical_divider_vertical_margin"
-            android:layout_marginBottom="@dimen/detail_vertical_divider_vertical_margin"
-            android:background="?android:attr/dividerVertical" />
-
-        <!-- Note: padding might be controlled programatically -->
-        <FrameLayout
-            android:id="@+id/secondary_action_view_container"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:paddingLeft="@dimen/detail_item_icon_margin"
-            android:paddingRight="@dimen/detail_item_icon_margin"
-            android:paddingStart="@dimen/detail_item_icon_margin"
-            android:paddingEnd="@dimen/detail_item_icon_margin"
-            android:duplicateParentState="false"
-            android:focusable="true"
-            android:background="?android:attr/selectableItemBackground"
-            android:nextFocusLeft="@id/actions_view_container">
-            <ImageView
-                android:id="@+id/secondary_action_button"
-                android:layout_width="32dip"
-                android:layout_height="match_parent"
-                android:layout_centerVertical="true"
-                android:gravity="center"
-                android:scaleType="center"
-                android:duplicateParentState="false" />
-        </FrameLayout>
-    </com.android.contacts.detail.ActionsViewContainer>
-</FrameLayout>
diff --git a/res/layout-sw720dp-land/detail_header_contact_with_updates.xml b/res/layout-sw720dp-land/detail_header_contact_with_updates.xml
deleted file mode 100644
index 268b51a..0000000
--- a/res/layout-sw720dp-land/detail_header_contact_with_updates.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact details list for when the contact has social updates. The
-  entry shows the contact's basic info and maintains vertical padding to ensure that the first
-  contact detail is visible (and below the tab carousel). The photo is not displayed here
-  because it will be shown in the tab carousel.
--->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingBottom="8dip"
-    android:orientation="horizontal">
-
-    <include layout="@layout/photo_selector_view"
-        android:layout_width="@dimen/detail_contact_photo_size"
-        android:layout_height="@dimen/detail_contact_photo_size" />
-
-    <LinearLayout
-        android:layout_width="0dip"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:orientation="vertical"
-        android:paddingStart="16dip"
-        android:paddingEnd="4dip">
-
-        <TextView
-            android:id="@+id/name"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:gravity="center_vertical"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:textSize="@dimen/detail_header_name_text_size" />
-
-        <TextView
-            android:id="@+id/company"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:gravity="center_vertical"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textColor="?android:attr/textColorSecondary" />
-
-    </LinearLayout>
-
-    <include
-        layout="@layout/favorites_star" />
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-sw720dp-land/detail_header_contact_without_updates.xml b/res/layout-sw720dp-land/detail_header_contact_without_updates.xml
deleted file mode 100644
index bc3f16c..0000000
--- a/res/layout-sw720dp-land/detail_header_contact_without_updates.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact details list for when the contact does not have social
-  updates, which means that the contact's basic info will scroll with the list of details. The
-  photo is not included because it will be displayed in a static place elsewhere.
--->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingStart="8dip"
-    android:paddingBottom="16dip"
-    android:orientation="vertical">
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingEnd="16dip">
-
-        <TextView
-            android:id="@+id/name"
-            android:layout_width="0dip"
-            android:layout_weight="1"
-            android:layout_height="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:textSize="@dimen/detail_header_name_text_size"
-            android:paddingStart="16dip" />
-
-        <include
-            layout="@layout/favorites_star" />
-
-    </LinearLayout>
-
-    <TextView
-        android:id="@+id/company"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:textColor="?android:attr/textColorSecondary" />
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-sw720dp-land/people_activity.xml b/res/layout-sw720dp-land/people_activity.xml
deleted file mode 100644
index c33f0fa..0000000
--- a/res/layout-sw720dp-land/people_activity.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<view
-    class="com.android.contacts.widget.TransitionAnimationView"
-    android:id="@+id/people_view"
-    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">
-
-    <LinearLayout
-        android:id="@+id/main_view"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="horizontal"
-        android:splitMotionEvents="true">
-
-        <FrameLayout
-            android:id="@+id/browse_view"
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_weight="1"
-            android:background="@drawable/list_background_holo"
-            android:visibility="gone">
-
-            <!-- All -->
-            <fragment
-                android:id="@+id/all_fragment"
-                class="com.android.contacts.list.DefaultContactBrowseListFragment"
-                android:layout_height="match_parent"
-                android:layout_width="match_parent" />
-
-            <!-- Groups -->
-            <fragment
-                android:id="@+id/groups_fragment"
-                class="com.android.contacts.group.GroupBrowseListFragment"
-                android:layout_height="match_parent"
-                android:layout_width="match_parent" />
-        </FrameLayout>
-
-        <view
-            class="com.android.contacts.widget.TransitionAnimationView"
-            android:id="@+id/contact_details_view"
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_weight="2"
-            android:visibility="gone">
-
-            <!-- This layout includes all possible views needed for a contact detail page -->
-            <include
-                android:id="@+id/contact_detail_container"
-                layout="@layout/contact_detail_container"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"/>
-
-            <!-- This invisible worker fragment loads the contact's details -->
-            <fragment
-                android:id="@+id/contact_detail_loader_fragment"
-                class="com.android.contacts.detail.ContactLoaderFragment"
-                android:layout_height="0dip"
-                android:layout_width="0dip"
-                android:visibility="gone"/>
-        </view>
-
-        <view
-            class="com.android.contacts.widget.TransitionAnimationView"
-            android:id="@+id/group_details_view"
-            android:layout_width="0dip"
-            android:layout_height="match_parent"
-            android:layout_weight="2"
-            android:visibility="gone">
-
-            <!-- This is the group detail page -->
-            <fragment
-                android:id="@+id/group_detail_fragment"
-                class="com.android.contacts.group.GroupDetailFragment"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:visibility="gone" />
-        </view>
-
-        <LinearLayout
-            android:id="@+id/favorites_view"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="@drawable/list_background_holo"
-            android:baselineAligned="false">
-
-            <!-- Starred -->
-            <FrameLayout
-                android:layout_width="0dip"
-                android:layout_height="match_parent"
-                android:layout_weight="7"
-                android:background="@drawable/panel_favorites_holo_light">
-
-                <fragment
-                    android:id="@+id/favorites_fragment"
-                    class="com.android.contacts.list.ContactTileListFragment"
-                    android:layout_height="match_parent"
-                    android:layout_width="match_parent"
-                    android:layout_marginLeft="32dip"
-                    android:layout_marginRight="32dip"
-                    android:layout_marginStart="32dip"
-                    android:layout_marginEnd="32dip"/>
-
-            </FrameLayout>
-
-            <!-- Most Frequent -->
-            <fragment
-                android:id="@+id/frequent_fragment"
-                class="com.android.contacts.list.ContactTileFrequentFragment"
-                android:layout_width="0dip"
-                android:layout_height="match_parent"
-                android:layout_weight="3"
-                android:layout_marginTop="32dip"
-                android:layout_marginRight="16dip"
-                android:layout_marginEnd="16dip"/>
-
-        </LinearLayout>
-
-    </LinearLayout>
-
-    <com.android.contacts.widget.InterpolatingLayout
-        android:id="@+id/contacts_unavailable_view"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="@drawable/background_holo_light"
-        android:visibility="gone">
-
-        <FrameLayout
-            android:id="@+id/contacts_unavailable_container"
-            android:layout_height="match_parent"
-            android:layout_width="match_parent"
-            ex:layout_narrowParentWidth="800dip"
-            ex:layout_narrowMarginLeft="80dip"
-            ex:layout_narrowMarginRight="80dip"
-            ex:layout_wideParentWidth="1280dip"
-            ex:layout_wideMarginLeft="200dip"
-            ex:layout_wideMarginRight="200dip"
-            android:paddingBottom="20dip" />
-
-    </com.android.contacts.widget.InterpolatingLayout>
-</view>
diff --git a/res/layout-sw720dp-land/quickcontact_activity.xml b/res/layout-sw720dp-land/quickcontact_activity.xml
deleted file mode 100644
index 230c4e0..0000000
--- a/res/layout-sw720dp-land/quickcontact_activity.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<view
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    class="com.android.contacts.quickcontact.FloatingChildLayout"
-    android:id="@+id/floating_layout"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:focusable="true"
-    android:focusableInTouchMode="true"
-    android:descendantFocusability="afterDescendants">
-    <LinearLayout
-        android:id="@android:id/content"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:padding="32dip"
-        android:orientation="horizontal">
-        <FrameLayout
-            android:layout_width="360dip"
-            android:layout_height="360dip">
-            <include layout="@layout/quickcontact_photo_container" />
-        </FrameLayout>
-        <LinearLayout
-            android:layout_width="360dip"
-            android:layout_height="match_parent"
-            android:orientation="vertical">
-            <include layout="@layout/quickcontact_track" />
-            <View
-                android:id="@+id/line_after_track"
-                android:layout_width="match_parent"
-                android:layout_height="2dip"
-                android:background="@color/quickcontact_tab_indicator" />
-            <android.support.v4.view.ViewPager
-                android:id="@+id/item_list_pager"
-                android:background="@drawable/quickcontact_track_background"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent" />
-        </LinearLayout>
-    </LinearLayout>
-</view>
diff --git a/res/layout-sw720dp-land/updates_header_contact.xml b/res/layout-sw720dp-land/updates_header_contact.xml
deleted file mode 100644
index 8173f81..0000000
--- a/res/layout-sw720dp-land/updates_header_contact.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact updates list.
--->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:focusable="false">
-
-    <TextView
-        style="?android:attr/listSeparatorTextViewStyle"
-        android:layout_height="32dip"
-        android:paddingLeft="8dip"
-        android:paddingRight="8dip"
-        android:paddingStart="8dip"
-        android:paddingEnd="8dip"
-        android:background="@drawable/list_section_divider_holo_custom"
-        android:text="@string/recent_updates"
-        android:textColor="@color/people_app_theme_color"
-        android:textAllCaps="true"
-        android:singleLine="true"
-        android:ellipsize="end" />
-
-</FrameLayout>
diff --git a/res/layout-sw720dp/people_activity.xml b/res/layout-sw720dp/people_activity.xml
deleted file mode 100644
index d8b4026..0000000
--- a/res/layout-sw720dp/people_activity.xml
+++ /dev/null
@@ -1,167 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<view
-    class="com.android.contacts.widget.TransitionAnimationView"
-    android:id="@+id/people_view"
-    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">
-
-    <LinearLayout
-        android:id="@+id/main_view"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="horizontal"
-        android:splitMotionEvents="true"
-        android:baselineAligned="false">
-
-        <!-- Left panel browse list for Groups or All tabs -->
-        <FrameLayout
-            android:id="@+id/browse_view"
-            android:layout_width="0dip"
-            android:layout_height="match_parent"
-            android:layout_weight="1"
-            android:background="@drawable/list_background_holo"
-            android:visibility="gone">
-
-            <!-- All -->
-            <fragment
-                android:id="@+id/all_fragment"
-                class="com.android.contacts.list.DefaultContactBrowseListFragment"
-                android:layout_height="match_parent"
-                android:layout_width="match_parent" />
-
-            <!-- Groups -->
-            <fragment
-                android:id="@+id/groups_fragment"
-                class="com.android.contacts.group.GroupBrowseListFragment"
-                android:layout_height="match_parent"
-                android:layout_width="match_parent" />
-        </FrameLayout>
-
-        <!-- Right panel detail view for All tab -->
-        <view
-            class="com.android.contacts.widget.TransitionAnimationView"
-            android:id="@+id/contact_details_view"
-            android:layout_width="0dip"
-            android:layout_height="match_parent"
-            android:layout_weight="2"
-            android:visibility="gone">
-
-            <!-- This layout includes all possible views needed for a contact detail page -->
-            <include
-                android:id="@+id/contact_detail_container"
-                layout="@layout/contact_detail_container"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_marginLeft="16dip"
-                android:layout_marginRight="16dip"
-                android:layout_marginStart="16dip"
-                android:layout_marginEnd="16dip"
-                android:layout_marginTop="16dip" />
-
-            <!-- This invisible worker fragment loads the contact's details -->
-            <fragment
-                android:id="@+id/contact_detail_loader_fragment"
-                class="com.android.contacts.detail.ContactLoaderFragment"
-                android:layout_height="0dip"
-                android:layout_width="0dip"
-                android:visibility="gone"/>
-        </view>
-
-        <!-- Right panel detail view for Groups tab -->
-        <view
-            class="com.android.contacts.widget.TransitionAnimationView"
-            android:id="@+id/group_details_view"
-            android:layout_width="0dip"
-            android:layout_height="match_parent"
-            android:layout_weight="2"
-            android:visibility="gone">
-
-            <!-- This is the group detail page -->
-            <fragment
-                android:id="@+id/group_detail_fragment"
-                class="com.android.contacts.group.GroupDetailFragment"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:visibility="gone" />
-        </view>
-
-        <!-- Two-panel view under the Favorites tab -->
-        <LinearLayout
-            android:id="@+id/favorites_view"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="@drawable/list_background_holo"
-            android:baselineAligned="false">
-
-            <!-- Starred -->
-            <FrameLayout
-                android:layout_width="0dip"
-                android:layout_height="match_parent"
-                android:layout_weight="10"
-                android:background="@drawable/panel_favorites_holo_light">
-
-                <fragment
-                    android:id="@+id/favorites_fragment"
-                    class="com.android.contacts.list.ContactTileListFragment"
-                    android:layout_height="match_parent"
-                    android:layout_width="match_parent"
-                    android:layout_marginLeft="16dip"
-                    android:layout_marginRight="16dip"
-                    android:layout_marginStart="16dip"
-                    android:layout_marginEnd="16dip" />
-
-            </FrameLayout>
-
-            <!-- Most Frequent -->
-            <fragment
-                android:id="@+id/frequent_fragment"
-                class="com.android.contacts.list.ContactTileFrequentFragment"
-                android:layout_width="0dip"
-                android:layout_height="match_parent"
-                android:layout_weight="8"
-                android:layout_marginTop="16dip"
-                android:layout_marginRight="16dip"
-                android:layout_marginEnd="16dip"/>
-
-        </LinearLayout>
-
-    </LinearLayout>
-
-    <com.android.contacts.widget.InterpolatingLayout
-        android:id="@+id/contacts_unavailable_view"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="@drawable/background_holo_light"
-        android:visibility="gone">
-
-        <FrameLayout
-            android:id="@+id/contacts_unavailable_container"
-            android:layout_height="match_parent"
-            android:layout_width="match_parent"
-            ex:layout_narrowParentWidth="800dip"
-            ex:layout_narrowMarginLeft="80dip"
-            ex:layout_narrowMarginRight="80dip"
-            ex:layout_wideParentWidth="1280dip"
-            ex:layout_wideMarginLeft="200dip"
-            ex:layout_wideMarginRight="200dip"
-            android:paddingBottom="20dip" />
-
-    </com.android.contacts.widget.InterpolatingLayout>
-</view>
diff --git a/res/layout/carousel_about_tab.xml b/res/layout/carousel_about_tab.xml
deleted file mode 100644
index 8026f37..0000000
--- a/res/layout/carousel_about_tab.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<view
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    class="com.android.contacts.detail.CarouselTab"
-    android:layout_width="0dip"
-    android:layout_height="match_parent"
-    android:layout_weight="1">
-
-    <RelativeLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" >
-
-        <ImageView android:id="@+id/photo"
-            android:scaleType="centerCrop"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_alignParentTop="true"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"/>
-
-        <View android:id="@+id/photo_overlay"
-            android:background="?android:attr/selectableItemBackground"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_alignParentTop="true"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"/>
-
-        <!-- Transparent view to overlay on the contact's photo
-        (to allow white text to appear over a white photo). -->
-        <View android:id="@+id/label_background"
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/detail_tab_carousel_tab_label_height"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_alignParentBottom="true"
-            android:background="#7F000000" />
-
-        <View
-            android:id="@+id/alpha_overlay"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_alignParentTop="true"
-            android:layout_marginBottom="@dimen/detail_tab_carousel_tab_label_height"/>
-
-        <TextView
-            android:id="@+id/label"
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/detail_tab_carousel_tab_label_height"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_alignParentBottom="true"
-            android:paddingLeft="@dimen/detail_tab_carousel_tab_label_indent"
-            android:paddingStart="@dimen/detail_tab_carousel_tab_label_indent"
-            android:singleLine="true"
-            android:gravity="left|center_vertical"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textColor="@color/detail_tab_carousel_tab_label_color"
-            style="@android:style/Widget.Holo.ActionBar.TabView" />
-
-    </RelativeLayout>
-
-</view>
diff --git a/res/layout/carousel_updates_tab.xml b/res/layout/carousel_updates_tab.xml
deleted file mode 100644
index 0bd5cbd..0000000
--- a/res/layout/carousel_updates_tab.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  TODO: Collapse carousel_about_tab with carousel_updates_tab into 1 XML that
-  handles all cases when updates fragment is more finalized.
--->
-<view
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    class="com.android.contacts.detail.CarouselTab"
-    android:layout_width="0dip"
-    android:layout_height="match_parent"
-    android:layout_weight="1"
-    android:background="@drawable/bg_people_updates_holo">
-
-    <RelativeLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" >
-
-        <ImageView android:id="@+id/status_photo"
-            android:scaleType="centerCrop"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_alignParentTop="true"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:visibility="gone" />
-
-        <!-- Transparent view to overlay on the update photo
-        (to allow white text to appear over a white photo). -->
-        <View android:id="@+id/label_background"
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/detail_tab_carousel_tab_label_height"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_alignParentBottom="true"
-            android:layout_above="@id/status_photo"
-            android:background="#7F000000" />
-
-        <TextView android:id="@+id/status"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:layout_alignParentTop="true"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_above="@id/label"
-            android:gravity="center_vertical"
-            android:paddingLeft="@dimen/detail_update_tab_side_padding"
-            android:paddingRight="@dimen/detail_update_tab_side_padding"
-            android:paddingStart="@dimen/detail_update_tab_side_padding"
-            android:paddingEnd="@dimen/detail_update_tab_side_padding"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:textColor="@color/detail_update_tab_text_color"
-            android:textStyle="bold"
-            android:maxLines="@integer/updates_tab_snippet_max_lines"
-            android:ellipsize="end" />
-
-        <View
-            android:id="@+id/alpha_overlay"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_alignParentTop="true"
-            android:layout_marginBottom="@dimen/detail_tab_carousel_tab_label_height"/>
-
-        <TextView
-            android:id="@+id/label"
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/detail_tab_carousel_tab_label_height"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_alignParentBottom="true"
-            android:layout_above="@id/status_photo"
-            android:paddingLeft="@dimen/detail_tab_carousel_tab_label_indent"
-            android:paddingStart="@dimen/detail_tab_carousel_tab_label_indent"
-            android:singleLine="true"
-            android:gravity="start|center_vertical"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textColor="@color/detail_tab_carousel_tab_label_color"
-            style="@android:style/Widget.Holo.ActionBar.TabView" />
-
-    </RelativeLayout>
-
-</view>
diff --git a/res/layout/contact_detail_about_fragment_container.xml b/res/layout/contact_detail_about_fragment_container.xml
deleted file mode 100644
index 6fc9fe2..0000000
--- a/res/layout/contact_detail_about_fragment_container.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  Container for the "About" 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/about_fragment_container"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"/>
\ No newline at end of file
diff --git a/res/layout/contact_detail_activity.xml b/res/layout/contact_detail_activity.xml
deleted file mode 100644
index 9765a71..0000000
--- a/res/layout/contact_detail_activity.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/contact_detail_view"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <!-- This fragment is an invisible worker fragment that loads the contact details. -->
-    <fragment
-        android:id="@+id/loader_fragment"
-        class="com.android.contacts.detail.ContactLoaderFragment"
-        android:layout_height="0dip"
-        android:layout_width="0dip"
-        android:visibility="gone"/>
-
-    <!-- This layout includes all possible views needed for a contact detail page -->
-    <include
-        android:id="@+id/contact_detail_container"
-        layout="@layout/contact_detail_container"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"/>
-
-</FrameLayout>
diff --git a/res/layout/contact_detail_container.xml b/res/layout/contact_detail_container.xml
deleted file mode 100644
index f6b3438..0000000
--- a/res/layout/contact_detail_container.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  Layout for the contact card page. If the contact has social updates, then
-  the ViewPager and ContactDetailTabCarousel are shown together. If there
-  aren't any social updates, then just the ContactDetailFragment will be
-  shown. We include all 3 views even though they are never shown
-  simultaneously because this layout is reused but set with different data
-  each time (i.e. on a tablet).
--->
-
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <android.support.v4.view.ViewPager
-        android:id="@+id/pager"
-        android:layout_alignParentTop="true"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-    <include
-        android:id="@+id/tab_carousel"
-        layout="@layout/contact_detail_tab_carousel"
-        android:layout_alignParentTop="true"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:visibility="gone"/>
-
-</RelativeLayout>
\ No newline at end of file
diff --git a/res/layout/contact_detail_empty.xml b/res/layout/contact_detail_empty.xml
deleted file mode 100644
index cdb8feb..0000000
--- a/res/layout/contact_detail_empty.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Placeholder for empty details for a contact -->
-
-<TextView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:text="@string/no_contact_details"
-    android:textSize="20sp"
-    android:textColor="?android:attr/textColorSecondary"
-    android:layout_marginLeft="15dip"
-    android:layout_marginStart="15dip"
-    android:paddingTop="10dip"
-    android:lineSpacingMultiplier="0.92"/>
\ No newline at end of file
diff --git a/res/layout/contact_detail_fragment.xml b/res/layout/contact_detail_fragment.xml
deleted file mode 100644
index 4d53310..0000000
--- a/res/layout/contact_detail_fragment.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/contact_detail_about_fragment"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <ListView android:id="@android:id/list"
-        android:layout_width="match_parent"
-        android:layout_height="0px"
-        android:layout_weight="1"
-        android:fadingEdge="none"
-        android:divider="@null"/>
-
-    <ScrollView android:id="@android:id/empty"
-        android:layout_width="match_parent"
-        android:layout_height="0px"
-        android:layout_weight="1"
-        android:fadingEdge="none"
-        android:visibility="gone">
-
-        <TextView android:id="@+id/emptyText"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/no_contact_details"
-            android:textSize="20sp"
-            android:textColor="?android:attr/textColorSecondary"
-            android:paddingLeft="10dip"
-            android:paddingRight="10dip"
-            android:paddingStart="10dip"
-            android:paddingEnd="10dip"
-            android:paddingTop="10dip"
-            android:lineSpacingMultiplier="0.92"/>
-
-    </ScrollView>
-
-    <!-- "QuickFix"- button (Copy to local contact, add to group) -->
-    <Button
-        android:id="@+id/contact_quick_fix"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:visibility="gone"
-        android:layout_gravity="center"
-        android:layout_marginTop="20dip"
-        android:layout_marginBottom="20dip" />
-</LinearLayout>
-
diff --git a/res/layout/contact_detail_fragment_carousel.xml b/res/layout/contact_detail_fragment_carousel.xml
deleted file mode 100644
index 0695511..0000000
--- a/res/layout/contact_detail_fragment_carousel.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:scrollbars="none"
-    android:orientation="horizontal"
-    android:baselineAligned="false">
-
-    <!--
-      Container for the "About" 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.
-    -->
-    <view
-        class="com.android.contacts.widget.FrameLayoutWithOverlay"
-        android:id="@+id/about_fragment_container"
-        android:layout_width="0dip"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:focusable="true"
-        android:focusableInTouchMode="true" />
-
-    <!--
-      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.
-    -->
-    <view
-        class="com.android.contacts.widget.FrameLayoutWithOverlay"
-        android:id="@+id/updates_fragment_container"
-        android:layout_width="0dip"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:focusable="true"
-        android:focusableInTouchMode="true"
-        android:visibility="gone" />
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/contact_detail_list_item.xml b/res/layout/contact_detail_list_item.xml
deleted file mode 100644
index fb24caa..0000000
--- a/res/layout/contact_detail_list_item.xml
+++ /dev/null
@@ -1,112 +0,0 @@
-<?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.
- */
--->
-
-<!-- Note: padding might be controlled programatically -->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingStart="16dip">
-
-    <com.android.contacts.detail.ActionsViewContainer
-        android:id="@+id/actions_view_container"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        android:focusable="true"
-        android:background="?android:attr/selectableItemBackground"
-        android:nextFocusRight="@+id/secondary_action_view_container"
-        android:minHeight="@dimen/detail_min_line_item_height">
-
-        <!-- Note: padding might be controlled programatically -->
-        <LinearLayout
-            android:id="@+id/primary_action_view"
-            android:layout_width="0dip"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:orientation="vertical"
-            android:paddingStart="8dip" >
-
-            <TextView
-                android:id="@+id/data"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textAppearance="?android:attr/textAppearanceMedium" />
-
-            <LinearLayout
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal">
-
-                <ImageView
-                    android:id="@+id/presence_icon"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="1dip"
-                    android:layout_marginRight="4dip"
-                    android:layout_marginEnd="4dip"
-                    android:layout_gravity="center_vertical"
-                    android:gravity="center"
-                    android:scaleType="centerInside" />
-
-                <TextView
-                    android:id="@+id/type"
-                    style="@style/ContactDetailItemType"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-
-                <View
-                    android:id="@+id/primary_indicator"
-                    android:layout_width="16dip"
-                    android:layout_height="16dip"
-                    android:visibility="gone"
-                    android:layout_gravity="center_vertical"
-                    android:background="@drawable/ic_list_default_mime_holo_dark" />
-
-            </LinearLayout>
-
-        </LinearLayout>
-
-        <View
-            android:id="@+id/vertical_divider"
-            android:layout_width="1dip"
-            android:layout_height="match_parent"
-            android:layout_marginTop="@dimen/detail_vertical_divider_vertical_margin"
-            android:layout_marginBottom="@dimen/detail_vertical_divider_vertical_margin"
-            android:background="?android:attr/dividerVertical" />
-
-        <!-- Note: padding might be controlled programatically -->
-        <FrameLayout
-            android:id="@+id/secondary_action_view_container"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:paddingStart="@dimen/detail_item_icon_margin"
-            android:paddingEnd="@dimen/detail_item_icon_margin"
-            android:focusable="true"
-            android:background="?android:attr/selectableItemBackground"
-            android:nextFocusLeft="@id/actions_view_container">
-            <ImageView
-                android:id="@+id/secondary_action_button"
-                android:layout_width="32dip"
-                android:layout_height="32dip"
-                android:layout_gravity="center_vertical"
-                android:duplicateParentState="false" />
-        </FrameLayout>
-    </com.android.contacts.detail.ActionsViewContainer>
-</FrameLayout>
diff --git a/res/layout/contact_detail_loader_fragment.xml b/res/layout/contact_detail_loader_fragment.xml
deleted file mode 100644
index 62edb3d..0000000
--- a/res/layout/contact_detail_loader_fragment.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-    Invisible view.
-    Note we show/hide the fragment at runtime with FragmentTransaction.show()/hide() in order to
-    change the visibility of the options menu.  This means the visibility of the view will be
-    changed at runtime, so we use width/height to make it invisible, rather than using
-    visibility.
--->
-<View xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="0dip"
-    android:layout_height="0dip"/>
\ No newline at end of file
diff --git a/res/layout/contact_detail_tab_carousel.xml b/res/layout/contact_detail_tab_carousel.xml
deleted file mode 100644
index 711a6c3..0000000
--- a/res/layout/contact_detail_tab_carousel.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<view
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    class="com.android.contacts.detail.ContactDetailTabCarousel"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:scrollbars="none"
-    android:fadingEdge="none">
-
-    <LinearLayout
-        android:id="@+id/tab_and_shadow_container"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical">
-
-        <LinearLayout
-            android:id="@+id/tab_container"
-            android:layout_width="match_parent"
-            android:layout_height="0dip"
-            android:layout_weight="1"
-            android:orientation="horizontal"
-            android:baselineAligned="false">
-
-            <!-- "About" tab -->
-            <include
-                android:id="@+id/tab_about"
-                layout="@layout/carousel_about_tab" />
-
-            <!-- Vertical divider -->
-            <View
-                android:id="@+id/tab_divider"
-                android:layout_width="1dip"
-                android:layout_height="match_parent"
-                android:background="@android:color/white"/>
-
-            <!-- "Updates" tab -->
-            <include
-                android:id="@+id/tab_update"
-                layout="@layout/carousel_updates_tab" />
-
-        </LinearLayout>
-
-        <!--
-          Shadow below the carousel. The ContactDetailTabCarousel increases its height to
-          account for this shadow, and the class assumes the height of this shadow to be
-          @dimen/detail_contact_photo_shadow_height.
-        -->
-        <View
-            android:id="@+id/shadow"
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/detail_contact_photo_shadow_height"
-            android:background="?android:attr/windowContentOverlay"/>
-
-    </LinearLayout>
-
-</view>
diff --git a/res/layout/contact_picker.xml b/res/layout/contact_picker.xml
index 2752b0c..2efe471 100644
--- a/res/layout/contact_picker.xml
+++ b/res/layout/contact_picker.xml
@@ -14,26 +14,9 @@
      limitations under the License.
 -->
 
-<view
+<FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    class="com.android.contacts.widget.FullHeightLinearLayout"
     style="@style/ContactPickerLayout"
-    android:orientation="vertical"
-    android:layout_height="match_parent">
-    <view
-        class="android.widget.SearchView"
-        android:id="@+id/search_view"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginLeft="0dip"
-        android:layout_marginRight="32dip"
-        android:layout_marginStart="0dip"
-        android:layout_marginEnd="32dip"
-        android:iconifiedByDefault="false" />
-    <!-- will contain an appropriate contacts list -->
-    <FrameLayout
-        android:id="@+id/list_container"
-        android:layout_width="match_parent"
-        android:layout_height="0dip"
-        android:layout_weight="1" />
-</view>
+    android:id="@+id/list_container"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent" />
diff --git a/res/layout/contact_tile_list.xml b/res/layout/contact_tile_list.xml
index 35c04c1..1b5ec9d 100644
--- a/res/layout/contact_tile_list.xml
+++ b/res/layout/contact_tile_list.xml
@@ -18,7 +18,8 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:paddingBottom="?attr/favorites_padding_bottom">
+    android:paddingBottom="?attr/favorites_padding_bottom"
+    android:background="@color/background_primary">
 
     <ListView
         android:id="@+id/contact_tile_list"
diff --git a/res/layout/contacts_unavailable_fragment.xml b/res/layout/contacts_unavailable_fragment.xml
index d0edc26..239693c 100644
--- a/res/layout/contacts_unavailable_fragment.xml
+++ b/res/layout/contacts_unavailable_fragment.xml
@@ -17,79 +17,7 @@
 <ScrollView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:fillViewport="true">
-    <LinearLayout
-        android:orientation="vertical"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center_horizontal"
-        android:background="@drawable/panel_message">
-        <TextView
-            android:id="@+id/message"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="48dip"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:textColor="?android:attr/textColorSecondary" />
-
-        <TextView
-            android:id="@+id/secondary_message"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textColor="?android:attr/textColorSecondary"
-            android:layout_gravity="center_horizontal"
-            android:layout_marginBottom="@dimen/no_accounts_message_margin" />
-
-        <LinearLayout
-            android:orientation="vertical"
-            android:layout_marginLeft="48dip"
-            android:layout_marginRight="48dip"
-            android:layout_marginStart="48dip"
-            android:layout_marginEnd="48dip"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent">
-            <Button
-                android:id="@+id/create_contact_button"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="15dip"
-                android:text="@string/contacts_unavailable_create_contact" />
-
-            <Button
-                android:id="@+id/add_account_button"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="15dip"
-                android:text="@string/contacts_unavailable_add_account" />
-
-            <Button
-                android:id="@+id/import_contacts_button"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="15dip"
-                android:text="@string/contacts_unavailable_import_contacts" />
-
-            <Button
-                android:id="@+id/import_failure_uninstall_button"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="15dip"
-                android:text="@string/upgrade_out_of_memory_uninstall" />
-
-            <Button
-                android:id="@+id/import_failure_retry_button"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="15dip"
-                android:text="@string/upgrade_out_of_memory_retry" />
-
-            <ProgressBar
-                android:id="@+id/progress"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center_horizontal"
-                android:layout_marginBottom="15dip" />
-        </LinearLayout>
-    </LinearLayout>
-</ScrollView>
\ No newline at end of file
+    android:fillViewport="true"
+    android:background="@color/background_primary">
+    <include layout="@layout/contacts_unavailable_fragment_content"/>
+</ScrollView>
diff --git a/res/layout/contacts_unavailable_fragment_content.xml b/res/layout/contacts_unavailable_fragment_content.xml
new file mode 100644
index 0000000..c36d038
--- /dev/null
+++ b/res/layout/contacts_unavailable_fragment_content.xml
@@ -0,0 +1,90 @@
+<?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">
+    <TextView
+        android:id="@+id/message"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="48dip"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:textColor="?android:attr/textColorSecondary" />
+
+    <TextView
+        android:id="@+id/secondary_message"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceSmall"
+        android:textColor="?android:attr/textColorSecondary"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginBottom="@dimen/no_accounts_message_margin" />
+
+    <LinearLayout
+        android:orientation="vertical"
+        android:layout_marginLeft="48dip"
+        android:layout_marginRight="48dip"
+        android:layout_marginStart="48dip"
+        android:layout_marginEnd="48dip"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent">
+        <Button
+            android:id="@+id/create_contact_button"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="15dip"
+            android:text="@string/contacts_unavailable_create_contact" />
+
+        <Button
+            android:id="@+id/add_account_button"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="15dip"
+            android:text="@string/contacts_unavailable_add_account" />
+
+        <Button
+            android:id="@+id/import_contacts_button"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="15dip"
+            android:text="@string/contacts_unavailable_import_contacts" />
+
+        <Button
+            android:id="@+id/import_failure_uninstall_button"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="15dip"
+            android:text="@string/upgrade_out_of_memory_uninstall" />
+
+        <Button
+            android:id="@+id/import_failure_retry_button"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="15dip"
+            android:text="@string/upgrade_out_of_memory_retry" />
+
+        <ProgressBar
+            android:id="@+id/progress"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:layout_marginBottom="15dip" />
+    </LinearLayout>
+</LinearLayout>
diff --git a/res/layout/detail_header_contact_with_updates.xml b/res/layout/detail_header_contact_with_updates.xml
deleted file mode 100644
index dc4cf8b..0000000
--- a/res/layout/detail_header_contact_with_updates.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact details list for when the contact has social updates. The
-  entry maintains vertical padding to ensure that the first contact detail is visible (and below
-  the tab carousel). No information has to be displayed in this header.
-  The FrameLayout is used to apply additional padding which is needed for the shadow
--->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:ex="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-    <view
-        class="com.android.contacts.common.widget.ProportionalLayout"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="@dimen/detail_contact_photo_shadow_height"
-        ex:ratio="0.5"
-        ex:direction="widthToHeight">
-        <FrameLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"/>
-    </view>
-</FrameLayout>
diff --git a/res/layout/detail_header_contact_without_updates.xml b/res/layout/detail_header_contact_without_updates.xml
deleted file mode 100644
index 27f6288..0000000
--- a/res/layout/detail_header_contact_without_updates.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact details list for when the contact does not have social
-  updates, which means that the contact's photo will scroll with the list of details.
--->
-<LinearLayout
-    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:orientation="vertical">
-
-    <!-- Contact photo -->
-    <view
-        class="com.android.contacts.common.widget.ProportionalLayout"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        ex:ratio="0.5"
-        ex:direction="widthToHeight">
-
-        <include layout="@layout/photo_selector_view" />
-
-    </view>
-
-    <!-- Shadow -->
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/detail_contact_photo_shadow_height"
-        android:background="?android:attr/windowContentOverlay"/>
-
-</LinearLayout>
diff --git a/res/layout/edit_date_picker.xml b/res/layout/edit_date_picker.xml
index b84a8d5..e2c4278 100644
--- a/res/layout/edit_date_picker.xml
+++ b/res/layout/edit_date_picker.xml
@@ -20,7 +20,7 @@
 <Button
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/date_view"
-    style="?android:attr/spinnerStyle"
+    style="@style/SpinnerButtonStyle"
     android:layout_width="0dip"
     android:layout_height="@dimen/editor_min_line_item_height"
     android:layout_weight="1"
@@ -30,5 +30,5 @@
     android:layout_marginStart="@dimen/editor_field_left_padding"
     android:layout_marginEnd="@dimen/editor_field_right_padding"
     android:textAppearance="?android:attr/textAppearanceMedium"
-    android:paddingLeft="12dip"
-    android:paddingStart="12dip" />
+    android:paddingStart="12dip"
+    android:paddingEnd="@dimen/editor_spinner_end_padding_workaround" />
diff --git a/res/layout/edit_kind_title.xml b/res/layout/edit_kind_title.xml
index 1392ac4..b7de66f 100644
--- a/res/layout/edit_kind_title.xml
+++ b/res/layout/edit_kind_title.xml
@@ -28,7 +28,7 @@
     android:focusable="false">
     <TextView
         android:id="@+id/kind_title"
-        style="@style/ContactListSeparatorTextViewStyle"
+        style="@style/EditKindSeparatorTextViewStyle"
         android:paddingLeft="8dip"
         android:paddingRight="8dip"
         android:paddingStart="8dip"
diff --git a/res/layout/editor_custom_action_bar.xml b/res/layout/editor_custom_action_bar.xml
index e8d9287..7764674 100644
--- a/res/layout/editor_custom_action_bar.xml
+++ b/res/layout/editor_custom_action_bar.xml
@@ -14,52 +14,32 @@
      limitations under the License.
 -->
 
-<FrameLayout
+<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:orientation="horizontal">
 
-    <LinearLayout
+    <ImageView
         android:id="@+id/save_menu_item"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:divider="?android:attr/dividerVertical"
-        android:showDividers="end"
-        android:dividerPadding="12dip"
-        android:orientation="horizontal"
         android:focusable="true"
-        android:clickable="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" />
 
-        <LinearLayout
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:orientation="horizontal"
-            android:duplicateParentState="true"
-            style="?android:attr/actionButtonStyle">
+    <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" />
 
-            <ImageView
-                android:id="@+id/icon"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center_vertical"
-                android:layout_marginRight="8dip"
-                android:layout_marginEnd="8dip"
-                android:src="@drawable/ic_menu_done_holo_light"
-                android:description="@string/menu_done" />
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center_vertical"
-                android:layout_marginRight="20dip"
-                android:layout_marginEnd="20dip"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:textColor="@color/people_app_theme_color"
-                android:text="@string/menu_done"
-                style="@android:style/Widget.Holo.ActionBar.TabText" />
-
-        </LinearLayout>
-
-    </LinearLayout>
-
-</FrameLayout>
\ No newline at end of file
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/expanding_entry_card_item.xml b/res/layout/expanding_entry_card_item.xml
new file mode 100644
index 0000000..138a3a5
--- /dev/null
+++ b/res/layout/expanding_entry_card_item.xml
@@ -0,0 +1,97 @@
+<?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:layout_toEndOf="@+id/icon"
+        android:layout_toStartOf="@+id/icon_alternate"
+        android:textColor="@color/quickcontact_entry_header_text_color"
+        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/icon_alternate"
+        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/icon_alternate"
+        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/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:layout_marginEnd="@dimen/expanding_entry_card_item_alternate_icon_margin_end"
+        android:layout_marginTop="@dimen/expanding_entry_card_item_icon_margin_top"
+        android:layout_marginBottom="@dimen/expanding_entry_card_item_alternate_icon_margin_bottom" />
+
+</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..6b89759
--- /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/expanding_entry_card_item_separator_height"
+        android:background="@color/expanding_entry_card_item_separator_color"
+        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..1541d42
--- /dev/null
+++ b/res/layout/floating_action_button.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<!-- 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: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_person_add_24dp"/>
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/group_account_header_horizontal.xml b/res/layout/group_account_header_horizontal.xml
index 918fd9f..cbfb555 100644
--- a/res/layout/group_account_header_horizontal.xml
+++ b/res/layout/group_account_header_horizontal.xml
@@ -33,7 +33,7 @@
         android:layout_gravity="center_vertical"
         android:paddingLeft="?attr/list_item_header_text_indent"
         android:paddingStart="?attr/list_item_header_text_indent"
-        android:textAppearance="@style/SectionHeaderStyle"
+        android:textAppearance="@style/DirectoryHeaderStyle"
         android:singleLine="true"
         android:textAlignment="viewStart" />
 
@@ -44,7 +44,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="center_vertical"
-        android:textAppearance="@style/SectionHeaderStyle"
+        android:textAppearance="@style/DirectoryHeaderStyle"
         android:textAllCaps="false"
         android:textSize="12sp"
         android:singleLine="true"
diff --git a/res/layout/group_account_header_vertical.xml b/res/layout/group_account_header_vertical.xml
index dc03b22..c5b9d76 100644
--- a/res/layout/group_account_header_vertical.xml
+++ b/res/layout/group_account_header_vertical.xml
@@ -33,7 +33,7 @@
         android:layout_height="wrap_content"
         android:paddingLeft="?attr/list_item_header_text_indent"
         android:paddingStart="?attr/list_item_header_text_indent"
-        android:textAppearance="@style/SectionHeaderStyle"
+        android:textAppearance="@style/DirectoryHeaderStyle"
         android:singleLine="true"/>
 
     <!-- TODO: Should use correct color with a correct name (content should be same).
@@ -44,7 +44,7 @@
         android:layout_height="wrap_content"
         android:paddingLeft="?attr/list_item_header_text_indent"
         android:paddingStart="?attr/list_item_header_text_indent"
-        android:textAppearance="@style/SectionHeaderStyle"
+        android:textAppearance="@style/DirectoryHeaderStyle"
         android:textAllCaps="false"
         android:textSize="12sp"
         android:singleLine="true"
diff --git a/res/layout/item_group_membership.xml b/res/layout/item_group_membership.xml
index 84d1afe..fa447bb 100644
--- a/res/layout/item_group_membership.xml
+++ b/res/layout/item_group_membership.xml
@@ -25,7 +25,7 @@
         layout="@layout/edit_kind_title" />
 
     <Button
-        style="?android:attr/spinnerStyle"
+        style="@style/SpinnerButtonStyle"
         android:id="@+id/group_list"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -37,7 +37,7 @@
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:gravity="start|center_vertical"
         android:focusable="true"
-        android:paddingLeft="12dip"
-        android:paddingStart="12dip" />
+        android:paddingStart="12dip"
+        android:paddingEnd="@dimen/editor_spinner_end_padding_workaround"/>
 
 </com.android.contacts.editor.GroupMembershipView>
diff --git a/res/layout/join_contact_picker.xml b/res/layout/join_contact_picker.xml
deleted file mode 100644
index ee30525..0000000
--- a/res/layout/join_contact_picker.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<view xmlns:android="http://schemas.android.com/apk/res/android"
-    class="com.android.contacts.widget.FullHeightLinearLayout"
-    style="@style/ContactPickerLayout"
-    android:orientation="vertical">
-    <FrameLayout
-        android:layout_width="match_parent"
-        android:layout_height="0dip"
-        android:layout_weight="1"
-        android:id="@+id/list_container" />
-</view>
diff --git a/res/layout/people_activity.xml b/res/layout/people_activity.xml
index 589e4a9..ce995cb 100644
--- a/res/layout/people_activity.xml
+++ b/res/layout/people_activity.xml
@@ -14,11 +14,15 @@
      limitations under the License.
 -->
 
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<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">
 
+    <include
+        layout="@layout/people_activity_toolbar"
+        android:id="@+id/toolbar_parent" />
+
     <!--
         ViewPager for swiping between tabs.  We put StrequentContactListFragment,
         DefaultContactBrowseListFragment and GroupBrowseListFragment at runtime.
@@ -30,16 +34,20 @@
         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>
-</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..525ac3c
--- /dev/null
+++ b/res/layout/people_activity_tabs_lands.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<com.android.contacts.common.list.ViewPagerTabs
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/lists_pager_header"
+    android:layout_width="@dimen/people_activity_landscape_tabs_width"
+    android:layout_height="match_parent"
+    android:textAllCaps="true"
+    android:orientation="horizontal"
+    android:layout_gravity="top"
+    android:layout_weight="0"
+    android:textSize="@dimen/people_activity_landscape_tabs_text_size"
+    style="@style/ContactsActionBarTabTextStyle" />
diff --git a/res/layout/people_activity_toolbar.xml b/res/layout/people_activity_toolbar.xml
new file mode 100644
index 0000000..e69728b
--- /dev/null
+++ b/res/layout/people_activity_toolbar.xml
@@ -0,0 +1,42 @@
+<?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" >
+
+    <Toolbar
+        android:layout_width="match_parent"
+        android:layout_height="?android:attr/actionBarSize"
+        android:background="@color/actionbar_background_color"
+        android:id="@+id/toolbar"
+        style="@style/ContactsToolbarStyle" />
+
+    <com.android.contacts.common.list.ViewPagerTabs
+        android:id="@+id/lists_pager_header"
+        android:layout_width="match_parent"
+        android:layout_height="?android:attr/actionBarSize"
+        android:textAllCaps="true"
+        android:orientation="horizontal"
+        android:layout_gravity="top"
+        android:layout_weight="0"
+        android:layout_below="@id/toolbar"
+        style="@style/ContactsActionBarTabTextStyle" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/photo_selector_view.xml b/res/layout/photo_selector_view.xml
deleted file mode 100644
index 1a21c30..0000000
--- a/res/layout/photo_selector_view.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  View for displaying photos that show a photo selector when clicked.
--->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <ImageView
-        android:id="@+id/photo"
-        android:scaleType="centerCrop"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-    <View
-        android:id="@+id/photo_touch_intercept_overlay"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="?android:attr/selectableItemBackground"
-        android:visibility="gone"
-        android:contentDescription="@string/contact_detail_picture_description"/>
-
-</FrameLayout>
diff --git a/res/layout/quickcontact_activity.xml b/res/layout/quickcontact_activity.xml
index 36bdd50..6d94fcc 100644
--- a/res/layout/quickcontact_activity.xml
+++ b/res/layout/quickcontact_activity.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
+<!--
+     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.
@@ -13,44 +14,41 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<view
+<com.android.contacts.widget.MultiShrinkScroller
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:ex="http://schemas.android.com/apk/res-auto"
-    class="com.android.contacts.quickcontact.FloatingChildLayout"
-    android:id="@+id/floating_layout"
     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">
+    android:descendantFocusability="afterDescendants" >
+
     <LinearLayout
-        android:id="@android:id/content"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingLeft="15dip"
-        android:paddingRight="15dip"
-        android:paddingStart="15dip"
-        android:paddingEnd="15dip"
-        android:paddingTop="8dip"
+        android:layout_height="match_parent"
         android:orientation="vertical">
-        <view
-            class="com.android.contacts.common.widget.ProportionalLayout"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            ex:ratio="0.5"
-            ex:direction="widthToHeight">
-            <include layout="@layout/quickcontact_photo_container" />
-        </view>
-        <include layout="@layout/quickcontact_track" />
+
         <View
-            android:id="@+id/line_after_track"
             android:layout_width="match_parent"
-            android:layout_height="2dip"
-            android:background="@color/quickcontact_tab_indicator" />
-        <android.support.v4.view.ViewPager
-            android:id="@+id/item_list_pager"
+            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="156dip"
-            android:background="@color/quickcontact_activity_background"/>
+            android:layout_height="match_parent"
+            android:id="@+id/toolbar_parent">
+            <include layout="@layout/quickcontact_header" />
+        </FrameLayout>
+
+        <include layout="@layout/quickcontact_content" />
+
     </LinearLayout>
-</view>
+
+    <!-- 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" />
+
+</com.android.contacts.widget.MultiShrinkScroller>
\ 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..5ead702
--- /dev/null
+++ b/res/layout/quickcontact_content.xml
@@ -0,0 +1,59 @@
+<?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 -->
+    <view class="com.android.contacts.common.widget.ActivityTouchLinearLayout"
+        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/about_card"
+            android:visibility="gone"
+            cardview:cardCornerRadius="@dimen/expanding_entry_card_card_corner_radius" />
+
+    </view>
+
+</com.android.contacts.widget.TouchlessScrollView>
\ 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..1f0c724
--- /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/expanding_entry_card_item_separator_height"
+        android:background="@color/expanding_entry_card_item_separator_color" />
+
+    <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..bb89dda
--- /dev/null
+++ b/res/layout/quickcontact_header.xml
@@ -0,0 +1,56 @@
+<?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"
+        android:contentDescription="@string/description_contact_photo" />
+
+    <!-- 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:visibility="gone"
+        android:layout_gravity="bottom" />
+    <View
+        android:id="@+id/action_bar_gradient"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:visibility="gone"
+        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="match_parent"
+        android:layout_height="?android:attr/actionBarSize"
+        android:background="#00000000"
+        android:id="@+id/toolbar"/>
+
+</merge>
diff --git a/res/layout/quickcontact_list_fragment.xml b/res/layout/quickcontact_list_fragment.xml
deleted file mode 100755
index 712f116..0000000
--- a/res/layout/quickcontact_list_fragment.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<RelativeLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-    <ListView
-        android:id="@+id/list"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:divider="@drawable/quickcontact_list_item_divider"
-        android:dividerHeight="1dip"
-        android:background="@color/quickcontact_list_background"
-        android:cacheColorHint="@null"
-        android:layout_alignParentTop="true"
-    />
-    <View
-        android:layout_alignBottom="@+id/list"
-        style="@style/QuickContactListBottomStyle"/>
-</RelativeLayout>
diff --git a/res/layout/quickcontact_list_item.xml b/res/layout/quickcontact_list_item.xml
deleted file mode 100755
index 615895f..0000000
--- a/res/layout/quickcontact_list_item.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/actions_view_container"
-    android:nextFocusRight="@+id/secondary_action_button"
-    style="@style/QuickContactListItemStyle">
-    <LinearLayout style="@style/QuickContactListItemTextWrapperStyle">
-        <TextView
-            android:id="@android:id/text1"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:textColor="@color/primary_text_color"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:singleLine="true"
-            android:ellipsize="end" />
-        <LinearLayout
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal">
-            <ImageView
-                android:id="@+id/presence_icon"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="1dip"
-                android:layout_marginRight="4dip"
-                android:layout_marginEnd="4dip"
-                android:layout_gravity="center_vertical"
-                android:gravity="center"
-                android:scaleType="centerInside" />
-            <TextView
-                android:id="@android:id/text2"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textColor="@color/secondary_text_color"
-                android:textAllCaps="true"
-                android:textAppearance="?android:attr/textAppearanceSmall" />
-        </LinearLayout>
-    </LinearLayout>
-    <include layout="@layout/quickcontact_list_item_base"/>
-</LinearLayout>
diff --git a/res/layout/quickcontact_list_item_address.xml b/res/layout/quickcontact_list_item_address.xml
deleted file mode 100755
index c55c339..0000000
--- a/res/layout/quickcontact_list_item_address.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/actions_view_container"
-    android:nextFocusRight="@+id/secondary_action_button"
-    style="@style/QuickContactListItemStyle">
-    <LinearLayout style="@style/QuickContactListItemTextWrapperStyle"
-        android:layout_marginTop="12dip"
-        android:layout_marginBottom="12dip">
-        <TextView
-            android:id="@android:id/text1"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:textColor="@color/primary_text_color"
-            android:textAppearance="?android:attr/textAppearanceMedium" />
-        <LinearLayout
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal">
-            <ImageView
-                android:id="@+id/presence_icon"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="1dip"
-                android:layout_marginRight="4dip"
-                android:layout_marginEnd="4dip"
-                android:layout_gravity="center_vertical"
-                android:gravity="center"
-                android:scaleType="centerInside" />
-            <TextView
-                android:id="@android:id/text2"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textColor="@color/secondary_text_color"
-                android:textAllCaps="true"
-                android:textAppearance="?android:attr/textAppearanceSmall" />
-        </LinearLayout>
-    </LinearLayout>
-    <include layout="@layout/quickcontact_list_item_base"/>
-</LinearLayout>
diff --git a/res/layout/quickcontact_list_item_base.xml b/res/layout/quickcontact_list_item_base.xml
deleted file mode 100644
index 80a3422..0000000
--- a/res/layout/quickcontact_list_item_base.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<merge xmlns:android="http://schemas.android.com/apk/res/android">
-    <View
-        android:id="@+id/vertical_divider"
-        android:layout_width="1dip"
-        android:layout_height="match_parent"
-        android:layout_gravity="center_vertical"
-        android:layout_marginTop="@dimen/detail_vertical_divider_vertical_margin"
-        android:layout_marginBottom="@dimen/detail_vertical_divider_vertical_margin"
-        android:background="?android:attr/dividerVertical" />
-    <ImageView
-        android:id="@+id/secondary_action_button"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:paddingLeft="8dip"
-        android:paddingRight="14dip"
-        android:paddingStart="8dip"
-        android:paddingEnd="14dip"
-        android:background="?android:attr/selectableItemBackground"
-        android:duplicateParentState="false"
-        android:nextFocusLeft="@id/actions_view_container"/>
-    <View
-        android:layout_width="1dip"
-        android:layout_height="match_parent"
-        android:layout_gravity="center_vertical"
-        android:background="?android:attr/dividerVertical" />
-</merge>
diff --git a/res/layout/quickcontact_photo_container.xml b/res/layout/quickcontact_photo_container.xml
deleted file mode 100644
index 723665f..0000000
--- a/res/layout/quickcontact_photo_container.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<merge
-    xmlns:android="http://schemas.android.com/apk/res/android">
-    <RelativeLayout
-        android:id="@+id/photo_container"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:gravity="center_vertical">
-        <ImageView
-            android:id="@+id/photo"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:scaleType="centerCrop"
-            android:clickable="true"
-            android:contentDescription="@string/description_contact_photo" />
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="1dip"
-            android:layout_alignParentTop="true"
-            android:background="#4CFFFFFF" />
-        <View
-            android:id="@+id/photo_text_bar"
-            android:layout_width="0dip"
-            android:layout_height="42dip"
-            android:layout_alignBottom="@id/photo"
-            android:layout_alignLeft="@id/photo"
-            android:layout_alignRight="@id/photo"
-            android:layout_alignStart="@id/photo"
-            android:layout_alignEnd="@id/photo"
-            android:background="@color/quickcontact_name_detail_background" />
-        <ImageView
-            android:id="@+id/contact_details_image"
-            android:src="@drawable/ic_contacts_holo_dark"
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:layout_marginRight="16dip"
-            android:layout_marginEnd="16dip"
-            android:layout_marginBottom="5dip"
-            android:layout_alignBottom="@id/photo_text_bar"
-            android:layout_alignRight="@id/photo_text_bar"
-            android:layout_alignEnd="@id/photo_text_bar"
-            android:clickable="true"
-            android:contentDescription="@string/viewContactDesription" />
-        <ImageView
-            android:id="@+id/quickcontact_star_button"
-            android:src="@drawable/ic_favorite_off_lt"
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:layout_marginBottom="5dip"
-            android:layout_marginRight="16dip"
-            android:layout_marginEnd="16dip"
-            android:layout_alignBottom="@id/photo_text_bar"
-            android:layout_toLeftOf="@id/contact_details_image"
-            android:layout_toStartOf="@id/contact_details_image"
-            android:clickable="true"
-            android:contentDescription="@string/menu_addStar" />
-        <TextView
-            android:id="@+id/name"
-            android:layout_width="match_parent"
-            android:layout_height="42dip"
-            android:layout_alignBottom="@id/photo"
-            android:layout_alignLeft="@id/photo"
-            android:layout_alignStart="@id/photo"
-            android:layout_toLeftOf="@id/quickcontact_star_button"
-            android:layout_toStartOf="@id/quickcontact_star_button"
-            android:gravity="center_vertical"
-            android:paddingLeft="8dip"
-            android:paddingStart="8dip"
-            android:singleLine="true"
-            android:ellipsize="end"
-            android:textColor="@android:color/white"
-            android:textAppearance="?android:attr/textAppearanceMedium" />
-    </RelativeLayout>
-</merge>
diff --git a/res/layout/quickcontact_title.xml b/res/layout/quickcontact_title.xml
new file mode 100644
index 0000000..9b23a86
--- /dev/null
+++ b/res/layout/quickcontact_title.xml
@@ -0,0 +1,29 @@
+<?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.
+-->
+<TextView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginStart="@dimen/quickcontact_title_initial_margin"
+    android:layout_marginEnd="@dimen/quickcontact_title_initial_margin"
+    android:layout_marginBottom="@dimen/quickcontact_title_initial_margin"
+    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:ellipsize="end"
+    android:id="@+id/large_title"/>
\ No newline at end of file
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/quickcontact_track.xml b/res/layout/quickcontact_track.xml
deleted file mode 100644
index 83a771c..0000000
--- a/res/layout/quickcontact_track.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<merge
-    xmlns:android="http://schemas.android.com/apk/res/android">
-    <HorizontalScrollView
-        android:id="@+id/track_scroller"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:fadingEdgeLength="0dip"
-        android:background="@color/quickcontact_track_background"
-        android:scrollbars="none">
-        <RelativeLayout
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content">
-            <LinearLayout
-                android:id="@+id/track"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal" />
-            <View
-                android:id="@+id/selected_tab_rectangle"
-                android:layout_width="60dip"
-                android:layout_height="6dip"
-                android:layout_alignBottom="@id/track"
-                android:layout_alignParentLeft="true"
-                android:layout_alignParentStart="true"
-                android:background="@color/quickcontact_tab_indicator" />
-        </RelativeLayout>
-    </HorizontalScrollView>
-</merge>
diff --git a/res/layout/quickcontact_track_button.xml b/res/layout/quickcontact_track_button.xml
deleted file mode 100644
index f9dcd1d..0000000
--- a/res/layout/quickcontact_track_button.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<com.android.contacts.quickcontact.CheckableImageView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="60dip"
-    android:layout_height="60dip"
-    android:paddingLeft="12dip"
-    android:paddingRight="12dip"
-    android:paddingStart="12dip"
-    android:paddingEnd="12dip"
-    android:paddingTop="8dip"
-    android:paddingBottom="8dip"
-    android:scaleType="centerInside"
-    android:focusable="true"
-    android:clickable="true"
-    android:background="?android:attr/selectableItemBackground" />
diff --git a/res/layout/social_widget.xml b/res/layout/social_widget.xml
deleted file mode 100644
index 1267bd9..0000000
--- a/res/layout/social_widget.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="#00000000">
-    <LinearLayout
-        android:id="@+id/widget_container"
-        android:orientation="horizontal"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-        <FrameLayout
-            android:layout_width="70dp"
-            android:layout_height="70dp"
-            android:layout_gravity="center_vertical">
-            <ImageView
-                android:id="@+id/image"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent" />
-            <ImageButton
-                android:id="@+id/border"
-                android:background="@drawable/frame_thumbnail_contact_widget_holo"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent" />
-        </FrameLayout>
-        <RelativeLayout
-            android:id="@+id/name_and_snippet_container"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_weight="1"
-            android:paddingLeft="43dp"
-            android:paddingRight="4dp"
-            android:paddingStart="43dp"
-            android:paddingEnd="4dp"
-            android:paddingTop="4dp"
-            android:paddingBottom="4dp"
-            android:background="@drawable/bg_status_contact_widget">
-            <TextView
-                android:id="@+id/name_and_snippet"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_alignParentLeft="true"
-                android:layout_alignParentStart="true"
-                android:layout_alignParentTop="true"
-                android:maxLines="3"
-                android:lineSpacingExtra="2sp"
-                android:textColor="#FFFFFFFF"
-                android:textSize="@dimen/widget_text_size_snippet" />
-            <TextView
-                android:id="@+id/name"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:gravity="center"
-                android:textColor="#FFFFFFFF"
-                android:textSize="@dimen/widget_text_size_name" />
-        </RelativeLayout>
-    </LinearLayout>
-</FrameLayout>
diff --git a/res/layout/stream_item_container.xml b/res/layout/stream_item_container.xml
deleted file mode 100644
index 33840b6..0000000
--- a/res/layout/stream_item_container.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical"
-    android:paddingLeft="@dimen/detail_update_section_side_padding"
-    android:paddingRight="@dimen/detail_update_section_side_padding"
-    android:paddingStart="@dimen/detail_update_section_side_padding"
-    android:paddingEnd="@dimen/detail_update_section_side_padding">
-
-    <!-- Clickable area -->
-    <LinearLayout
-        android:id="@+id/stream_item_content"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingLeft="@dimen/detail_update_section_item_horizontal_padding"
-        android:paddingRight="@dimen/detail_update_section_item_horizontal_padding"
-        android:paddingStart="@dimen/detail_update_section_item_horizontal_padding"
-        android:paddingEnd="@dimen/detail_update_section_item_horizontal_padding"
-        android:paddingTop="@dimen/detail_update_section_item_vertical_padding"
-        android:paddingBottom="@dimen/detail_update_section_item_vertical_padding"
-        android:background="?android:attr/selectableItemBackground"
-        android:orientation="vertical"
-        >
-
-        <!-- Images -->
-        <LinearLayout
-            android:id="@+id/stream_item_image_rows"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingBottom="@dimen/detail_update_section_between_items_vertical_padding"
-            android:layout_gravity="center_vertical"
-            android:orientation="vertical"
-            >
-        </LinearLayout>
-
-        <!-- Text -->
-        <TextView android:id="@+id/stream_item_html"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textSize="16sp"
-            android:textColor="?android:attr/textColorPrimary"
-            android:textAlignment="viewStart" />
-        <!--
-        Attribution (e.g. timestamp) and comments (e.g. +1, like) should align horizontally.
-        Can't merge this with the parent list view.
-        -->
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            >
-            <TextView android:id="@+id/stream_item_attribution"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textAppearance="?android:attr/textAppearanceSmall"
-                android:textColor="?android:attr/textColorSecondary"
-                android:ellipsize="end"
-                android:maxLines="1" />
-            <TextView android:id="@+id/stream_item_comments"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginLeft="@dimen/detail_update_section_attribution_comments_padding"
-                android:layout_marginStart="@dimen/detail_update_section_attribution_comments_padding"
-                android:textAppearance="?android:attr/textAppearanceSmall"
-                android:textColor="?android:attr/textColorSecondary"
-                android:maxLines="1"/>
-        </LinearLayout>
-    </LinearLayout>
-
-    <View
-        android:id="@+id/horizontal_divider"
-        android:layout_width="match_parent"
-        android:layout_height="1px"
-        android:background="?android:attr/dividerHorizontal"
-        android:layout_gravity="bottom" />
-
-</LinearLayout>
diff --git a/res/layout/stream_item_photo.xml b/res/layout/stream_item_photo.xml
deleted file mode 100644
index 9e27d2a..0000000
--- a/res/layout/stream_item_photo.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android">
-    <com.android.contacts.common.widget.LayoutSuppressingImageView
-        android:id="@+id/image"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"/>
-    <View
-        android:id="@+id/push_layer"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="?android:attr/selectableItemBackground"/>
-</FrameLayout>
diff --git a/res/layout/stream_item_row_images.xml b/res/layout/stream_item_row_images.xml
deleted file mode 100644
index a3f1325..0000000
--- a/res/layout/stream_item_row_images.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout
-    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="wrap_content"
-    android:layout_marginTop="@dimen/detail_update_section_between_items_padding">
-
-    <view
-        class="com.android.contacts.common.widget.ProportionalLayout"
-        android:layout_width="0dip"
-        android:layout_height="wrap_content"
-        android:layout_marginRight="@dimen/detail_update_section_between_items_padding"
-        android:layout_marginEnd="@dimen/detail_update_section_between_items_padding"
-        android:layout_weight="1"
-        ex:ratio="1"
-        ex:direction="widthToHeight">
-        <include
-            android:id="@+id/stream_item_first_image"
-            layout="@layout/stream_item_photo"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"/>
-    </view>
-
-    <view
-        android:id="@+id/second_image_container"
-        class="com.android.contacts.common.widget.ProportionalLayout"
-        android:layout_width="0dip"
-        android:layout_height="wrap_content"
-        android:layout_marginLeft="@dimen/detail_update_section_between_items_padding"
-        android:layout_marginStart="@dimen/detail_update_section_between_items_padding"
-        android:layout_weight="1"
-        ex:ratio="1"
-        ex:direction="widthToHeight">
-        <include
-            android:id="@+id/stream_item_second_image"
-            layout="@layout/stream_item_photo"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"/>
-    </view>
-
-</LinearLayout>
diff --git a/res/layout/updates_header_contact.xml b/res/layout/updates_header_contact.xml
deleted file mode 100644
index 66cdac4..0000000
--- a/res/layout/updates_header_contact.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-  This is a header entry in the contact updates list.
--->
-<LinearLayout
-    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="wrap_content"
-    android:orientation="vertical">
-
-    <!-- This blank view pushes the other content down because of the tab carousel -->
-    <view
-        class="com.android.contacts.common.widget.ProportionalLayout"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="@dimen/detail_contact_photo_shadow_height"
-        ex:ratio="0.5"
-        ex:direction="widthToHeight">
-
-        <!-- Put a dummy view here because the ProportionalLayout requires one -->
-        <FrameLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"/>
-
-    </view>
-
-    <!-- "Recent" header text -->
-    <FrameLayout
-        android:layout_width="match_parent"
-        android:layout_height="32dip"
-        android:paddingLeft="16dip"
-        android:paddingRight="16dip"
-        android:paddingStart="16dip"
-        android:paddingEnd="16dip"
-        android:focusable="false">
-
-        <TextView
-            style="?android:attr/listSeparatorTextViewStyle"
-            android:paddingLeft="8dip"
-            android:paddingRight="8dip"
-            android:paddingStart="8dip"
-            android:paddingEnd="8dip"
-            android:background="@drawable/list_section_divider_holo_custom"
-            android:text="@string/recent"
-            android:textColor="@color/people_app_theme_color"
-            android:textAllCaps="true"
-            android:singleLine="true"
-            android:ellipsize="end" />
-
-    </FrameLayout>
-
-</LinearLayout>
diff --git a/res/layout/user_profile_button.xml b/res/layout/user_profile_button.xml
deleted file mode 100644
index 6a7c3b4..0000000
--- a/res/layout/user_profile_button.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<Button
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:minHeight="@dimen/contact_browser_list_item_photo_size"
-    android:layout_marginLeft="?attr/list_item_padding_left"
-    android:layout_marginRight="?attr/list_item_padding_right"
-    android:layout_marginStart="?attr/list_item_padding_left"
-    android:layout_marginEnd="?attr/list_item_padding_right"
-    android:paddingLeft="?attr/list_item_header_text_indent"
-    android:paddingStart="?attr/list_item_header_text_indent"
-    android:background="?android:attr/selectableItemBackground"
-    android:singleLine="true"
-    android:text="@string/profile_display_name"
-    android:ellipsize="end"
-    android:gravity="start|center_vertical"
-    android:textAppearance="?android:attr/textAppearanceMedium" />
diff --git a/res/layout/user_profile_header.xml b/res/layout/user_profile_header.xml
index 1d08298..5a07313 100644
--- a/res/layout/user_profile_header.xml
+++ b/res/layout/user_profile_header.xml
@@ -25,31 +25,32 @@
     android:paddingStart="?attr/list_item_padding_left"
     android:paddingEnd="?attr/list_item_padding_right"
     android:paddingTop="4dp"
-    android:paddingBottom="8dp"
-    android:background="@drawable/list_section_divider_holo_custom"
-    android:gravity="center_vertical"
-    >
+    android:paddingBottom="8dp" >
 
-    <TextView
-        android:id="@+id/profile_title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
+    <TextView android:id="@+id/profile_title"
+        android:layout_width="@dimen/contact_list_section_header_width"
+        android:layout_height="?android:attr/listPreferredItemHeight"
         android:singleLine="true"
         android:text="@string/user_profile_contacts_list_header"
         android:ellipsize="end"
-        android:layout_weight="1"
-        android:textAppearance="@style/DirectoryHeaderStyle"
-        android:paddingLeft="?attr/list_item_text_indent"
-        android:paddingStart="?attr/list_item_text_indent" />
+        android:textAppearance="@style/SectionHeaderStyle"
+        android:gravity="start|center_vertical" />
 
-    <TextView
-        android:id="@+id/contacts_count"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
+    <Button android:id="@+id/user_profile_button"
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="?android:attr/listPreferredItemHeight"
+        android:layout_marginLeft="?attr/list_item_padding_left"
+        android:layout_marginRight="?attr/list_item_padding_right"
+        android:layout_marginStart="?attr/list_item_padding_left"
+        android:layout_marginEnd="?attr/list_item_padding_right"
+        android:paddingLeft="?attr/list_item_gap_between_image_and_text"
+        android:paddingStart="?attr/list_item_gap_between_image_and_text"
+        android:background="?android:attr/selectableItemBackground"
         android:singleLine="true"
+        android:text="@string/profile_display_name"
         android:ellipsize="end"
-        android:textAppearance="?android:attr/textAppearanceSmall"
-        android:textSize="12sp"
-        android:textColor="@color/people_app_theme_color" />
+        android:gravity="start|center_vertical"
+        android:textAppearance="?android:attr/textAppearanceMedium" />
 
 </LinearLayout>
diff --git a/res/menu-sw600dp/people_options.xml b/res/menu-sw600dp/people_options.xml
deleted file mode 100644
index 891c1b4..0000000
--- a/res/menu-sw600dp/people_options.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/menu_search"
-        android:icon="@drawable/ic_search_dk"
-        android:title="@string/menu_search"
-        android:showAsAction="ifRoom" />
-
-    <item
-        android:id="@+id/menu_add_contact"
-        android:icon="@drawable/ic_add_person_dk"
-        android:title="@string/menu_new_contact_action_bar"
-        android:showAsAction="ifRoom" />
-
-    <item
-        android:id="@+id/menu_add_group"
-        android:icon="@drawable/ic_add_person_dk"
-        android:title="@string/menu_new_group_action_bar"
-        android:showAsAction="ifRoom" />
-
-    <!-- Added orderInCategory to keep the following buttons at the end of the menu
-         Buttons will be added in the order added/inflated. Ordered buttons will be added
-         at the end according to the orderInCategory. This setup insures that the buttons below
-         will be the last buttons in the menu regardless of how many buttons are added
-    -->
-    <item
-        android:id="@+id/menu_contacts_filter"
-        android:orderInCategory="1"
-        android:title="@string/menu_contacts_filter" />
-
-    <item
-        android:id="@+id/menu_import_export"
-        android:orderInCategory="2"
-        android:title="@string/menu_import_export" />
-
-    <item
-        android:id="@+id/menu_clear_frequents"
-        android:orderInCategory="3"
-        android:title="@string/menu_clear_frequents" />
-
-    <item
-        android:id="@+id/menu_accounts"
-        android:orderInCategory="4"
-        android:title="@string/menu_accounts" />
-
-    <item
-        android:id="@+id/menu_settings"
-        android:orderInCategory="5"
-        android:title="@string/menu_settings" />
-
-    <item
-        android:id="@+id/menu_help"
-        android:orderInCategory="6"
-        android:title="@string/menu_help" />
-
-    <item
-        android:id="@+id/export_database"
-        android:title="@string/menu_export_database"
-        android:visible="false"
-        android:showAsAction="never" />
-</menu>
diff --git a/res/menu-sw600dp/view_group.xml b/res/menu-sw600dp/view_group.xml
deleted file mode 100644
index b61588c..0000000
--- a/res/menu-sw600dp/view_group.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/menu_edit_group"
-        android:icon="@drawable/ic_menu_compose_holo_light"
-        android:title="@string/menu_editGroup"
-        android:alphabeticShortcut="e"
-        android:showAsAction="always" />
-
-    <item
-        android:id="@+id/menu_delete_group"
-        android:title="@string/menu_deleteGroup" />
-</menu>
diff --git a/res/menu/edit_contact.xml b/res/menu/edit_contact.xml
index 51d9ab0..fe6d2b9 100644
--- a/res/menu/edit_contact.xml
+++ b/res/menu/edit_contact.xml
@@ -34,6 +34,19 @@
         android:title="@string/menu_discard" />
 
     <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/people_options.xml b/res/menu/people_options.xml
index 2c7eedb..a7802f0 100644
--- a/res/menu/people_options.xml
+++ b/res/menu/people_options.xml
@@ -16,23 +16,11 @@
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item
         android:id="@+id/menu_search"
-        android:icon="@drawable/ic_search_dk"
+        android:icon="@drawable/ic_ab_search"
         android:title="@string/menu_search"
         android:showAsAction="ifRoom" />
 
     <item
-        android:id="@+id/menu_add_contact"
-        android:icon="@drawable/ic_add_person_dk"
-        android:title="@string/menu_new_contact_action_bar"
-        android:showAsAction="ifRoom" />
-
-    <item
-        android:id="@+id/menu_add_group"
-        android:icon="@drawable/ic_add_group_dk"
-        android:title="@string/menu_new_group_action_bar"
-        android:showAsAction="ifRoom" />
-
-    <item
         android:id="@+id/menu_contacts_filter"
         android:title="@string/menu_contacts_filter" />
 
diff --git a/res/menu-sw600dp/view_contact.xml b/res/menu/quickcontact.xml
similarity index 74%
rename from res/menu-sw600dp/view_contact.xml
rename to res/menu/quickcontact.xml
index 5437dec..13caa59 100644
--- a/res/menu-sw600dp/view_contact.xml
+++ b/res/menu/quickcontact.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
+<!-- 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.
@@ -15,12 +15,15 @@
 -->
 
 <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:icon="@drawable/ic_menu_compose_holo_light"
-        android:title="@string/menu_editContact"
-        android:alphabeticShortcut="e"
-        android:showAsAction="always"/>
+        android:showAsAction="always" />
 
     <item
         android:id="@+id/menu_share"
@@ -28,11 +31,6 @@
         android:alphabeticShortcut="s" />
 
     <item
-        android:id="@+id/menu_delete"
-        android:title="@string/menu_deleteContact" />
-
-    <item
         android:id="@+id/menu_create_contact_shortcut"
         android:title="@string/menu_create_contact_shortcut" />
-
 </menu>
diff --git a/res/menu/contact_picker_options.xml b/res/menu/search_menu.xml
similarity index 73%
rename from res/menu/contact_picker_options.xml
rename to res/menu/search_menu.xml
index 89196ba..355442e 100644
--- a/res/menu/contact_picker_options.xml
+++ b/res/menu/search_menu.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
+<!-- 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.
@@ -13,10 +13,10 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<!-- Used with DialtactsActivity's search mode. -->
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item
-        android:id="@+id/create_new_contact"
-        android:title="@string/pickerNewContactText"
-        android:showAsAction="ifRoom" />
+        android:id="@+id/menu_search"
+        android:icon="@drawable/ic_ab_search"
+        android:title="@string/menu_search"
+        android:showAsAction="always" />
 </menu>
diff --git a/res/mipmap-hdpi/ic_launcher_shortcut_directmessage.png b/res/mipmap-hdpi/ic_launcher_shortcut_directmessage.png
index c8eb467..3256f8d 100644
--- a/res/mipmap-hdpi/ic_launcher_shortcut_directmessage.png
+++ b/res/mipmap-hdpi/ic_launcher_shortcut_directmessage.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_shortcut_directmessage.png b/res/mipmap-mdpi/ic_launcher_shortcut_directmessage.png
index 698971b..88ba718 100644
--- a/res/mipmap-mdpi/ic_launcher_shortcut_directmessage.png
+++ b/res/mipmap-mdpi/ic_launcher_shortcut_directmessage.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_shortcut_directmessage.png b/res/mipmap-xhdpi/ic_launcher_shortcut_directmessage.png
index 3222dc8..4664ea6 100644
--- a/res/mipmap-xhdpi/ic_launcher_shortcut_directmessage.png
+++ b/res/mipmap-xhdpi/ic_launcher_shortcut_directmessage.png
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_launcher_shortcut_directmessage.png b/res/mipmap-xxhdpi/ic_launcher_shortcut_directmessage.png
index 524d2b9..579a100 100644
--- a/res/mipmap-xxhdpi/ic_launcher_shortcut_directmessage.png
+++ b/res/mipmap-xxhdpi/ic_launcher_shortcut_directmessage.png
Binary files differ
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 88a9b89..d6decd4 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Mense"</string>
+    <string name="people" msgid="1190841469952343354">"Kontakte"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakte"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontak"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direk skakel"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Kies \'n kontak"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Kies 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="viewContactDesription" msgid="214186610887547860">"Bekyk kontak"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Redigeer kontak"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Skep kontak"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Redigeer groep"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Plaas op tuisskerm"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Hierdie kontak bevat inligting uit meerdere rekeninge. Inligting uit leesalleen-rekeninge sal in jou kontaklyste versteek word, nie verwyder word nie."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"As jy hierdie kontak uitvee, sal dit inligting uit meerdere rekeninge uitvee."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Hierdie kontak sal uitgevee word."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Gooi weg"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Verwerp wysigings"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Die kontak bestaan ​​nie."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Kontak-legstuk by tuisskerm gevoeg."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Skep nuwe kontak"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> kontakte met foonnommers"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Geen kontakte met foonnommers nie"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 kontak"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> kontakte"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 gevind"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> gevind"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 gevind"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> gevind"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Alle kontakte"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Groepe"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Alle kontakte"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Gunstelinge"</string>
     <string name="callBack" msgid="5498224409038809224">"Bel terug"</string>
     <string name="callAgain" msgid="3197312117049874778">"Bel weer"</string>
     <string name="returnCall" msgid="8171961914203617813">"Bel terug"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> van <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontakte"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Name van jou kontakte"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Geen program is gevind om hierdie aksie te hanteer nie."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klik om na die vorige skerm terug te keer"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Voeg foonnommer by"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Voeg e-pos by"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Geen program is gevind om hierdie handeling te behartig nie."</string>
     <string name="menu_share" msgid="943789700636542260">"Deel"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Voeg by kontakte"</string>
     <string name="share_via" msgid="563121028023030093">"Deel kontak met"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Skep groep onder rekening"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Stemklets"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Gebruik hierdie foto"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Nie redigeerbaar vanuit hierdie program nie."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Geen bykomende inligting vir hierdie kontak nie."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Nie redigeerbaar op hierdie toestel nie"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Rangskik lys volgens"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Voornaam"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Van"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Bekyk kontakname"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Voornaam eerste"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Van eerste"</string>
     <string name="take_photo" msgid="7496128293167402354">"Neem foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Neem nuwe foto"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Kies foto ui die galery"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Kies nuwe foto uit galery"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Kies foto"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Kies nuwe foto"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Kontaklys word tans opgedateer om die taalverandering te weerspieël."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Kontaklys word opgedateer."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Kontakte word tans opgradeer. \n\nDie opgraderingsproses benodig interne geheue van omtrent <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MG. \n\nKies een van die volgende opsies:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Voeg organisasie by"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Groepnaam"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"gunsteling"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Redigeer kontak"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Skep tans \'n persoonlike kopie..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Gepasmaak"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Instellings"</string>
     <string name="menu_settings" msgid="377929915873428211">"Instellings"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"My plaaslike profiel"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"My <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>profiel"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Vertoon alle kontakte"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"People werk beter met \'n Google-rekening.\n\n•Verkry toegang vanaf enige webblaaier.\n•Rugsteun jou kontakte veilig."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Kontakte werk beter met \'n Google-rekening.\n\n• Verkry toegang vanaf enige webblaaier.\n• Rugsteun jou kontakte veilig."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Hou jou kontakte veilig, selfs al verloor jy jou selfoon: sinkroniseer met \'n aanlyn diens."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Voeg \'n rekening by"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Jou nuwe kontak sal nie gerugsteun word nie. Voeg \'n rekening by wat kontakte aanlyn rugsteun?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Jou nuwe kontak sal gesinchroniseer word met <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Jy kan jou nuwe kontak sinchroniseer met een van die volgende rekeninge. Wat wil jy gebruik?"</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="keep_local" msgid="1258761699192993322">"Hou plaaslik"</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="contact_detail_picture_description" msgid="6083230522651287030">"Foto. Kies om te verander"</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="6137651078366797938">"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="content_description_directions" msgid="2686791825798189335">"rigtingaanwysings na ligging"</string>
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 3b450e9..29cf720 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"ሰዎች"</string>
+    <string name="people" msgid="1190841469952343354">"ዕውቂያዎች"</string>
     <string name="contactsList" msgid="8661624236494819731">"እውቅያዎች"</string>
     <string name="shortcutContact" msgid="749243779392912958">"እውቅያ"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"ቀጥታ ደውል"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"ለመደወል ቁጥር ምረጥ"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"መልዕክትለመላክ ቁጥር ምረጥ"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"ዕውቅያ ምረጥ"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"አዲስ እውቂያ ይምረጡ"</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="viewContactDesription" msgid="214186610887547860">"ዕውቂያ ዕይ"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"ዕውቅያ አርትዕ"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"ዕውቅያ ፍጠር"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"ቡድን አርትዕ"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"መነሻ የማያ ገጽ ላይ አስቀምጥ"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"ይህ ዕውቂያ ከብዙ መለያዎች መረጃ ይዟል።ከንባብ-ብቻ መለያዎች ውስጥ ያሉ ዕውቂያዎች ይደበቃሉ፣አይሰረዙም።"</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"ይህን ዕውቂያ መሰረዝ ከብዙ መለያዎች ውስጥ መረጃ ይሰርዛል።"</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"ይህ ማንቂያ ይሰረዛል።"</string>
-    <string name="menu_discard" msgid="6456087569315685632">"አስወግድ"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"ለውጦችን አስወግድ"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"ዕውቅያው የለም።"</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"የእውቂያ መግብር መነሻ ማያ ገጽ ላይ ታክሏል።"</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"አዲስ ዕውቂያ ፍጠር"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> ዕውቂያዎች ከስልክ ቁጥሮች ጋር"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ከስልክ ቁጥር ጋር የሚታዩ ዕውቂያዎች የሉም"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 እውቅያ"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> እውቅያዎች"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 ተገኝቷል"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> ተገኝቷል"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 ተገኝቷል"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> ተገኝቷል"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"ሁሉም እውቂያዎች"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"ቡድኖች"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"ሁሉም ዕውቂያዎች"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"ተወዳጆች"</string>
     <string name="callBack" msgid="5498224409038809224">"የኋላ ጥሪ"</string>
     <string name="callAgain" msgid="3197312117049874778">"እንደገና ደውል"</string>
     <string name="returnCall" msgid="8171961914203617813">"ጥሪ መልስ"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> ከ <xliff:g id="TOTAL_NUMBER">%s</xliff:g> እውቂያዎች"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"የዕውቂያዎችዎ ስሞች"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"ይህን እርምጃ ለማስተናገድ ምንም መተግበሪያ አልተገኘም፡፡"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ወደ ቀዳሚው ማያ ገጽ ለመመለስ ጠቅ ያድርጉ"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"የስልክ ቁጥር ያክሉ"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ኢሜይል ያክሉ"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ይህን እርምጃ የሚያከናውን ምንም መተግበሪያ አልተገኘም።"</string>
     <string name="menu_share" msgid="943789700636542260">"መጋሪያ"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"ወደ እውቂያዎች ያክሉ"</string>
     <string name="share_via" msgid="563121028023030093">"ዕውቂያበ በኩል አጋራ"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"በመለያ ስር ቡድን ፍጠር"</string>
     <string name="audio_chat" msgid="2535716629358298691">"የድምፅ ውይይት"</string>
@@ -133,21 +136,14 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"ይህን ፎቶ ተጠቀም"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"ከዚህ መተግበሪያ አርትዕ ሊደረግ አይችልም፡፡"</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"ለእዚህ ዕውቂያ ምንም ተጨማሪ መረጃ የለም"</string>
     <string name="group_read_only" msgid="1061762906115697637">"በዚህ መሣሪያ ላይ አርትዕ መደረግ የሚችል አይደለም።"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"ዝርዝር በ  ለይ"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"መጠሪያ ስም"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"የቤተሰብ ስም"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"የእውቂያ ስሞችን እይ"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"መጠሪያ ስም መጀመሪያ"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"የቤተሰብ መነሻስም"</string>
     <string name="take_photo" msgid="7496128293167402354">"ፎቶ አንሳ"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"አዲስ ፎቶ አንሳ"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"ፎቶ ከማዕከለ ስዕላት ምረጥ"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"ከማዕከለ ስእላት አዲስ ፎቶ ምረጥ"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ፎቶ ምረጥ"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"አዲስ ፎቶ ይምረጡ"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"የቋንቋ ለውጥ ለማንፀባረቅ የዕውቂያ ዝርዝር ዘምኗል።"</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"የዕውቂያ ዝርዝር ዘምኗል"</string>
-    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"ዕውቂያዎች በአልቅ ሂደት ውስጥ ናቸው።\n\nየአልቁ ሂደት ወደ <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g>ሜባ አካባቢ የውስጥ ማከማቻ \n\nይጠይቃል።ከሚከተሉት አማራጮች አንዱን ምረጥ፡"</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"ዕውቂያዎች በአልቅ ሂደት ውስጥ ናቸው።\n\nየአልቁ ሂደት ወደ <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g>ሜባ አካባቢ የውስጥ ማከማቻ \n\nይጠይቃል።ከሚከተሉት አማራጮች አንዱን ይምረጡ፡"</string>
     <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"አንዳንድ ትግበራዎችን አለመጫን"</string>
     <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"አልቅ ድጋሚ ሞክር"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"በመፈለግ ላይ…"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"ድርጅት አክል"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"ቀን"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"የቡድን ስም"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"በ<xliff:g id="SOURCE">%1$s</xliff:g> በኩል"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g>በ<xliff:g id="SOURCE">%2$s</xliff:g> በኩል"</string>
     <string name="description_star" msgid="2605854427360036550">"ተወዳጅ"</string>
     <string name="edit_contact" msgid="7529281274005689512">"እውቅያ አርትዕ"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"የግል ቅጂ በመፍጠር ላይ..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"ብጁ"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"ቅንብሮች"</string>
     <string name="menu_settings" msgid="377929915873428211">"ቅንብሮች"</string>
@@ -209,7 +202,7 @@
     <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"ሌላ ዕውቂያ ከመቀላቀልህ በፊት የዕውቂያ ስም ተይብ።"</string>
     <string name="copy_text" msgid="3257145021583508761">"ወደ ቅንጥብ ሰሌዳ ገልብጥ"</string>
     <string name="set_default" msgid="4417505153468300351">"ነባሪ አዘጋጅ"</string>
-    <string name="clear_default" msgid="7193185801596678067">"ነባሪ አጥራ"</string>
+    <string name="clear_default" msgid="7193185801596678067">"ነባሪ አጽዳ"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"ፅሁፍ ገልብጧል"</string>
     <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">" ለውጦችህ ይወገዱ?"</string>
     <string name="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>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"በአካባቢው ምንም መገለጫ የለም"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"የእኔ የ<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> መገለጫ"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"ሁሉንም ዕውቂያዎች በማሳየት ላይ"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"ሰዎች በGoogle መለያ የተሻለ ይሰራሉ።\n\n• ከማንኛውም የድረ ማሰሻ ላይ ይድረሱበት።\n• ዝግጅቶችዎን በደንብ ያስጠብቁ"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"ዕውቂያዎች በGoogle መለያ የተሻለ ይሰራሉ።\n\n• ከማንኛውም የድረ አሳሽ ላይ ይድረሱበት።\n• እውቂያዎችዎን ደህንነቱ በተጠበቀ ሁኔታ ምትክ ያስቀምጡ።"</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"ስልክህ ቢጠፋብህ እንኳን  ዕውቂያዎችህን ደህንነታቸው እንደተጠበቀ እንዲቆዩ አድርግ ከመስመር ላይ አገልገሎት ጋር አመሳስለው::"</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"መለያ አክል"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"አዲሱ  ዕውቅያ ምትክ አይቀመጥለትም:: በመስመር ላይ ዕውቅያዎች በምትክ የሚያስቀምጥ መለያ አክል?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"አዲሱ ዕውቅያህ ከ <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ጋር ይመሳሰላል፡፡"</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"አዲስ ዕውቅያህን ከሚከተሉት መለያዎች ከአንዱ ጋር ማመሳሰል ትችላለህ፡፡ የትኛውን መጠቀም ትፈልጋለህ?"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"አዲስ ዕውቅያዎን ከሚከተሉት መለያዎች ከአንዱ ጋር ማመሳሰል ይችላሉ። የትኛውን መጠቀም ይፈልጋሉ?"</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="contact_detail_picture_description" msgid="6083230522651287030">"ስዕል። ለመቀየር ይምረጡ"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"አዲስ እውቂያ ያክሉ"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"ተጨማሪ ይመልከቱ"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"ያነሰ ይመልከቱ"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"ሁሉንም ይመልከቱ"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"የቅርብ ጊዜ"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"ስለ"</string>
+    <string name="send_message" msgid="8938418965550543196">"መልዕክት ላክ"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"የግል ቅጂ በመፍጠር ላይ..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"ትላንት"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"ነገ"</string>
+    <string name="today" msgid="8041090779381781781">"ዛሬ"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"ዛሬ <xliff:g id="TIME_INTERVAL">%s</xliff:g> ላይ"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"ነገ <xliff:g id="TIME_INTERVAL">%s</xliff:g> ላይ"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>፣ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(ርዕስ-አልባ ክስተት)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"አዘጋጅ"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"ፈጣን መልዕክት"</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="content_description_directions" msgid="2686791825798189335">"ወደ አካባቢ የሚወስዱ አቅጣጫዎች"</string>
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index e081867..2ebfeb4 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"أشخاص"</string>
+    <string name="people" msgid="1190841469952343354">"جهات الاتصال"</string>
     <string name="contactsList" msgid="8661624236494819731">"جهات الاتصال"</string>
     <string name="shortcutContact" msgid="749243779392912958">"الاتصال بـ"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"طلب مباشر"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"اختيار رقم للاتصال به"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"اختيار رقم لإرسال رسالة له"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"اختيار جهة اتصال"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"تحديد جهة اتصال جديدة"</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="viewContactDesription" msgid="214186610887547860">"عرض جهة الاتصال"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"تعديل جهة الاتصال"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"إنشاء جهة اتصال"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"تعديل المجموعة"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"وضع على الشاشة الرئيسية"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"تحتوي جهة الاتصال هذه على معلومات من عدة حسابات. وسيتم إخفاء المعلومات من الحسابات التي للقراءة فقط في قوائم جهات الاتصال، وليس حذفها."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"سيؤدي حذف جهة الاتصال هذه إلى حذف المعلومات من عدة حسابات."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"سيتم حذف جهة الاتصال هذه."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"تجاهل"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"إلغاء التغييرات"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"جهة الاتصال غير موجودة."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"تمت إضافة أداة جهات الاتصال إلى الشاشة الرئيسية."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"إنشاء جهة اتصال جديدة"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> من جهات الاتصال التي تشتمل على أرقام هواتف"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ليس هناك جهات اتصال تشتمل على أرقام هواتف"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"جهة اتصال واحدة"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> من جهات الاتصال"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"تم العثور على جهة اتصال واحدة"</item>
     <item quantity="other" msgid="3852668542926965042">"تم العثور على <xliff:g id="COUNT">%d</xliff:g>"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"تم العثور على جهة اتصال واحدة"</item>
     <item quantity="other" msgid="7988132539476575389">"تم العثور على <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"جميع جهات الاتصال"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"المجموعات"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"كل جهات الاتصال"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"المفضلة"</string>
     <string name="callBack" msgid="5498224409038809224">"معاودة الاتصال"</string>
     <string name="callAgain" msgid="3197312117049874778">"الاتصال مرة أخرى"</string>
     <string name="returnCall" msgid="8171961914203617813">"معاودة اتصال بمكالمة فائتة"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> من <xliff:g id="TOTAL_NUMBER">%s</xliff:g> من جهات الاتصال"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"أسماء جهات الاتصال"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"لم يتم العثور على تطبيق يمكنه مباشرة هذا الإجراء."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"انقر للرجوع إلى الشاشة السابقة"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"إضافة رقم الهاتف"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"إضافة بريد إلكتروني"</string>
+    <string name="missing_app" msgid="1466111003546611387">"لم يتم العثور على تطبيق يمكنه مباشرة هذا الإجراء."</string>
     <string name="menu_share" msgid="943789700636542260">"مشاركة"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"إضافة إلى جهات الاتصال"</string>
     <string name="share_via" msgid="563121028023030093">"مشاركة جهة الاتصال عبر"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"إنشاء مجموعة ضمن حساب"</string>
     <string name="audio_chat" msgid="2535716629358298691">"دردشة صوتية"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"استخدام هذه الصورة"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"غير قابلة للتعديل من هذا التطبيق."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"ليس هناك أية معلومات إضافية لجهة الاتصال هذه."</string>
     <string name="group_read_only" msgid="1061762906115697637">"غير قابلة للتعديل على هذا الجهاز."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"تصنيف القائمة بحسب"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"الاسم الأول"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"اسم العائلة"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"عرض أسماء جهات الاتصال"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"الاسم الأول أولاً"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"اسم العائلة أولاً"</string>
     <string name="take_photo" msgid="7496128293167402354">"التقاط صورة"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"التقاط صورة جديدة"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"اختيار صورة من المعرض"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"تحديد صورة جديدة من المعرض"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"اختيار صورة"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"تحديد صورة جديدة"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"يجري تحديث قائمة جهات الاتصال لتعكس التغير في اللغة."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"يجري تحديث قائمة جهات الاتصال."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"جهات الاتصال قيد الترقية.\n\nتتطلب عملية الترقية مساحة تبلغ حوالي <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> ميغابايت من سعة التخزين الداخلية.\n\nاختر أحد الخيارات التالية:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"إضافة مؤسسة"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"التاريخ"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"اسم المجموعة"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"عبر <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> عبر <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"مفضل"</string>
     <string name="edit_contact" msgid="7529281274005689512">"تعديل جهة الاتصال"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"جارٍ إنشاء نسخة شخصية..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"مخصص"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"الإعدادات"</string>
     <string name="menu_settings" msgid="377929915873428211">"الإعدادات"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"ملفي الشخصي المحلي"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"ملفي الشخصي في <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"عرض جميع جهات الاتصال"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"يعمل تطبيق \"الأشخاص\" بشكل أفضل مع حساب Google.‏\n\n• يمكنك الدخول من أي متصفح ويب.\n• يمكنك نسخ جهات اتصالك احتياطيًا بشكل آمن."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"‏تعمل جهات الاتصال بشكلٍ أفضل من خلال حساب Google.\n\n• يمكنك الدخول من أي متصفح ويب.\n• يمكنك الاحتفاظ بنسخة احتياطية من جهات اتصالك بشكلٍ آمن."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"يمكنك الاحتفاظ بجهات اتصالك في أمان حتى إذا فقدت هاتفك: من خلال المزامنة مع خدمة عبر الإنترنت."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"إضافة حساب"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"لن يتم الاحتفاظ بنسخة احتياطية من جهة الاتصال الجديدة. هل تريد إضافة حساب يحتفظ بنسخة احتياطية من جهات الاتصال على الإنترنت؟"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"ستتم مزامنة جهة الاتصال الجديدة مع <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"يمكنك مزامنة جهة الاتصال الجديدة مع أحد الحسابات التالية. ما الذي تريد استخدامه منها؟"</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="contact_detail_picture_description" msgid="6083230522651287030">"الصورة. حدد للتغيير"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"إضافة جهة اتصال جديدة"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"الاطلاع على المزيد"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"عرض أقل"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"عرض الكل"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"الأخيرة"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"حول"</string>
+    <string name="send_message" msgid="8938418965550543196">"إرسال رسالة"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"جارٍ إنشاء نسخة شخصية..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"أمس"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"غدًا"</string>
+    <string name="today" msgid="8041090779381781781">"اليوم"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"اليوم في <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"غدًا في <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>، <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(حدث بدون اسم)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"تعيين"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"المراسلة الفورية"</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="content_description_directions" msgid="2686791825798189335">"الاتجاهات إلى الموقع"</string>
 </resources>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
new file mode 100644
index 0000000..7092f8c
--- /dev/null
+++ b/res/values-az-rAZ/strings.xml
@@ -0,0 +1,233 @@
+<?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="people" msgid="1048457247435785074">"Camaat"</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="contactPickerActivityTitle" msgid="4301062192337417640">"Kontakt seçin"</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="viewContactDesription" msgid="214186610887547860">"Kontakta baxın"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"Kontakta düzəliş edin"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"Kontakt yaradın"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"Qrupa düzəliş edin"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"Qrup yaradın"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"Haqqında"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"Güncəlləşdirmələr"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Kontakt axtarın"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"Kontakta baxın"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Favoritlərə əlavə edin"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Favoritlərdən yığışdırın"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Düzəliş edin"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Silin"</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="8368636463748691868">"Ayrılıqda"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"Düzəliş edin"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"Silin"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Kontakt əlavə edin"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Qrupu əlavə edin"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"Kontakt bölünsün?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"Bu kontakt çoxsaylı kontaktlara bölünəcək."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"Qoşulun"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Kontaktları birləşdirin"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"<xliff:g id="NAME">%s</xliff:g> ilə birləşdirmə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="7208148163607047389">"Kontaktlar birləşdirildi"</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="7808825687289848259">"Yalnız oxunmaq üçün olan hesablardan kontaktları silə bilməzsiniz, lakin onları kontakt siyahınızda gizlədə bilərsiniz."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Bu kontakt çoxsaylı hesablardan olan məlumatlardan ibarətdir. Yalnız oxunmaq üçün olan hesablardan məlumatlar Sizin kontakt siyahınızda gizlədiləcək, silinməyəcək."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Bu kontaktın silinməsi çoxsaylı hesablardan məlumatların silinməsi ilə nəticələnəcək."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"Bu kontakt silinəcək."</string>
+    <string name="menu_discard" msgid="6456087569315685632">"İmtina edin"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt mövcud deyil."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Kontakt vidceti Əsas ekrana əlavə edildi."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Yeni kontakt yaradın"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Yeni kontakt yaradın"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"Təşkilat"</item>
+    <item msgid="7196592230748086755">"Qeyd"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Planşetdə şəkillər əlçatımlı deyil."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Telefonda heç bir şəkil əlçatımlı deyil."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontakt fotosu"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Fərdi etiket adı"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Səsləri birbaşa səsli poçta göndərin"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Fotonu yığışdırın"</string>
+    <string name="noContacts" msgid="8579310973261953559">"Kontakt yoxdur."</string>
+    <string name="noGroups" msgid="8614664663561385253">"Qrup yoxdur."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Qrup yaratmaq üçün hesaba ehtiyacınız var."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"Bu qrupda adam yoxdur."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"Bəzilərini əlavə etmək üçün qrupu redaktə edin"</string>
+    <string name="savingContact" msgid="4075751076741924939">"Kontakt yadda saxlanır..."</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"Kontakt yadda saxlanıldı."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Kontakt dəyişiklikləri saxlanıla bilmədi."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"Qrup yadda saxlanıldı."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Qrup dəyişiklikləri yadda saxlanılmadı."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"Telefon nömrəsi olan 1 kontakt"</item>
+    <item quantity="other" msgid="3299954047880968205">"Telefon nömrəsi olan <xliff:g id="COUNT">%d</xliff:g> kontakt"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Telefon nömrəsi olan kontakt yoxdur"</string>
+  <plurals name="listTotalAllContacts">
+    <item quantity="one" msgid="3405747744700823280">"1 kontakt"</item>
+    <item quantity="other" msgid="3578469907265375314">"(<xliff:g id="COUNT">%d</xliff:g> kontakt)"</item>
+  </plurals>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 tapıldı"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> tapıldı"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Kontakt yoxdur"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 tapılmış"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> tapıldı"</item>
+  </plurals>
+    <string name="contactsAllLabel" msgid="6479708629170672169">"Bütün kontaktlar"</string>
+    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Qruplar"</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="menu_share" msgid="943789700636542260">"Paylaşın"</string>
+    <string name="share_via" msgid="563121028023030093">"Kontaktı bu vasitə ilə paylaşın:"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"Hesab altında qrup yaradın"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Səsli çat"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Video çat"</string>
+    <string name="connections" msgid="8098440723172028350">"Əlaqələr"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"Bağlantı əlavə edin"</string>
+    <string name="recent" msgid="2659189233141493004">"Son"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"Son güncəlləşmələr"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontakt"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"Bu fotonu istifadə edin"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"Bu tətbiqdən düzəliş edilə bilən deyil."</string>
+    <string name="no_contact_details" msgid="6636856378019344497">"Bu kontakt üçün heç bir əlavə məlumat yoxdur."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"Bu cihaz üçün redaktəolunmazdır."</string>
+    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Siyahını sırala"</string>
+    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Verilmiş ad"</string>
+    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Soyad"</string>
+    <string name="display_options_view_names_as" msgid="4386932036180428374">"Kontakt adlarına baxın"</string>
+    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Birinci verilmiş ad yazılsın"</string>
+    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Birinci soyad yazılsın"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Fotoşəkil çəkin"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Yeni foto çəkin"</string>
+    <string name="pick_photo" msgid="3746334626214970837">"Qalereyadan şəkil seçin"</string>
+    <string name="pick_new_photo" msgid="7962368009197147617">"Qalereyadan yeni foto seçin"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"Kontakt siyahısı dil dəyişikliyini əks etmək üçün yenilənir."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"Kontakt siyahısı güncəlləşdirilir."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Kontaktlar təkmilləşmə prosesindədir. \n\nTəkmilləşmə prosesi təxminən <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB daxili yaddaş tələb edir.\n\nAşağıdakı variantlardan birini seçin:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Bəzi tətbiqləri sistemdən silin"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Təkmilləşdirməyə yenidən cəhd edin"</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_field" msgid="2384260056674995230">"Digər sahə əlavə edin"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Yenisini əlavə edin"</string>
+    <string name="add_organization" msgid="7311893231158291197">"Təşkilat əlavə edin"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Tarix"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Qrup adı"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> vasitəsilə"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="SOURCE">%2$s</xliff:g> vasitəsilə <xliff:g id="DATE">%1$s</xliff:g>"</string>
+    <string name="description_star" msgid="2605854427360036550">"sevimli"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"Kontaktı redaktə edin"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"qovuşdurulmayıb"</item>
+    <item quantity="other" msgid="425683718017380845">"<xliff:g id="COUNT">%0$d</xliff:g> mənbədən qovuşduruldu"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"Cari kontakt seçilmiş kontakta birləşdirilsin?"</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="toast_making_personal_copy" msgid="288549957278065542">"Şəxsi nüsxə yaradılır..."</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"Adət"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Ayarlar"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Ayarlar"</string>
+    <string name="menu_help" msgid="5123887102216637725">"Yardım"</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="7356532842767854606">"İli yazın"</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="7911101713860139754">"Hesabınıza daxil olun"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Kontaktları import edin"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"Yeni qrup yarat"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"Yeni qrup yarat"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 qrup"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> qrup"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" qrupu silinsin? (Kontaktlar silinməyəcək.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> hesabından <xliff:g id="COUNT_0">%1$d</xliff:g> nəfər"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> hesabından <xliff:g id="COUNT_0">%1$d</xliff:g> nəfər"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> şəxs"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> nəfər"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Digəri ilə birləşmədən öncə kontakt adı yazın."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Panoya kopyalayın"</string>
+    <string name="set_default" msgid="4417505153468300351">"Defolt ayarlayın"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Defoltu təmizləyin"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Mətn kopyalandı"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Dəyişiklikləriniz kənarlaşdırılsın?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"Profilimi quraşdırın"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"Şəxsin adını yazın"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"Qrup adı"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Yerli profilim"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Mənim <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profilim"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Bütün kontaktlar göstərilir"</string>
+    <string name="no_account_prompt" msgid="7061052512446855192">"Adamlar Google Hesabı ile daha yaxşı işləyir. \n \n • Hər hansı bir veb brauzer ilə daxil olun \n • Kontaktlarınızı güvənli şəkildə yedəkləyin."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Telefonunuzu itirsəniz belə, kontaktlarınızı təhlükəsiz saxlayın: onlayn xidmət ilə sinxronlaşdırın."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Hesab əlavə edin"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Yeni kontaktınız yedəklənməyəcək. Kontaktları onlayn yedəkləyən hesab əlavə olunsun?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Yeni kontaktınız <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ilə sinxronlaşacaq."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Kontaktlarınızı aşağıdakı hesablardan biri ilə sinxronlaşdıra bilərsiniz. Hansını istifadə etmək istəyirsiniz?"</string>
+    <string name="keep_local" msgid="1258761699192993322">"Lokal olaraq saxlayın"</string>
+    <string name="add_account" msgid="8201790677994503186">"Hesab əlavə edin"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Yeni hesab əlavə edin"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Data baza fayllarını eksport edin"</string>
+    <string name="contact_detail_picture_description" msgid="6083230522651287030">"Şəkil. Dəyişmək üçün seçin."</string>
+</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
deleted file mode 100644
index 21fdf10..0000000
--- a/res/values-be/strings.xml
+++ /dev/null
@@ -1,233 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Людзі"</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="contactPickerActivityTitle" msgid="4301062192337417640">"Выберыце кантакт"</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="viewContactDesription" msgid="214186610887547860">"Прагледзець кантакт"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Рэдагаваць кантакт"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Стварыць кантакт"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Рэдагаваць групу"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Стварыць групу"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Інфармацыя"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Абнаўленні"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Пошук кантактаў"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Прагледзець кантакт"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Дадаць да любімых"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Выдаліць з Выбранага"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Рэдагаваць"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Выдаліць"</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="8368636463748691868">"Падзяліць"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Рэдагаваць"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Выдаліць"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Дадаць кантакт"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Дадаць групу"</string>
-    <string name="splitConfirmation_title" msgid="633640935430370530">"Раздзяліць кантакт?"</string>
-    <string name="splitConfirmation" msgid="740190210499587175">"Гэты кантакт будзе падзелены на некалькі кантактаў."</string>
-    <string name="menu_joinAggregate" msgid="5027981918265667970">"Аб\'яднаць"</string>
-    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Аб\'яднаць кантакты"</string>
-    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"Выберыце кантакт, які хочаце звязаць з 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="7208148163607047389">"Кантакты аб\'яднаныя"</string>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Устал. рынгтон"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Усе выклікі на гал. пошту"</string>
-    <string name="readOnlyContactWarning" msgid="7808825687289848259">"Вы не можаце выдаляць кантакты з улiковых запiсаў толькі для чытання, але вы можаце хаваць іх у спісах кантактаў."</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Гэты кантакт змяшчае інфармацыю з некалькіх уліковых запісаў. Інфармацыя з уліковых запісаў, даступных толькі для чытання, будзе схаваная ў спісах кантактаў, а не выдаленая."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Выдаленне гэтага кантакту выдаліць інфармацыю з некалькіх уліковых запісаў."</string>
-    <string name="deleteConfirmation" msgid="811706994761610640">"Гэты кантакт будзе выдалены."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Адхіліць"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"Кантакт не існуе."</string>
-    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Звязацца з віджэтам, даданым на галоўны экран."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Стварыць новы кантакт"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Стварыць новы кантакт"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Установа"</item>
-    <item msgid="7196592230748086755">"Нататкі"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"На планшэце няма фатаграфій."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"На тэлефоне няма даступных малюнкаў."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Фота кантакта"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Імя карыстальніцкага цэтліка"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Адпраўляць выклікі непасрэдна на галасавую пошту"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Выдаліць фота"</string>
-    <string name="noContacts" msgid="8579310973261953559">"Няма кантактаў."</string>
-    <string name="noGroups" msgid="8614664663561385253">"Няма груп."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Для стварэння групы патрабуецца ўліковы запіс."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"У гэтай групе няма карыстальнiкаў."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Каб дадаць, змянiце групу."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Захаванне кантакту..."</string>
-    <string name="contactSavedToast" msgid="7152589189385441091">"Кантакт захаваны."</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Немагчыма захаваць змены кантакта."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Група захаваная."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Немагчыма захаваць змены групы."</string>
-  <plurals name="listTotalPhoneContacts">
-    <item quantity="one" msgid="3015357862286673986">"1 кантакт з нумарам тэлефона"</item>
-    <item quantity="other" msgid="3299954047880968205">"Кантактаў з нумарамі тэлефонаў: <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Няма кантактаў з нумарамі тэлефонаў"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 кантакт"</item>
-    <item quantity="other" msgid="3578469907265375314">"Кантактаў: <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
-  <plurals name="listFoundAllContacts">
-    <item quantity="one" msgid="5517063038754171134">"знойдзены 1"</item>
-    <item quantity="other" msgid="3852668542926965042">"Знойдзеныя: <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Кантактаў няма"</string>
-  <plurals name="searchFoundContacts">
-    <item quantity="one" msgid="4826918429708286628">"знойдзены 1"</item>
-    <item quantity="other" msgid="7988132539476575389">"Знойдзеныя: <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Усе кантакты"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Групы"</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="menu_share" msgid="943789700636542260">"Апублікаваць"</string>
-    <string name="share_via" msgid="563121028023030093">"Апублікаваць кантакт з дапамогай"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Стварыць групу ва ўліковым запісе"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"Галасавы чат"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Відэачат"</string>
-    <string name="connections" msgid="8098440723172028350">"Сувяз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>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="use_photo_as_primary" msgid="8807110122951157246">"Выкарыстоўваць гэтую фатаграфію"</string>
-    <string name="contact_read_only" msgid="7421346527289472273">"Не рэдагуецца гэтым прыкладаннем."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Для гэтага кантакта няма дадатковай інфармацыі."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Нельга рэдагаваць на гэтай прыладзе."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Сартаваць спіс па"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Імя"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Прозвішча"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Прагляд імёнаў кантактаў"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Спачатку імя"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Спачатку прозвішча"</string>
-    <string name="take_photo" msgid="7496128293167402354">"Зрабіць фота"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Зрабiце новую фатаграфію"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Выберыце фатаграфію з галерэі"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Выберыце новую фатаграфію з Галерэі"</string>
-    <string name="locale_change_in_progress" msgid="7583992153091537467">"Абнаўляецца спіс кантактаў для адлюстравання змены мовы."</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Спiс кантактаў абнаўляецца."</string>
-    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Кантакты зараз абнаўляюцца. \n\nПрацэс абнаўлення патрабуе прыкладна <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> Мб унутранай памяці.\n\nВыберыце адзін з наступных варыянтаў."</string>
-    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Выдаліць ​​некаторыя прыкладанні"</string>
-    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Паўтарыць абнаўленне"</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_field" msgid="2384260056674995230">"Дадаць яшчэ адно поле"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Дадаць новы"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Дадаць арганізацыю"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Дата"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Назва групы"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"праз <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> праз <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
-    <string name="description_star" msgid="2605854427360036550">"выбранае"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Рэдагаваць кантакт"</string>
-  <plurals name="merge_info">
-    <item quantity="one" msgid="148365587896371969">"не аб\'яднаны"</item>
-    <item quantity="other" msgid="425683718017380845">"аб\'яднаныя з розных крыніц (<xliff:g id="COUNT">%0$d</xliff:g>)"</item>
-  </plurals>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"Аб\'яднаць бягучы кантакт з выбраным кантактам?"</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="toast_making_personal_copy" msgid="288549957278065542">"Стварэнне асабістай копіі..."</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Карыстальніцкі"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"Налады"</string>
-    <string name="menu_settings" msgid="377929915873428211">"Налады"</string>
-    <string name="menu_help" msgid="5123887102216637725">"Даведка"</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="7356532842767854606">"Показваць год"</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="7911101713860139754">"Увайсці ва ўліковы запіс"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Імпартаваць кантакты"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Стварыць новую групу"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Стварыць новую групу"</string>
-  <plurals name="num_groups_in_account">
-    <item quantity="one" msgid="2944819210288517794">"1 група"</item>
-    <item quantity="other" msgid="1276758425904917367">"Груп: <xliff:g id="COUNT">%0$d</xliff:g>"</item>
-  </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Выдаліць групу \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Кантакты не будуць выдалены.)"</string>
-  <plurals name="num_contacts_in_group">
-    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="COUNT_0">%1$d</xliff:g> чал. з <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
-    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="COUNT_0">%1$d</xliff:g> чал. з <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
-  </plurals>
-  <plurals name="group_list_num_contacts_in_group">
-    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> чал."</item>
-    <item quantity="other" msgid="6251996206137048525">"Людзей: <xliff:g id="COUNT">%1$d</xliff:g>"</item>
-  </plurals>
-    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Перад аб\'яднаннем з іншым кантактам увядзіце імя кантакта."</string>
-    <string name="copy_text" msgid="3257145021583508761">"Скапіраваць у буфер абмену"</string>
-    <string name="set_default" msgid="4417505153468300351">"Усталяваць па змаўчанні"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Скінуць налады па змаўчанні"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"Тэкст скапіяваны"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Адмяніць змены?"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Наладзіць мой профіль"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Тып імя чалавека"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Назва групы"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"Мой лакальны профіль"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"Мой профіль у <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Адлюстраванне ўсіх кантактаў"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Прыкладанне People лепш працуе з уліковым запісам Google.\n\n•Доступ да яго можна атрымаць з любога вэб-браўзэра\n•Выканайце рэзервовае капіяванне сваiх кантактаў."</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="8669032699767375976">"Ваш новы кантакт будзе сінхранізаваны з улiковым запiсам <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Вы можаце сінхранізаваць новы кантакт з адным з наступных улiковых запiсаў. Якi вы хочаце выкарыстоўваць?"</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="contact_detail_picture_description" msgid="6083230522651287030">"Выява. Выберыце, каб змяніць"</string>
-</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 948ec30..cb42ac1 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Хора"</string>
+    <string name="people" msgid="1190841469952343354">"Контакти"</string>
     <string name="contactsList" msgid="8661624236494819731">"Контакти"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Контакт"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Директно набиране"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Избор на номер за обаждане"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Избор на номер за изпращане на съобщение"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Избор на контакт"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Избиране на нов контакт"</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="viewContactDesription" msgid="214186610887547860">"Преглед на контакт"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Редактиране на контакт"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Създаване на контакт"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Редактиране на групата"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Поставяне на началния екран"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Този контакт съдържа информация от няколко профила. Тази от профили само за четене ще бъде скрита, а не изтрита."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Изтриването на този контакт ще премахна информация от няколко профила."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Този контакт ще бъде изтрит."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Отхвърляне"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Отхвърляне на промените"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Контактът не съществува."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Приспособлението за контакти е добавено към началния екран."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Създаване на нов контакт"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> контакта с телефонни номера"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Няма контакти с телефонни номера"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 контакт"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> контакта"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 намерен"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> намерени"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 намерен"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> намерени"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Всички контакти"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Групи"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Всички контакти"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Любими"</string>
     <string name="callBack" msgid="5498224409038809224">"Обратно обаждане"</string>
     <string name="callAgain" msgid="3197312117049874778">"Повторно обаждане"</string>
     <string name="returnCall" msgid="8171961914203617813">"Отговаряне на обаждане"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> от <xliff:g id="TOTAL_NUMBER">%s</xliff:g> контакта"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Имена на контактите ви"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Не бе намерено приложение за извършване на това действие."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Кликнете за връщане към предишния екран"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Добавяне на телефонен номер"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Добавяне на имейл"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Не бе намерено приложение за извършване на това действие."</string>
     <string name="menu_share" msgid="943789700636542260">"Споделяне"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Добавяне към контактите"</string>
     <string name="share_via" msgid="563121028023030093">"Споделяне на контакт чрез"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Създаване на група в профил"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Гласов разговор"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Използване на тази снимка"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Не може да се редактира от приложението."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Няма допълнителна информация за този контакт."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Не може да се редактира на това у-во."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Подреждане на списък по"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Собствено име"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Фамилия"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Преглед на имената на контактите"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Първо собственото име"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Първо фамилията"</string>
     <string name="take_photo" msgid="7496128293167402354">"Снимане"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Заснемане на нова снимка"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Избор на снимка от галерията"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Избор на нова снимка от галерията"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Избор на снимка"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Избор на нова снимка"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Списъкът с контакти се актуализира, за да отрази промяната на езика."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Списъкът с контакти се актуализира."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Контактите се надстройват. \n\nПроцесът се нуждае от приблизително <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> МБ вътрешно хранилище.\n\nИзберете една от следните опции:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Организация: Добавяне"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Дата"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Име на групата"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"чрез <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> чрез <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"любимо"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Редактиране на контакта"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Създава се лично копие..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"По избор"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Настройки"</string>
     <string name="menu_settings" msgid="377929915873428211">"Настройки"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Моят локален потр. профил"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Потр. ми профил <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Показват се всички контакти"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Приложението Хора работи по-добре с профил в Google.\n\n• Осъществявайте достъп от всеки уеб браузър.\n• Създавайте надеждни резервни копия на контактите си."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Приложението Контакти работи по-добре с профил в Google.\n\n• Осъществявайте достъп от всеки уеб браузър.\n• Създавайте сигурни резервни копия на контактите си."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Погрижете се за безопасността на контактите си, ако загубите своя телефон: синхронизирайте с онлайн услуга."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Добавяне на профил"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"За новия ви контакт няма да бъде създадено резервно копие. Да се добави ли профил, в който да се създават такива копия на контактите онлайн?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Новият ви контакт ще бъде синхронизиран със: <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Можете да синхронизирате новия си контакт с един от следните профили. Кой от тях искате да използвате?"</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="contact_detail_picture_description" msgid="6083230522651287030">"Снимка. Изберете, за да промените"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"добавяне на нов контакт"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Преглед на още"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Преглед на по-малко"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Преглед на всичко"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Скорошни"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Информация"</string>
+    <string name="send_message" msgid="8938418965550543196">"Изпращане на съобщение"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Създава се лично копие..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Вчера"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Утре"</string>
+    <string name="today" msgid="8041090779381781781">"Днес"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Днес от <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Утре от <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Неозаглавено събитие)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Задаване"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"Незабавно съобщение"</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="content_description_directions" msgid="2686791825798189335">"упътвания до местоположението"</string>
 </resources>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
new file mode 100644
index 0000000..2086a16
--- /dev/null
+++ b/res/values-bn-rBD/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"পরিচিতিগুলি"</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="contactPickerActivityTitle" msgid="4301062192337417640">"একটি পরিচিতি চয়ন করুন"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"নতুন পরিচিতি নির্বাচন করুন"</string>
+    <string name="starredList" msgid="4817256136413959463">"তারকা চিহ্নিত"</string>
+    <string name="frequentList" msgid="7154768136473953056">"ঘন ঘন"</string>
+    <string name="strequentList" msgid="5640192862059373511">"পছন্দগুলি"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"পরিচিতির বিবরণগুলি"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"পরিচিতি সম্পাদনা করুন"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"পরিচিতি তৈরি করুন"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"গোষ্ঠী সম্পাদনা করুন"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"গোষ্ঠী তৈরি করুন"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"সম্পর্কে"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"আপডেটগুলি"</string>
+    <string name="searchHint" msgid="8482945356247760701">"পরিচিতিগুলি খুঁজুন"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"পরিচিতি দেখুন"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"পছন্দগুলিতে জুড়ুন"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"পছন্দসই থেকে সরান"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"পছন্দসই থেকে সরানো হয়েছে"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"পছন্দসই এ জোড়া হয়েছে"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"সম্পাদনা করুন"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"মুছুন"</string>
+    <string name="menu_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="8368636463748691868">"পৃথক"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"সম্পাদনা করুন"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"মুছুন"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"পরিচিতি যুক্ত করুন"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"গোষ্ঠী যোগ করুন"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"পরিচিতি বিভক্ত করবেন?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"এই পরিচিতি একাধিক পরিচিতিগুলির মধ্যে বিভক্ত করা হবে৷"</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"যুক্ত হন"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"পরিচিতিগুলিকে যোগ করুন"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"<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="7208148163607047389">"পরিচিতিগুলিকে যুক্ত করা হযেছে"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"রিংটোন সেট করুন"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ভয়েসমেলে সকল কল"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"আপনি শুধুমাত্র-পাঠযোগ্য অ্যাকাউন্টগুলির পরিচিতিগুলিকে মুছতে পারবেন না, কিন্তু আপনি আপনার পরিচিতি তালিকায় তাদের লুকিয়ে রাখতে পারেন৷"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"এই পরিচিতিটিতে একাধিক অ্যাকাউন্ট থেকে তথ্য উপস্থিত রয়েছে৷ শুধুমাত্র-পাঠযোগ্য অ্যাকাউন্টগুলির তথ্য আপনার পরিচিতিগুলির তালিকাতে লুকানো থাকবে,  মুছে ফেলা হবে না৷"</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"এই পরিচিতিটি মোছা হলে সেটি একাধিক অ্যাকাউন্ট থেকে তথ্য মুছবে৷"</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"এই পরিচিতিটিকে মুছে ফেলা হবে৷"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"পরিবর্তনগুলি খারিজ করুন"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"এই পরিচিতিটি বিদ্যমান নয়৷"</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"হোম স্ক্রীনে পরিচিতি উইজেট যোগ করা হযেছে৷"</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"নতুন পরিচিতি তৈরি করুন"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"নতুন পরিচিতি তৈরি করুন"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"সংগঠন"</item>
+    <item msgid="7196592230748086755">"টিকা"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ট্যাবলেটে কোনো ছবি উপলব্ধ নয়৷"</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ফোনে কোনো ছবি উপলব্ধ নয়৷"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"পরিচিতির ফটো"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"কাস্টম লেবেল নাম"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"কলগুলিকে সরাসরি ভয়েসমেলে পাঠান"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ফটো সরান"</string>
+    <string name="noContacts" msgid="8579310973261953559">"কোনো পরিচিতি নেই৷"</string>
+    <string name="noGroups" msgid="8614664663561385253">"কোনো গোষ্ঠী নেই৷"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"গোষ্ঠীগুলি তৈরি করার জন্য আপনার একটি অ্যাকাউন্টের প্রয়োজন৷"</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"এই গোষ্ঠীতে কেউ নেই৷"</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"কিছু যোগ করতে, গোষ্ঠী সম্পাদনা করুন৷"</string>
+    <string name="savingContact" msgid="4075751076741924939">"পরিচিতি সংরক্ষণ করা হচ্ছে…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"পরিচিতি সংরক্ষিত হয়েছে৷"</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"পরিচিতির পরিবর্তনগুলি সংরক্ষণ করা যায়নি৷"</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"গোষ্ঠী সংরক্ষিত হয়েছে৷"</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"গোষ্ঠীর পরিবর্তনগুলি সংরক্ষণ করা যায়নি৷"</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"ফোন নম্বর সহ ১টি পরিচিতি"</item>
+    <item quantity="other" msgid="3299954047880968205">"ফোন নম্বর সহ <xliff:g id="COUNT">%d</xliff:g>টি পরিচিতি"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ফোন নম্বর সহ কোনো পরিচিতি নেই"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"১টি খুঁজে পাওয়া গেছে"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g>টি খুঁজে পাওয়া গেছে"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"কোনো পরিচিতি নেই"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"১টি খুঁজে পাওয়া গেছে"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g>টি খুঁজে পাওয়া গেছে"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"সকল পরিচিতি"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"পছন্দসইগুলি"</string>
+    <string name="callBack" msgid="5498224409038809224">"কল ব্যাক করুন"</string>
+    <string name="callAgain" msgid="3197312117049874778">"আবার কল করুন"</string>
+    <string name="returnCall" msgid="8171961914203617813">"মিস হয়ে যওয়া নম্বরে পুনরায় কল করুন"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"পরিচিতিগুলিতে <xliff:g id="EMAIL">%s</xliff:g> যোগ করবেন?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"পরিচিতির ফটো"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"যোগ চিহ্ন"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="TOTAL_NUMBER">%s</xliff:g>টির মধ্যে <xliff:g id="CURRENT_NUMBER">%s</xliff:g>টি পরিচিতি"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"আপনার পরিচিতিগুলির নামগুলি"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"এই ক্রিয়াটিকে চালনা করার জন্য কোনো অ্যাপ্লিকেশান পাওয়া যায়নি৷"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"পূর্ববর্তী স্ক্রীনে প্রত্যাবর্তন করার জন্য ক্লিক করুন"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ফোন নম্বর জুড়ুন"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ইমেল জুড়ুন"</string>
+    <string name="missing_app" msgid="1466111003546611387">"এই ক্রিয়াটিকে চালনা করার জন্য কোনো অ্যাপ্লিকেশান পাওয়া যায়নি৷"</string>
+    <string name="menu_share" msgid="943789700636542260">"ভাগ করুন"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"পরিচিতিগুলিতে জুড়ুন"</string>
+    <string name="share_via" msgid="563121028023030093">"এর মাধ্যমে পরিচিতি ভাগ করুন"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"অ্যাকাউন্টের অধীনে গোষ্ঠী তৈরি করুন"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"ভয়েস চ্যাট"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ভিডিও চ্যাট"</string>
+    <string name="connections" msgid="8098440723172028350">"সংযোগগুলি"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"সংযোগ যোগ করুন"</string>
+    <string name="recent" msgid="2659189233141493004">"সাম্প্রতিক"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"সাম্প্রতিক আপডেটগুলি"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>টি পরিচিতি"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"এই ফটোটি ব্যবহার করুন"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"এই অ্যাপ্লিকেশন থেকে সম্পাদনাযোগ্য নয়৷"</string>
+    <string name="group_read_only" msgid="1061762906115697637">"এই ডিভাইসে সম্পাদনযোগ্য নয়৷"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ফটো তুলুন"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"নতুন ফটো তুলুন"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ফটো চয়ন করুন"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"নতুন ফটো নির্বাচন করুন"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"যোগাযোগ তালিকার ভাষা পরিবর্তন প্রতিফলিত করতে আপডেট করা হচ্ছে৷"</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"পরিচিতি তালিকা আপডেট করা হচ্ছে৷"</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"পরিচিতিগুলি আপগ্রেড হওয়ার প্রক্রিয়ায় রয়েছে৷ \n\nআপগ্রেড প্রক্রিয়াটির জন্য আনুমানিক <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB অভ্যন্তরীণ সঞ্চয়স্থানের প্রয়োজন৷\n\nনিম্নলিখিত যেকোনো একটি বিকল্প চয়ন করুন:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"কিছু অ্যাপ্লিকেশান আনইনস্টল করুন"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"পুনরায় আপগ্রেডের চেষ্টা করুন"</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_field" msgid="2384260056674995230">"আরেকটি ক্ষেত্র যোগ করুন"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"নতুন যোগ করুন"</string>
+    <string name="add_organization" msgid="7311893231158291197">"সংগঠন যোগ করুন"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"তারিখ"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"গোষ্ঠী নাম"</string>
+    <string name="description_star" msgid="2605854427360036550">"পছন্দসই"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"পরিচিতি সম্পাদনা করুন"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"মার্জ করা হয়নি"</item>
+    <item quantity="other" msgid="425683718017380845">"<xliff:g id="COUNT">%0$d</xliff:g>টি উৎস থেকে মার্জ করা হয়েছে"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"নির্বাচিত পরিচিতির সঙ্গে বর্তমান পরিচিতিগুলি যোগ করবেন?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"নির্বাচিত পরিচিতি সম্পাদনায় নিয়ে যাবেন? আপনার এ পর্যন্ত প্রবেশ করানো তথ্য অনুলিপি করা হবে৷"</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"আমার পরিচিতিগুলিতে অনুলিপি করুন"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"আমার পরিচিতিগুলিতে যুক্ত করুন"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"ডিরেক্টরি <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"কাস্টম"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"সেটিংস"</string>
+    <string name="menu_settings" msgid="377929915873428211">"সেটিংস"</string>
+    <string name="menu_help" msgid="5123887102216637725">"সহায়তা"</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="7356532842767854606">"বছর লিখুন"</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="7911101713860139754">"একটি অ্যাকাউন্টে সাইন ইন করুন"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"পরিচিতিগুলি আমদানি করুন"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"নতুন গোষ্ঠী তৈরি করুন"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"নতুন গোষ্ঠী তৈরি করুন"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"১টি গোষ্ঠী"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g>টি গোষ্ঠী"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"গোষ্ঠী \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" মুছবেন? (পরিচিতিগুলি নিজে থেকে মুছে যাবে না৷)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> থেকে <xliff:g id="COUNT_0">%1$d</xliff:g> জন"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> থেকে <xliff:g id="COUNT_0">%1$d</xliff:g> জন"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> জন"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> জন"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"অন্য একটির সাথে যোগ করার আগে পরিচিতির নাম লিখুন৷"</string>
+    <string name="copy_text" msgid="3257145021583508761">"ক্লিপবোর্ডে অনুলিপি করুন"</string>
+    <string name="set_default" msgid="4417505153468300351">"ডিফল্ট সেট করুন"</string>
+    <string name="clear_default" msgid="7193185801596678067">"ডিফল্ট সাফ করুন"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"পাঠ্য অনুলিপি হয়েছে"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"আপনার পরিবর্তনগুলি বাতিল করতে চান?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"আমার প্রোফাইল সেট আপ করুন"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"ব্যক্তির নাম লিখুন"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"গোষ্ঠীর নাম"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"আমার স্থানীয় প্রোফাইল"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"আমার <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> প্রোফাইল"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"সমস্ত পরিচিতি দেখানো হচ্ছে"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Google অ্যাকাউন্টের সাথে পরিচিতিগুলি ভাল কাজ করে।\n \n যে কোনো ওয়েব ব্রাউজার থেকে অ্যাক্সেস করুন।\n • নিরাপদভাবে আপনার পরিচিতিগুলির ব্যাক আপ নিন।"</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"আপনার ফোন হারিয়ে গেলেও আপনার পরিচিতিগুলিকে নিরাপদ রাখুন: একটি অনলাইন পরিষেবার সাথে সিংক্রোনাইজ করুন৷"</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"একটি অ্যাকাউন্ট যোগ করুন"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"আপনার নতুন পরিচিতিটির ব্যাকআপ নেওয়া হবে না৷ পরিচিতিগুলিকে অনলাইনে ব্যাকআপ নেওয়ার জন্য একটি অ্যাকাউন্ট যুক্ত করবেন?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"আপনার নতুন পরিচিতি <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> এর সাথে সিংক্রোনাইজ করা হবে৷"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"আপনি নিম্নলিখিত অ্যাকাউন্টগুলির মধ্যে যেকোনো একটির সাথে আপনার নতুন পরিচিতি সিংক্রোনাইজ করতে পারেন৷ আপনি কোনটি ব্যবহার করতে চান?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"নতুন পরিচিতি যোগ করুন"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"পরিচিতি সম্পাদনা করুন"</string>
+    <string name="keep_local" msgid="1258761699192993322">"স্থানীয় ভাবে রাখুন"</string>
+    <string name="add_account" msgid="8201790677994503186">"অ্যাকাউন্ট জুড়ুন"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"নতুন অ্যাকাউন্ট যোগ করুন"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"ডেটাবেস ফাইলগুলি রপ্তানি করুন"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"নতুন পরিচিতি যোগ করুন"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"আরো দেখুন"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"আরো কম"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"সবগুলো দেখুন"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"সাম্প্রতিক"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"সম্পর্কে"</string>
+    <string name="send_message" msgid="8938418965550543196">"বার্তা পাঠান"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"একটি ব্যক্তিগত প্রতিলিপি তৈরি করা হচ্ছে..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"গতকাল"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"আগামীকাল"</string>
+    <string name="today" msgid="8041090779381781781">"আজ"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"আজ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"আগামীকাল <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(শিরোনামহীন ইভেন্ট)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"সেট করুন"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"সংগঠন"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"ডাকনাম"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"টীকা"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"ওয়েবসাইট"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ইভেন্ট"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"সম্পর্ক"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"অবস্থান জানার দিকনির্দেশ"</string>
+</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 25bf946..d9041ec 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Persones"</string>
+    <string name="people" msgid="1190841469952343354">"Contactes"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contactes"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contacte"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Marcatge directe"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Tria un contacte"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Selecció d\'un contacte nou"</string>
     <string name="starredList" msgid="4817256136413959463">"Destacats"</string>
     <string name="frequentList" msgid="7154768136473953056">"Freqüent"</string>
     <string name="strequentList" msgid="5640192862059373511">"Preferits"</string>
     <string name="viewContactTitle" msgid="7989394521836644384">"Dades de contacte"</string>
-    <string name="viewContactDesription" msgid="214186610887547860">"Visualitza el contacte"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Edita el contacte"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Crea un contacte"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Edita el grup"</string>
@@ -40,9 +40,11 @@
     <string name="menu_viewContact" msgid="2795575601596468581">"Visualitza el contacte"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Afegeix als preferits"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Elimina dels preferits"</string>
+    <string name="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_create_contact_shortcut" msgid="1217971915748509640">"Posa-ho a la pantalla d\'inici"</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="8368636463748691868">"Separa"</string>
@@ -59,13 +61,13 @@
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contactes suggerits"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Tots els contactes"</string>
     <string name="contactsJoinedMessage" msgid="7208148163607047389">"Contactes units"</string>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Est. to trucada"</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="7808825687289848259">"No pots suprimir cap contacte dels comptes de només lectura, però pots amagar-los a les llistes de contactes."</string>
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Aquest contacte inclou informació de diversos comptes. La informació dels comptes només de lectura s\'ocultarà a les llistes de contactes, però no se suprimirà."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Si suprimiu aquest contacte se suprimirà informació de diversos comptes."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Aquest contacte se suprimirà."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Descarta"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Descarta els canvis"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"El contacte no existeix."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"El widget de contacte s\'ha afegit a la pantalla d\'inici."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Crea un contacte nou"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> contactes amb números de telèfon"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"No hi ha cap contacte amb número de telèfon"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 contacte"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> contactes"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 contacte"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> contactes"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 contacte"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> contactes"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Tots els contactes"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grups"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Tots contactes"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Preferits"</string>
     <string name="callBack" msgid="5498224409038809224">"Torna la trucada"</string>
     <string name="callAgain" msgid="3197312117049874778">"Torna a trucar"</string>
     <string name="returnCall" msgid="8171961914203617813">"Retorna la trucada"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contactes"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Noms dels contactes"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"No s\'ha trobat cap aplicació per processar aquesta acció."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Fes clic per tornar a la pantalla anterior"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Afegeix un número de telèfon."</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Afegeix una adreça electrònica."</string>
+    <string name="missing_app" msgid="1466111003546611387">"No s\'ha trobat cap aplicació per processar aquesta acció."</string>
     <string name="menu_share" msgid="943789700636542260">"Comparteix"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Afegeix als contactes"</string>
     <string name="share_via" msgid="563121028023030093">"Comparteix el contacte mitjançant"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Creació d\'un grup al compte"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Xat de veu"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Utilitza aquesta foto"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"No es pot editar des d\'aquesta aplicació."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"No hi ha informació addicional per a aquest contacte."</string>
     <string name="group_read_only" msgid="1061762906115697637">"No es pot editar en aquest dispositiu."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Ordena la llista per"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Nom"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Cognom"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Mostra els noms dels contactes"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Nom primer"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Cognoms primer"</string>
     <string name="take_photo" msgid="7496128293167402354">"Fes una foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Fes una foto nova"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Selecciona una foto de la galeria"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Selecciona una foto nova de la galeria"</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="locale_change_in_progress" msgid="7583992153091537467">"S\'actualitza la llista de contactes per reflectir el canvi d\'idioma."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"S\'actualitza la llista de contactes."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"S\'estan actualitzant els contactes. \n\nEl procés d\'actualització requereix aproximadament <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB de l\'emmagatzematge intern.\n\nTria una de les opcions següents:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Afegeix organització"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nom del grup"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"mitjançant <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> mitjançant <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"preferit"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Edita el contacte"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"S\'està creant una còpia personal..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Personalitzada"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Configuració"</string>
     <string name="menu_settings" msgid="377929915873428211">"Configuració"</string>
@@ -181,7 +174,7 @@
     <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-ho als contactes"</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>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"El meu perfil local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"El meu perfil de <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"S\'estan mostrant tots els contactes"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Contactes funciona millor amb un Compte de Google.\n\n• Accedeix-hi des de qualsevol navegador web.\n• Fes una còpia de seguretat dels teus contactes."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"La funció Contactes funciona millor amb un compte de Google.\n\n• Accedeix-hi des de qualsevol navegador.\n• Fes còpies de seguretat dels contactes de manera segura."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mantén els contactes segurs encara que perdis el telèfon: sincronitza\'ls amb un servidor en línia."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Afegeix un compte"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"No es farà una còpia de seguretat del teu contacte nou. Vols afegir un compte que faci còpies de seguretat dels contactes en línia?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"El teu contacte nou se sincronitzarà amb <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Pots sincronitzar el teu contacte nou amb un dels comptes següents. Quin vols utilitzar?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Afegir un contacte"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editar un contacte"</string>
     <string name="keep_local" msgid="1258761699192993322">"Conserva localment"</string>
     <string name="add_account" msgid="8201790677994503186">"Afegeix un compte"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Afegeix un compte nou"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Exporta els fitxers de la base de dades"</string>
-    <string name="contact_detail_picture_description" msgid="6083230522651287030">"Imatge. Selecciona-la per canviar-la"</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 el missatge"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"S\'està creant una còpia personal..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Ahir"</string>
+    <string name="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">"Configura"</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="content_description_directions" msgid="2686791825798189335">"indicacions cap a la ubicació"</string>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 801a4a0..30d4d71 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Lidé"</string>
+    <string name="people" msgid="1190841469952343354">"Kontakty"</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>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Vyberte kontakt"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Výběr nového kontaktu"</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="viewContactDesription" msgid="214186610887547860">"Zobrazit kontakt"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Upravit kontakt"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Vytvořit kontakt"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Upravit skupinu"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Umístit na plochu"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Tento kontakt obsahuje informace z několika účtů. Informace z účtů pouze pro čtení budou v seznamech kontaktů skryty, ale nebudou smazány."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Smazáním tohoto kontaktu smažete informace z více účtů."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Tento kontakt bude smazán."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Zahodit"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Zahodit změny"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt neexistuje."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Widget Kontakt byl přidán na plochu."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Vytvořit nový kontakt"</string>
@@ -86,7 +88,7 @@
     <string name="emptyGroup" msgid="7502116218697177370">"Skupina nemá žádné členy."</string>
     <string name="addPeopleToGroup" msgid="7879585947222263516">"Chcete-li někoho přidat, upravte skupinu."</string>
     <string name="savingContact" msgid="4075751076741924939">"Ukládání kontaktu…"</string>
-    <string name="contactSavedToast" msgid="7152589189385441091">"Kontakt byl uložen."</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"Kontakt byl uložen"</string>
     <string name="contactSavedErrorToast" msgid="3207250533172944892">"Změny kontaktů nelze uložit."</string>
     <string name="groupSavedToast" msgid="1168756874239833756">"Skupina byla uložena."</string>
     <string name="groupSavedErrorToast" msgid="7984466936615304740">"Změny skupiny nelze uložit."</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"Kontakty s telefonními čísly: <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ke kontaktům nejsou přiřazena žádná telefonní čísla"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 kontakt"</item>
-    <item quantity="other" msgid="3578469907265375314">"Kontakty: <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"Nalezeno: 1"</item>
     <item quantity="other" msgid="3852668542926965042">"Nalezeno: <xliff:g id="COUNT">%d</xliff:g>"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"Nalezeno: 1"</item>
     <item quantity="other" msgid="7988132539476575389">"Nalezeno: <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Všechny kontakty"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Skupiny"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Všechny kontakty"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Oblíbené"</string>
     <string name="callBack" msgid="5498224409038809224">"Zavolat zpět"</string>
     <string name="callAgain" msgid="3197312117049874778">"Zavolat znovu"</string>
     <string name="returnCall" msgid="8171961914203617813">"Zpětné volání"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> z <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontaktů"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Jména vašich kontaktů"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Aplikace potřebná k provedení této akce nebyla nalezena."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliknutím se vrátíte na předchozí obrazovku"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Přidat telefonní číslo"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Přidat e-mail"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Aplikace potřebná k provedení této akce nebyla nalezena."</string>
     <string name="menu_share" msgid="943789700636542260">"Sdílet"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Přidat do kontaktů"</string>
     <string name="share_via" msgid="563121028023030093">"Sdílet kontakt pomocí"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Vytvořit skupinu v účtu"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Hlasový chat"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Použít tuto fotografii"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Nelze upravit v této aplikaci."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"U tohoto kontaktu nejsou uvedeny dodatečné informace."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Nelze upravit v tomto zařízení."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Seřadit seznam podle"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Křestní jméno"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Příjmení"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Zobrazit jména kontaktů"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Nejprve křestní jméno"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Nejprve příjmení"</string>
     <string name="take_photo" msgid="7496128293167402354">"Vyfotit"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Pořídit novou fotografii"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Vybrat fotografii z Galerie"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Vybrat novou fotografii z Galerie"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Vybrat fotku"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Vybrat novou fotku"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Probíhá aktualizace seznamu kontaktů související se změnou jazyka."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Probíhá aktualizace seznamu kontaktů."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Probíhá upgrade kontaktů. \n\nUpgrade vyžaduje přibližně <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB interní paměti.\n\nZvolte jednu z následujících možností:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Přidat organizaci"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Název skupiny"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"pomocí služby <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> prostřednictvím služby <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"oblíbené"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Upravit kontakt"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Vytváření osobní kopie..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Vlastní"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Nastavení"</string>
     <string name="menu_settings" msgid="377929915873428211">"Nastavení"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Můj místní profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Můj profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Zobrazují se všechny kontakty"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Služba Lidé funguje lépe s účtem Google.\n\n• Můžete k ní přistupovat z libovolného webového prohlížeče\n• Kontakty lze bezpečně zálohovat."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"S účtem Google fungují Kontakty lépe:\n\n• Je k nim možné přistupovat z každého webového prohlížeče.\n• Bezpečně se zálohují."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mějte kontakty v bezpečí, i když telefon ztratíte: synchronizujte je s některou online službou."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Přidat účet"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Nový kontakt nebude zálohován. Chcete přidat účet pro zálohování kontaktů online?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Nový kontakt bude synchronizován s účtem <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Nový kontakt můžete synchronizovat s jedním z následujících účtů. Který z nich chcete použít?"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Nový kontakt můžete synchronizovat s jedním z následujících účtů. Který z nich chcete použít?"</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="keep_local" msgid="1258761699192993322">"Zachovat jako místní"</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="contact_detail_picture_description" msgid="6083230522651287030">"Chcete-li obrázek změnit, vyberte jej"</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="6137651078366797938">"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="content_description_directions" msgid="2686791825798189335">"trasy k místům"</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 603cc38..ce8ea91 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Personer"</string>
+    <string name="people" msgid="1190841469952343354">"Kontaktpersoner"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakter"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direkte opkald"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Vælg en kontaktperson"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Vælg en ny kontaktperson"</string>
     <string name="starredList" msgid="4817256136413959463">"Stjernemarkerede"</string>
     <string name="frequentList" msgid="7154768136473953056">"Ofte"</string>
     <string name="strequentList" msgid="5640192862059373511">"Favorit"</string>
     <string name="viewContactTitle" msgid="7989394521836644384">"Kontaktoplysninger"</string>
-    <string name="viewContactDesription" msgid="214186610887547860">"Vis kontakt"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Rediger kontakt"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Opret kontakt"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Rediger gruppe"</string>
@@ -40,6 +40,8 @@
     <string name="menu_viewContact" msgid="2795575601596468581">"Vis kontakt"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Føj til favoritter"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Fjern fra favoritter"</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_create_contact_shortcut" msgid="1217971915748509640">"Placer på startskærmen"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Denne kontakt indeholder oplysninger fra flere konti. Oplysningerne fra skrivebeskyttede konti vil blive skjult i dine lister over kontakter, men ikke slettet."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Sletning af denne kontakt sletter oplysninger fra flere konti."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Denne kontakt slettes."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Kassér"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Kassér ændringer"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontaktpersonen findes ikke."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Kontaktwidgetten føjes til startskærmen."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Opret ny kontakt"</string>
@@ -78,7 +80,7 @@
     <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 voicemail"</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="8579310973261953559">"Der er ingen kontakter."</string>
     <string name="noGroups" msgid="8614664663561385253">"Ingen grupper."</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<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="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 kontaktperson"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> kontaktpersoner"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 fundet"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> fundet"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 fundet"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> fundet"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Alle kontaktpersoner"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grupper"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Alle kontakter"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritter"</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>
@@ -119,7 +117,12 @@
     <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 mobiltelefonnummer"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Tilføj e-mail"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Der blev ikke fundet nogen app, der kan håndtere denne handling."</string>
     <string name="menu_share" msgid="943789700636542260">"Del"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Føj til kontaktpersoner"</string>
     <string name="share_via" msgid="563121028023030093">"Del kontakt via"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Opret gruppe på konto"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Talechat"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Brug dette billede"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Kan ikke redigeres fra denne app."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Der er ikke flere oplysninger om denne kontaktperson."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Kan ikke redigeres på denne enhed."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Sorter liste efter"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Fornavn"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Efternavn"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Se kontaktnavne"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Fornavn først"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Efternavn først"</string>
     <string name="take_photo" msgid="7496128293167402354">"Tag billede"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Tag nyt billede"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Vælg billede fra Galleri"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Vælg nyt billede fra Galleri"</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="locale_change_in_progress" msgid="7583992153091537467">"Listen over kontaktpersoner opdateres for at afspejle det nye sprog."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Listen over kontaktpersoner opdateres."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Kontaktpersonerne er ved at blive opgraderet. \n\nOpgraderingen kræver ca. <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB intern lagerplads.\n\nVælg et af følgende:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Tilføj organisation"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Dato"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Gruppenavn"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"foretrukken"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Rediger kontaktperson"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Opretter en privat kopi..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Tilpasset"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Indstillinger"</string>
     <string name="menu_settings" msgid="377929915873428211">"Indstillinger"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Min lokale profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Min <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>-profil"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Viser alle kontaktpersoner"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Personer fungerer bedre med en Google-konto.\n\n• Få adgang fra enhver webbrowser.\n• Sikkerhedskopier dine kontaktpersoner sikkert."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Kontaktpersoner fungerer bedre med en Google-konto.\n\n• Få adgang fra enhver webbrowser. \n• Sikkerhedskopiér dine kontaktpersoner på sikker vis."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Behold dine kontaktpersoner, selv hvis du mister din telefon: Synkroniser med en onlinetjeneste."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Tilføj en konto"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Din nye kontaktperson bliver ikke sikkerhedskopieret. Vil du tilføje en konto, der sikkerhedskopierer kontaktpersoner online?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Din nye kontaktperson vil blive synkroniseret med <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Du kan synkronisere din nye kontaktperson med en af de ​​følgende konti. Hvilken vil du bruge?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Tilføj ny kontaktperson"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Rediger kontaktperson"</string>
     <string name="keep_local" msgid="1258761699192993322">"Gem lokalt"</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="contact_detail_picture_description" msgid="6083230522651287030">"Billede. Vælg for at ændre"</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="6137651078366797938">"Opretter en 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">"(Ikke-navngiven begivenhed)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Indstil"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"Chatbesked"</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="content_description_directions" msgid="2686791825798189335">"rutevejledning til placering"</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 3331f2b..c582aef 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Kontakte"</string>
+    <string name="people" msgid="1190841469952343354">"Kontakte"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakte"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direktwahl"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Kontakt auswählen"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Neuen Kontakt auswählen"</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="viewContactDesription" msgid="214186610887547860">"Kontakt anzeigen"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Kontakt bearbeiten"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Kontakt erstellen"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Gruppe bearbeiten"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Auf Startbildschirm platzieren"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Dieser Kontakt enthält Informationen aus mehreren Konten. Informationen aus schreibgeschützten Konten werden nicht gelöscht, sondern in Ihren Kontaktlisten ausgeblendet."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Wenn Sie diesen Kontakt löschen, werden Informationen aus mehreren Konten gelöscht."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Dieser Kontakt wird gelöscht."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Verwerfen"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Änderungen verwerfen"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Dieser Kontakt existiert nicht."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Kontakt-Widget zum Startbildschirm hinzugefügt"</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Neuen Kontakt erstellen"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> Kontakte mit Telefonnummern"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Keine sichtbaren Kontakte mit Telefonnummern"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 Kontakt"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> Kontakte"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 gefunden"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> gefunden"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 gefunden"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> gefunden"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Alle Kontakte"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Gruppen"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Alle Kontakte"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoriten"</string>
     <string name="callBack" msgid="5498224409038809224">"Rückruf"</string>
     <string name="callAgain" msgid="3197312117049874778">"Erneut anrufen"</string>
     <string name="returnCall" msgid="8171961914203617813">"Zurückrufen"</string>
@@ -119,7 +117,12 @@
     <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">"Klicken Sie hier, um zum vorherigen Bildschirm zurückzukehren."</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Telefonnummer hinzufügen"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"E-Mail-Adresse hinzufügen"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Für diese Aktion wurde keine App gefunden."</string>
     <string name="menu_share" msgid="943789700636542260">"Teilen"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Zu Kontakten hinzufügen"</string>
     <string name="share_via" msgid="563121028023030093">"Kontakt teilen über"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Konto für Gruppenerstellung"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Sprach-Chat"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Dieses Foto verwenden"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"In dieser App nicht bearbeitbar"</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Keine Zusatzinformationen zu diesem Kontakt"</string>
     <string name="group_read_only" msgid="1061762906115697637">"Auf diesem Gerät nicht bearbeitbar"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Liste sortieren nach"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Vorname"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Nachname"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Kontaktnamen anzeigen"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Vorname zuerst"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Nachname zuerst"</string>
     <string name="take_photo" msgid="7496128293167402354">"Foto machen"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Neues Foto aufnehmen"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Foto aus Galerie auswählen"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Neues Foto aus Galerie auswählen"</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="locale_change_in_progress" msgid="7583992153091537467">"Kontaktliste wird an die geänderte Sprache angepasst..."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Kontaktliste wird aktualisiert..."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Kontakte werden gerade aktualisiert. \n\nDas Upgrade erfordert etwa <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB des internen Speichers.\n\nWählen Sie eine der folgenden Optionen:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Unternehmen hinzufügen"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Gruppenname"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"über <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> über <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"Favorit"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Kontakt bearbeiten"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Persönliche Kopie wird erstellt..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Benutzerdefiniert"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Einstellungen"</string>
     <string name="menu_settings" msgid="377929915873428211">"Einstellungen"</string>
@@ -214,20 +207,45 @@
     <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Sollen die Änderungen verworfen werden?"</string>
     <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
     <string name="profile_display_name" msgid="4127389543625918771">"Mein Profil einrichten"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Name der Person eingeben"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"Namen der Person eingeben"</string>
     <string name="group_name_hint" msgid="238359485263401293">"Gruppenname"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Mein lokales Profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mein <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>-Profil"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Alle Kontakte werden angezeigt."</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Die Personenfunktion funktioniert besser mit einem Google-Konto.\n\n• Zugriff über einen beliebigen Browser\n• Sichern von Kontakten mit Schutzfunktion"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Die App \"Kontakte\" funktioniert am besten mit einem Google-Konto.\n\n• Sie können über alle Webbrowser darauf zugreifen.\n• Sichern und schützen Sie Ihre Kontakte."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Synchronisierung mit einem Online-Service: Ihre Kontakte sind dann auch sicher, wenn Sie Ihr Telefon verlieren."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Konto hinzufügen"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Ihr neuer Kontakt wird nicht gesichert. Konto für die Online-Sicherung von Kontakten hinzufügen?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Ihr neuer Kontakt wird mit <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> synchronisiert."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Sie können Ihren neuen Kontakt mit einem der folgenden Konten synchronisieren. Welches möchten Sie verwenden?"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Sie können Ihren neuen Kontakt mit einem der folgenden Konten synchronisieren. Welches Konto möchten Sie verwenden?"</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="keep_local" msgid="1258761699192993322">"Lokal speichern"</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="contact_detail_picture_description" msgid="6083230522651287030">"Bild. Zum Ändern auswählen"</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="6137651078366797938">"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">"Nickname"</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="content_description_directions" msgid="2686791825798189335">"Wegbeschreibung"</string>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 1ef4817..2ed8f38 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Άτομα"</string>
+    <string name="people" msgid="1190841469952343354">"Επαφές"</string>
     <string name="contactsList" msgid="8661624236494819731">"Επαφές"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Επαφή"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Άμεση κλήση"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Επιλογή ενός αριθμού για κλήση"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Επιλογή ενός αριθμού για μήνυμα"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Επιλέξτε μια επαφή"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Επιλογή νέας επαφής"</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="viewContactDesription" msgid="214186610887547860">"Προβολή επαφής"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Επεξεργασία επαφής"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Δημιουργία επαφής"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Επεξεργασία ομάδας"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Τοποθέτηση στην αρχική οθόνη"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Αυτή η επαφή περιέχει πληροφορίες από πολλούς λογαριασμούς. Θα γίνει απόκρυψη και όχι διαγραφή των πληροφοριών που προέρχονται από λογαριασμούς μόνο για ανάγνωση στις λίστες επαφών σας."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Εάν διαγράψετε αυτήν την επαφή, θα γίνει διαγραφή των πληροφοριών από πολλούς λογαριασμούς."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Αυτή η επαφή θα διαγραφεί."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Απόρριψη"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Απόρριψη αλλαγών"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Η επαφή δεν υπάρχει."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Το γραφικό στοιχείο επαφών προστέθηκε στην αρχική οθόνη."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Δημιουργία νέας επαφής"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> επαφές με αριθμούς τηλεφώνου"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Δεν υπάρχουν επαφές με αριθμούς τηλεφώνου"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 επαφή"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> επαφές"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"Βρέθηκε 1"</item>
     <item quantity="other" msgid="3852668542926965042">"Βρέθηκαν <xliff:g id="COUNT">%d</xliff:g>"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"Βρέθηκε 1"</item>
     <item quantity="other" msgid="7988132539476575389">"Βρέθηκαν <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Όλες οι επαφές"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Ομάδες"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Όλες οι επαφές"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Αγαπημένα"</string>
     <string name="callBack" msgid="5498224409038809224">"Επανάκληση"</string>
     <string name="callAgain" msgid="3197312117049874778">"Επανάληψη κλήσης"</string>
     <string name="returnCall" msgid="8171961914203617813">"Επιστροφή κλήσης"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> από <xliff:g id="TOTAL_NUMBER">%s</xliff:g> επαφές"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Ονόματα των επαφών σας"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Δεν βρέθηκε εφαρμογή για τη διαχείριση αυτής της ενέργειας."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Κάντε κλικ για να επιστρέψετε στην προηγούμενη οθόνη"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Προσθήκη αριθμού τηλεφώνου"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Προσθήκη email"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Δεν βρέθηκε εφαρμογή για τη διαχείριση αυτής της ενέργειας."</string>
     <string name="menu_share" msgid="943789700636542260">"Κοινή χρήση"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Προσθήκη στις επαφές"</string>
     <string name="share_via" msgid="563121028023030093">"Κοινή χρήση μέσω"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Δημιουργία ομάδας στο λογαριασμό"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Φωνητική συνομιλία"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Χρήση αυτής της φωτογραφίας"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Αδυναμία επεξεργασ. από αυτήν την εφαρμ."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Δεν υπάρχουν πρόσθετες πληροφορίες για αυτήν την επαφή."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Αδυναμία επεξεργασίας στη συσκευή."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Ταξινόμηση λίστας κατά"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Όνομα"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Επίθετο"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Προβολή ονομάτων επαφών"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Πρώτα το όνομα"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Πρώτα το επίθετο"</string>
     <string name="take_photo" msgid="7496128293167402354">"Λήψη φωτογραφίας"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Λήψη νέας φωτογραφίας"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Επιλογή φωτογραφιών από τη Συλλογή"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Επιλογή νέας φωτογραφίας από το Gallery"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Επιλογή φωτογραφίας"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Επιλογή νέας φωτογραφίας"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Γίνεται ενημέρωση της λίστας επαφών για να αντικατοπτριστεί η αλλαγή γλώσσας."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Γίνεται ενημέρωση της λίστας επαφών."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Γίνεται αναβάθμιση των επαφών. \n\nΗ διαδικασία αναβάθμισης απαιτεί περίπου <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB από τον εσωτερικό χώρο αποθήκευσης.\n\nΟρίστε μία από τις παρακάτω επιλογές:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Προσθήκη οργανισμού"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Ημερομηνία"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Όν. ομάδ."</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"μέσω <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> μέσω <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"αγαπημένο"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Επεξεργασία επαφής"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Δημιουργία προσωπικού αντιγράφου..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Προσαρμοσμένη"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Ρυθμίσεις"</string>
     <string name="menu_settings" msgid="377929915873428211">"Ρυθμίσεις"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Τοπικό προφίλ"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Προφίλ μου <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Εμφάνιση όλων των επαφών"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Η εφαρμογή \"Άτομα\" λειτουργεί καλύτερα με έναν Λογαριασμό Google.\n\n• Αποκτήστε πρόσβαση από οποιοδήποτε πρόγραμμα περιήγησης.\n• Δημιουργήστε αντίγραφα ασφαλείας των επαφών σας."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Οι Επαφές λειτουργούν καλύτερα με έναν Λογαριασμό Google.\n\n• Πρόσβαση από οποιοδήποτε πρόγραμμα περιήγησης.\n• Δημιουργία αντιγράφων ασφαλείας των επαφών σας με ασφάλεια."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Διατηρήστε τις επαφές σας ασφαλείς ακόμα και αν χάσετε το τηλέφωνό σας: συγχρονισμός με άλλη συσκευή στο διαδίκτυο."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Προσθήκη λογαριασμού"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Δεν θα δημιουργηθεί αντίγραφο ασφαλείας για τη νέα επαφή σας. Θέλετε να προσθέσετε ένα λογαριασμό που δημιουργεί αντίγραφα ασφαλείας επαφών στο διαδίκτυο;"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Η νέα επαφή σας θα συγχρονιστεί με <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Μπορείτε να συγχρονίσετε τη νέα επαφή με έναν από τους παρακάτω λογαριασμούς. Ποιον θέλετε να χρησιμοποιήσετε;"</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="contact_detail_picture_description" msgid="6083230522651287030">"Εικόνα. Επιλέξτε για αλλαγή"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"προσθήκη νέας επαφής"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Δείτε περισσότερα"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Δείτε λιγότερα"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Εμφάνιση όλων"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Πρόσφατα"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Σχετικά με"</string>
+    <string name="send_message" msgid="8938418965550543196">"Αποστολή μηνύματος"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Δημιουργία προσωπικού αντιγράφου…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Χθες"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Αύριο"</string>
+    <string name="today" msgid="8041090779381781781">"Σήμερα"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Σήμερα στις <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Αύριο στις <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Εκδήλωση χωρίς τίτλο)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Ορισμός"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"Ανταλλαγή άμεσων μηνυμάτων (IM)"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Οργανισμός"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Ψευδώνυμο"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Σημείωση"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Ιστότοπος"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Συμβάν"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Σχέση"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"οδηγίες προς την τοποθεσία"</string>
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 85199a6..eae62ce 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"People"</string>
+    <string name="people" msgid="1190841469952343354">"Contacts"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contacts"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contact"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direct dial"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Choose a number to call"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Choose a number to message"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Choose a contact"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Select 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="viewContactDesription" msgid="214186610887547860">"View contact"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Edit contact"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Create contact"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Edit group"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Place on Home screen"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"This contact contains information from multiple accounts. Information from read-only accounts will be hidden in your contacts lists, not deleted."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Deleting this contact will delete information from multiple accounts."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"This contact will be deleted."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Discard"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Discard changes"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"The contact doesn\'t exist."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Contact widget added to Home screen."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Create new contact"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> contacts with phone numbers"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"No contacts with phone numbers"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 contact"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> contacts"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 found"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> found"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 found"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> found"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"All contacts"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Groups"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"All contacts"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favourites"</string>
     <string name="callBack" msgid="5498224409038809224">"Call back"</string>
     <string name="callAgain" msgid="3197312117049874778">"Call again"</string>
     <string name="returnCall" msgid="8171961914203617813">"Return call"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> of <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contacts"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Names of your contacts"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"No app was found to handle this action."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Click to return to previous screen"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Add phone number"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Add email"</string>
+    <string name="missing_app" msgid="1466111003546611387">"No app was found to handle this action."</string>
     <string name="menu_share" msgid="943789700636542260">"Share"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Add to contacts"</string>
     <string name="share_via" msgid="563121028023030093">"Share contact via"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Create group under account"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Voice chat"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Use this photo"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Not editable from this app."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"No additional information for this contact."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Not editable on this device"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Sort list by"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"First name"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Surname"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"View contact names"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"First name first"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Surname first"</string>
     <string name="take_photo" msgid="7496128293167402354">"Take photo"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Take new photo"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Choose photo from Gallery"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Select new photo from Gallery"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Choose photo"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Select new photo"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Contact list is being updated to reflect the change of language."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Contact list is being updated."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Contacts are in the process of being upgraded. \n\nThe upgrade process requires approximately <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB of internal storage.\n\nChoose one of the following options:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Add organisation"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Date"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Group name"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"favourite"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Edit contact"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Creating a personal copy…"</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Customised"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Settings"</string>
     <string name="menu_settings" msgid="377929915873428211">"Settings"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"My local profile"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"My <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profile"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Displaying all contacts"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"People works better with a Google Account.\n\n• Access from any web browser.\n• Back up your contacts securely."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Contacts works better with a Google Account.\n\n• Access from any web browser.\n• Back up your contacts securely."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Keep your contacts safe even if you lose your phone: synchronise with an online service."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Add an account"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Your new contact won\'t be backed up. Add an account that backs up contacts online?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Your new contact will be synchronised with <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"You can synchronise your new contact with one of the following accounts. Which do you want to use?"</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="keep_local" msgid="1258761699192993322">"Keep locally"</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="contact_detail_picture_description" msgid="6083230522651287030">"Picture. Select to change"</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="6137651078366797938">"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="content_description_directions" msgid="2686791825798189335">"directions to location"</string>
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..eae62ce
--- /dev/null
+++ b/res/values-en-rIN/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"Contacts"</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="contactPickerActivityTitle" msgid="4301062192337417640">"Choose a contact"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Select new contact"</string>
+    <string name="starredList" msgid="4817256136413959463">"Starred"</string>
+    <string name="frequentList" msgid="7154768136473953056">"Frequent"</string>
+    <string name="strequentList" msgid="5640192862059373511">"Favourites"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"Contact details"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"Edit contact"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"Create contact"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"Edit group"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"Create group"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"About"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"Updates"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Search contacts"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"View contact"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Add to favourites"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Remove from favourites"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Removed from favourites"</string>
+    <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_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="8368636463748691868">"Separate"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"Edit"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"Delete"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Add Contact"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Add Group"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"Separate contact?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"This contact will be separated into multiple contacts."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"Join"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Join contacts"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"Choose the contact that you want to join 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="7208148163607047389">"Contacts joined"</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="7808825687289848259">"You can\'t delete contacts from read-only accounts, but you can hide them in your contacts lists."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"This contact contains information from multiple accounts. Information from read-only accounts will be hidden in your contacts lists, not deleted."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Deleting this contact will delete information from multiple accounts."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"This contact will be deleted."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Discard changes"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"The contact doesn\'t exist."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Contact widget added to Home screen."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Create new contact"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Create new contact"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"Organisation"</item>
+    <item msgid="7196592230748086755">"Note"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"No pictures are available on the tablet."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"No pictures are available on the phone."</string>
+    <string name="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="8579310973261953559">"No contacts."</string>
+    <string name="noGroups" msgid="8614664663561385253">"No groups."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"To create groups you need an account."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"No people in this group."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"To add some, edit the group."</string>
+    <string name="savingContact" msgid="4075751076741924939">"Saving contact…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"Contact saved."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Couldn\'t save contact changes."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"Group saved."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Couldn\'t save group changes."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"1 contact with phone number"</item>
+    <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> contacts with phone numbers"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"No contacts with phone numbers"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 found"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> found"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"No contacts"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 found"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> found"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"All contacts"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favourites"</string>
+    <string name="callBack" msgid="5498224409038809224">"Call back"</string>
+    <string name="callAgain" msgid="3197312117049874778">"Call again"</string>
+    <string name="returnCall" msgid="8171961914203617813">"Return call"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Add \"<xliff:g id="EMAIL">%s</xliff:g>\" to contacts?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"contact photo"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> of <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contacts"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Names of your contacts"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"No app was found to handle this action."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Click to return to previous screen"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Add phone number"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Add email"</string>
+    <string name="missing_app" msgid="1466111003546611387">"No app was found to handle this action."</string>
+    <string name="menu_share" msgid="943789700636542260">"Share"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Add to contacts"</string>
+    <string name="share_via" msgid="563121028023030093">"Share contact via"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"Create group under account"</string>
+    <string name="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>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"Use this photo"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"Not editable from this app."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"Not editable on this device"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Take photo"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Take new photo"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Choose photo"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Select new photo"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"Contact list is being updated to reflect the change of language."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"Contact list is being updated."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Contacts are in the process of being upgraded. \n\nThe upgrade process requires approximately <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB of internal storage.\n\nChoose one of the following options:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Uninstall some applications"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Retry upgrade"</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_field" msgid="2384260056674995230">"Add another field"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Add new"</string>
+    <string name="add_organization" msgid="7311893231158291197">"Add organisation"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Date"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Group name"</string>
+    <string name="description_star" msgid="2605854427360036550">"favourite"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"Edit contact"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"not merged"</item>
+    <item quantity="other" msgid="425683718017380845">"merged from <xliff:g id="COUNT">%0$d</xliff:g> sources"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"Join 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="list_filter_custom" msgid="8910173055702057002">"Customised"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Settings"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Settings"</string>
+    <string name="menu_help" msgid="5123887102216637725">"Help"</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="7356532842767854606">"Provide a 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="7911101713860139754">"Sign in to an account"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Import contacts"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"Create new group"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"Create new group"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 group"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> groups"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Delete the group \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Contacts themselves will not be deleted.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="COUNT_0">%1$d</xliff:g> person from <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="COUNT_0">%1$d</xliff:g> people from <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> person"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> people"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Type contact name before joining with another."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Copy to clipboard"</string>
+    <string name="set_default" msgid="4417505153468300351">"Set default"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Clear default"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Text copied"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Discard your changes?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"Set up my profile"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"Type person\'s name"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"Group\'s name"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"My local profile"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"My <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profile"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Displaying all contacts"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Contacts works better with a Google Account.\n\n• Access from any web browser.\n• Back up your contacts securely."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Keep your contacts safe even if you lose your phone: synchronise with an online service."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Add an account"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Your new contact won\'t be backed up. Add an account that backs up contacts online?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Your new contact will be synchronised with <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"You can synchronise your new contact with one of the following accounts. Which do you want to use?"</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="keep_local" msgid="1258761699192993322">"Keep locally"</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="6137651078366797938">"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="content_description_directions" msgid="2686791825798189335">"directions to location"</string>
+</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 6925bef..2adaa64 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Personas"</string>
+    <string name="people" msgid="1190841469952343354">"Contactos"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contactos"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contacto"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Marcado directo"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Seleccionar un contacto"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Seleccionar nuevo contacto"</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="viewContactDesription" msgid="214186610887547860">"Ver contacto"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Editar contacto"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Crear contacto"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Editar grupo"</string>
@@ -40,6 +40,8 @@
     <string name="menu_viewContact" msgid="2795575601596468581">"Ver contacto"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Agregar a favoritos"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Eliminar de favoritos"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Eliminado de favoritos"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Agregado a favoritos"</string>
     <string name="menu_editContact" msgid="9042415603857662633">"Editar"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Eliminar"</string>
     <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Colocar en pantalla principal"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Este contacto contiene información de varias cuentas. La información de las cuentas de solo lectura se ocultará en tus listas de contactos, pero no se eliminará."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Eliminar este contacto suprimirá la información de mútliples cuentas."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Este contacto se eliminará."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Descartar"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Descartar cambios"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"El contacto no existe."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"El widget de contactos se agregó a la pantalla principal."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Crear nuevo contacto"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> contactos con números de teléfono"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"No hay contactos con números de dispositivo"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 contacto"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> contactos"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"Se encontró uno (1)"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> encontrado(s)"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"Se encontró uno (1)"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> encontrado(s)"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Todos los contactos"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grupos"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Todos los contactos"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritos"</string>
     <string name="callBack" msgid="5498224409038809224">"Volver a llamar"</string>
     <string name="callAgain" msgid="3197312117049874778">"Llamar nuevamente"</string>
     <string name="returnCall" msgid="8171961914203617813">"Regresar llamada"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contactos"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Nombres de tus contactos"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"No se encontró ninguna aplicación que pueda realizar esta acción."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Haz clic para volver a la pantalla anterior."</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Agregar número de teléfono"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Agregar correo electrónico"</string>
+    <string name="missing_app" msgid="1466111003546611387">"No se encontró ninguna aplicación que pueda realizar esta acción."</string>
     <string name="menu_share" msgid="943789700636542260">"Compartir"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Agregar a contactos"</string>
     <string name="share_via" msgid="563121028023030093">"Compartir un contacto a través de"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Crear un grupo en la cuenta"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Chat de voz"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Usar esta foto"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"No se puede editar desde esta aplicación"</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"No hay información adicional para este contacto."</string>
     <string name="group_read_only" msgid="1061762906115697637">"No se puede editar en este dispositivo."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Ordenar listas por"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Nombre"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Apellido"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Ver nombres de contactos"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Nombre Apellido"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Apellido Nombre"</string>
     <string name="take_photo" msgid="7496128293167402354">"Tomar foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Tomar nueva foto"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Elige una foto de la Galería."</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Seleccionar nueva foto de galería"</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="locale_change_in_progress" msgid="7583992153091537467">"La lista de contactos se está actualizando para reflejar el cambio de idioma."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"La lista de contactos se está actualizando."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"La actualización de los contactos está en proceso. \n\nEl proceso de actualización requiere aproximadamente <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB de almacenamiento interno en el dispositivo.\n\nElige una de las siguientes opciones:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Agregar organización"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Fecha"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nombre de grupo"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"a través de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> a través de <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"favorito"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Editar contacto"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Creando una copia personal..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Personalizado"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Configuración"</string>
     <string name="menu_settings" msgid="377929915873428211">"Configuración"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Mi perfil local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mi perfil de <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Mostrar todos los contactos"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"People funciona mejor con una cuenta de Google.\n\n Accede desde cualquier navegador web.\n Crea copias de seguridad de tus contactos de manera segura."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"La aplicación Contactos funciona mejor con una cuenta de Google.\n\n• Accede desde cualquier navegador web.\n• Haz copias de seguridad de tus contactos de forma segura."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mantén tus contactos a salvo aunque pierdas el dispositivo: sincronízalos con un servicio online."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Agregar una cuenta"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"No se hará una copia de seguridad del nuevo contacto. ¿Quieres agregar una cuenta para hacer copias de seguridad en línea de los contactos?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Tu nuevo contacto se sincronizará con <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Puedes sincronizar tu nuevo contacto con una de las siguientes cuentas. ¿Cuál quieres usar?"</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="keep_local" msgid="1258761699192993322">"Guardar localmente"</string>
     <string name="add_account" msgid="8201790677994503186">"Agregar una cuenta"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Agregar una cuenta nueva"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Exportar archivos de base de datos"</string>
-    <string name="contact_detail_picture_description" msgid="6083230522651287030">"Fotografía. Seleccionar para cambiar"</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="6137651078366797938">"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="content_description_directions" msgid="2686791825798189335">"instrucciones sobre cómo llegar a la ubicación"</string>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index e5e6bd3..a0e408c 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Contactos"</string>
+    <string name="people" msgid="1190841469952343354">"Contactos"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contactos"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contacto"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Llamada directa"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Seleccionar un contacto"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Seleccionar 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="viewContactDesription" msgid="214186610887547860">"Ver contacto"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Editar contacto"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Crear contacto"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Editar grupo"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Añadir a la pantalla de inicio"</string>
@@ -65,11 +67,11 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Este contacto contiene información de varias cuentas. La información de las cuentas de solo lectura se ocultará en las listas de contactos, pero no se eliminará."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Si se elimina este contacto, se eliminará la información de varias cuentas."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"El contacto se eliminará."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Descartar"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Descartar cambios"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Este contacto no existe."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"El widget de contactos se ha añadido a la pantalla de inicio."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Crear contacto nuevo"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Crear contacto nuevo"</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Crear nuevo contacto"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Crear nuevo contacto"</string>
   <string-array name="otherLabels">
     <item msgid="8287841928119937597">"Organización"</item>
     <item msgid="7196592230748086755">"Nota"</item>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> contactos con números de teléfono"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ningún contacto con número de teléfono"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"Un (1) contacto"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> contactos"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 encontrado"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> encontrados"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 encontrado"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> encontrados"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Todos los contactos"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grupos"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Todos los contactos"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritos"</string>
     <string name="callBack" msgid="5498224409038809224">"Llamar"</string>
     <string name="callAgain" msgid="3197312117049874778">"Volver a llamar"</string>
     <string name="returnCall" msgid="8171961914203617813">"Devolver llamada"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contactos"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Nombres de tus contactos"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"No se ha detectado ninguna aplicación que pueda hacer esta acción."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Haz clic para volver a la pantalla anterior"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Añadir número de teléfono"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Añadir correo electrónico"</string>
+    <string name="missing_app" msgid="1466111003546611387">"No se ha detectado ninguna aplicación que pueda hacer esta acción."</string>
     <string name="menu_share" msgid="943789700636542260">"Compartir"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Añadir a contactos"</string>
     <string name="share_via" msgid="563121028023030093">"Compartir contacto a través de"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Crear grupo en cuenta"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Chat de voz"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Utilizar esta foto"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"No se puede editar desde la aplicación."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"No hay información adicional para este contacto."</string>
     <string name="group_read_only" msgid="1061762906115697637">"No se puede editar en este dispositivo."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Ordenar lista por"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Nombre"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Apellidos"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Ver nombres de contactos"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Nombre primero"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Apellidos primero"</string>
     <string name="take_photo" msgid="7496128293167402354">"Hacer una foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Hacer una foto nueva"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Seleccionar foto de la galería"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Seleccionar nueva foto de la galería"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Elegir foto"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Seleccionar nueva foto"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"La lista de contactos se está actualizando para reflejar el cambio de idioma."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"La lista de contactos se está actualizando."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Los contactos se están actualizando. \n\nSe necesitan aproximadamente <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB de almacenamiento interno para el proceso de actualización.\n\nSelecciona una de las siguientes opciones:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Añadir organización"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Fecha"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nombre del grupo"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"con <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> con <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"favoritos"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Editar contacto"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Creando una copia personal..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Personalizar"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Ajustes"</string>
     <string name="menu_settings" msgid="377929915873428211">"Ajustes"</string>
@@ -188,7 +181,7 @@
     <string name="date_year_toggle" msgid="7356532842767854606">"Introducir 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 contacto nuevo"</string>
+    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Crear nuevo contacto"</string>
     <string name="contacts_unavailable_add_account" msgid="7911101713860139754">"Iniciar sesión en una cuenta"</string>
     <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importar contactos"</string>
     <string name="create_group_dialog_title" msgid="6874527142828424475">"Crear grupo nuevo"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Mi perfil local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mi perfil de <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Mostrando todos los contactos"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"La aplicación Contactos funciona mejor con una cuenta de Google.\n\n• Accede a tu lista de contactos desde cualquier navegador web.\n• Haz copias de seguridad de tus contactos de forma segura."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"La aplicación Contactos funciona mejor con una cuenta de Google.\n\n• Accede a tu lista de contactos desde cualquier navegador web.\n• Haz copias de seguridad de tus contactos de forma segura."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mantén tus contactos a salvo aunque pierdas el teléfono: sincronízalos con un servicio online."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Añadir una cuenta"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"No se hará una copia de seguridad del nuevo contacto. ¿Quieres añadir una cuenta para hacer copias de seguridad online de los contactos?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Tu nuevo contacto se sincronizará con <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Puedes sincronizar tu nuevo contacto con una de las siguientes cuentas. ¿Cuál quieres usar?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Añadir nuevo contacto"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editar contacto"</string>
     <string name="keep_local" msgid="1258761699192993322">"Guardar localmente"</string>
     <string name="add_account" msgid="8201790677994503186">"Añadir cuenta"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Añadir una cuenta"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Exportar archivos de base de datos"</string>
-    <string name="contact_detail_picture_description" msgid="6083230522651287030">"Imagen. Seleccionar para cambiar"</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="6137651078366797938">"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="content_description_directions" msgid="2686791825798189335">"indicaciones para llegar a la ubicación"</string>
 </resources>
diff --git a/res/values-et/strings.xml b/res/values-et-rEE/strings.xml
similarity index 82%
rename from res/values-et/strings.xml
rename to res/values-et-rEE/strings.xml
index 5a7449d..14582df 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Inimesed"</string>
+    <string name="people" msgid="1190841469952343354">"Kontaktid"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontaktid"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Otsevalimine"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Valige helistamiseks number"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Valige sõnumi jaoks number"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Kontakti valimine"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Uue kontakti valimine"</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="viewContactDesription" msgid="214186610887547860">"Kuva kontakt"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Muuda kontakti"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Looge kontakt"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Grupi muutmine"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Paiguta avalehele"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"See kontakt sisaldab teavet mitmelt kontolt. Kirjutuskaitstud teabega kontod peidetakse teie kontaktiloendites, mitte ei kustutata."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Selle kontakti kustutamisel kustutatakse andmed mitmelt kontolt."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"See kontakt kustutatakse."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Loobu"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Loobu muudatustest"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakti ei ole olemas."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Kontaktividin lisati avalehele."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Loo uus kontakt"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> telefoninumbriga kontakti"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Telefoninumbritega kontakte pole"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 kontakt"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> kontakti"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 leitud"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> leitud"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 leitud"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> leitud"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Kõik kontaktid"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grupid"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Kõik kontaktid"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Lemmikud"</string>
     <string name="callBack" msgid="5498224409038809224">"Helista tagasi"</string>
     <string name="callAgain" msgid="3197312117049874778">"Helista uuesti"</string>
     <string name="returnCall" msgid="8171961914203617813">"Tagasihelistamine"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontaktist"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Teie kontaktide nimed"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Selle toimingu käsitsemiseks ei leitud ühtegi rakendust."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klõpsake eelmisele ekraanikuvale naasmiseks"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Lisage telefoninumber"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Lisage e-posti aadress"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Selle toimingu käsitlemiseks ei leitud ühtegi rakendust."</string>
     <string name="menu_share" msgid="943789700636542260">"Jaga"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Lisa kontaktide hulka"</string>
     <string name="share_via" msgid="563121028023030093">"Kontakti jagamisvalikud"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Kontopõhise grupi loomine"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Häälvestlus"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Kasuta seda fotot"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Ei saa muuta selles rakenduses."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Selle kontakti kohta pole täiendavat teavet."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Ei saa muuta selles seadmes."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Loendi sortimisalus"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Eesnimi"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Perekonnanimi"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Kuva kontaktid"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Eesnimi kõigepealt"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Perekonnanimi kõigepealt"</string>
     <string name="take_photo" msgid="7496128293167402354">"Tee foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Tee uus foto"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Vali foto galeriist"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Valige galeriist 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="locale_change_in_progress" msgid="7583992153091537467">"Kontaktiloendit värskendatakse keele muutmise kajastamiseks."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Kontaktiloendit värskendatakse."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Kontakte uuendatakse. \n\nUuendusprotsessiks on vaja umbes <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB sisemälu.\n\nValige üks järgmistest valikutest."</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Lisa organisatsioon"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Kuupäev"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Grupi nimi"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"allika <xliff:g id="SOURCE">%1$s</xliff:g> kaudu"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> allika <xliff:g id="SOURCE">%2$s</xliff:g> kaudu"</string>
     <string name="description_star" msgid="2605854427360036550">"lemmik"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Muuda kontakti"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Isikliku koopia loomine ..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Kohandatud"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Seaded"</string>
     <string name="menu_settings" msgid="377929915873428211">"Seaded"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Minu kohalik profiil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Minu profiil: <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Kõigi kontaktide kuvamine"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Teenus People töötab Google\'i kontoga paremini.\n\n• Pääsete selle juurde igast veebibrauserist.\n• Varundage oma kontaktid turvaliselt."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Teenus Kontaktid töötab Google\'i kontoga paremini.\n\n• Pääsete sellele juurde igast veebibrauserist.\n• Varundage oma kontaktid turvaliselt."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Hoidke oma kontaktid turvalisena ka siis, kui kaotate telefoni: sünkroonige need võrguteenusega."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Konto lisamine"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Teie uut kontakti ei varundata. Kas lisada konto, mis varundab kontakte veebis?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Teie uut kontakti sünkroonitakse kontoga <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Saate sünkroonida oma uue kontakti ühega järgmistest kontodest. Millist soovite kasutada?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Kontakti lisamine"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Kontakti muutmine"</string>
     <string name="keep_local" msgid="1258761699192993322">"Hoia kohalikuna"</string>
     <string name="add_account" msgid="8201790677994503186">"Lisa konto"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Lisa uus konto"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Andmebaasi failide eksportimine"</string>
-    <string name="contact_detail_picture_description" msgid="6083230522651287030">"Pilt. Muutmiseks valige"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"uue kontakti lisamine"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Lisateave"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Kuva vähem"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Kuva kõik"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Hiljutine"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Teave"</string>
+    <string name="send_message" msgid="8938418965550543196">"Saada sõnum"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Isikliku koopia loomine ..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Eile"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Homme"</string>
+    <string name="today" msgid="8041090779381781781">"Täna"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Täna kell <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Homme kell <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Pealkirjata sündmus)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Määra"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisatsioon"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Hüüdnimi"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Märge"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Veebisait"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Sündmus"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Seos"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"juhised asukohta"</string>
 </resources>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
new file mode 100644
index 0000000..5675b39
--- /dev/null
+++ b/res/values-eu-rES/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"Kontaktuak"</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="contactPickerActivityTitle" msgid="4301062192337417640">"Aukeratu kontaktu bat"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Hautatu kontaktu berria"</string>
+    <string name="starredList" msgid="4817256136413959463">"Izardunak"</string>
+    <string name="frequentList" msgid="7154768136473953056">"Sarri"</string>
+    <string name="strequentList" msgid="5640192862059373511">"Gogokoak"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"Kontaktuaren xehetasunak"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"Editatu kontaktua"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"Sortu kontaktua"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"Editatu taldea"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"Sortu taldea"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"Honi buruz"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"Eguneratzeak"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Bilatu kontaktuetan"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"Ikusi kontaktua"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Gehitu gogokoetan"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Kendu gogokoetatik"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Gogokoetatik kendu da"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Gogokoetan gehitu da"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Editatu"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Ezabatu"</string>
+    <string name="menu_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="8368636463748691868">"Banandu"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"Editatu"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"Ezabatu"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Gehitu kontaktua"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Gehitu taldea"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"Kontaktua banandu?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"Kontaktua hainbat kontaktutan bananduko da."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"Batu"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Batu kontaktuak"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"Aukeratu <xliff:g id="NAME">%s</xliff:g> kontaktuarekin batu nahi duzun kontaktua:"</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="7208148163607047389">"Batu diren kontaktuak"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Ezarri tonua"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Erantzungailuko dei guztiak"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"Ezin dituzu irakurtzeko soilik diren kontuetako kontaktuak ezabatu, baina zure kontaktuen zerrendatik ezkuta ditzakezu."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Kontaktu honek hainbat kontutako informazioa du. Irakurtzeko soilik diren kontuetako informazioa kontaktuen zerrendatik ezkutatuko da, baina ez da ezabatuko."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Kontaktua ezabatzen baduzu, hainbat kontutako informazioa ezabatuko da."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"Kontaktua ezabatu egingo da."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Baztertu aldaketak"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Ez dago horrelako kontakturik."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Kontaktuen widgeta hasierako pantailan gehitu da."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Sortu kontaktua"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Sortu kontaktua"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"Erakundea"</item>
+    <item msgid="7196592230748086755">"Oharra"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Ez dago irudi erabilgarririk tabletan."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Ez dago irudi erabilgarririk telefonoan."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontaktuaren argazkia"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Etiketa pertsonalizatuaren izena"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Bidali deiak zuzenean erantzungailura"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Kendu argazkia"</string>
+    <string name="noContacts" msgid="8579310973261953559">"Ez dago kontakturik."</string>
+    <string name="noGroups" msgid="8614664663561385253">"Ez dago talderik."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Taldeak sortzeko, kontu bat behar duzu."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"Ez dago jenderik talde honetan."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"Batzuk gehitzeko, editatu taldea."</string>
+    <string name="savingContact" msgid="4075751076741924939">"Kontaktua gordetzen…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"Kontaktua gorde da."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Ezin izan dira gorde kontaktuari egindako aldaketak."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"Taldea gorde da."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Ezin izan dira gorde taldeari egindako aldaketak."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"1 kontaktuk telefono-zenbakia du"</item>
+    <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> kontaktuk telefono-zenbakiak dituzte"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ez dago telefono-zenbakirik duen kontakturik"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 aurkitu da"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> aurkitu dira"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Ez dago kontakturik"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 aurkitu da"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> aurkitu dira"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Kontaktu guztiak"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Gogokoak"</string>
+    <string name="callBack" msgid="5498224409038809224">"Itzuli deia"</string>
+    <string name="callAgain" msgid="3197312117049874778">"Deitu berriro"</string>
+    <string name="returnCall" msgid="8171961914203617813">"Itzuli deia"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" kontaktuetan gehitu?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"kontaktuaren argazkia"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"gehi"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontaktu"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Kontaktuen izenak"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"Ez da ekintza kudeatzeko aplikaziorik aurkitu."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Egin klik hemen aurreko pantailara itzultzeko"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Gehitu telefono-zenbakia"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Gehitu helbide elektronikoa"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Ez da ekintza kudeatzeko aplikaziorik aurkitu."</string>
+    <string name="menu_share" msgid="943789700636542260">"Partekatu"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Gehitu kontaktuetan"</string>
+    <string name="share_via" msgid="563121028023030093">"Partekatu kontaktua honen bidez:"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"Sortu taldea kontuaren barruan"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Ahots-txata"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Bideo-txata"</string>
+    <string name="connections" msgid="8098440723172028350">"Konexioak"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"Gehitu konexioa"</string>
+    <string name="recent" msgid="2659189233141493004">"Azkenak"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"Azken berritasunak"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> iturburuko kontaktua"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"Erabili argazki hau"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"Ezin da aplikazio honen bidez editatu."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"Ezin da gailu honetan editatu."</string>
+    <string name="take_photo" msgid="7496128293167402354">"Atera argazkia"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Atera beste argazki bat"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Aukeratu argazkia"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Hautatu argazki berria"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"Kontaktuen zerrenda hizkuntza-aldaketa islatzeko eguneratzen ari da."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"Kontaktuen zerrenda eguneratzen ari da."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Kontaktuak bertsio-berritzeko prozesuan daude. \n\nBertsio-berritzeko prozesua osatzeko, barneko memoriako <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB behar izaten dira gutxi gorabehera.\n\nHautatu aukera hauetako bat:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Desinstalatu aplikazio batzuk"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Saiatu berriro bertsio-berritzen"</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_field" msgid="2384260056674995230">"Gehitu beste eremu bat"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Gehitu beste bat"</string>
+    <string name="add_organization" msgid="7311893231158291197">"Gehitu erakundea"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Taldearen izena"</string>
+    <string name="description_star" msgid="2605854427360036550">"gogokoa"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"Editatu kontaktua"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"ez da bateratu"</item>
+    <item quantity="other" msgid="425683718017380845">"<xliff:g id="COUNT">%0$d</xliff:g> iturburutatik bateratuta"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"Uneko kontaktua eta hautatutako kontaktua batu nahi dituzu?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Hautatutako kontaktua editatu nahi duzu? Orain arte idatzi duzun informazioa kopiatu egingo da."</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"Kopiatu Nire kontaktuetan"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"Gehitu Nire kontaktuak atalean"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> direktorioa"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"Pertsonalizatua"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Ezarpenak"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Ezarpenak"</string>
+    <string name="menu_help" msgid="5123887102216637725">"Laguntza"</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="7356532842767854606">"Eman urte bat"</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="7911101713860139754">"Hasi saioa kontu batean"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Inportatu kontaktuak"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"Sortu taldea"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"Sortu taldea"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 talde"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> talde"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" taldea ezabatu nahi duzu? (Ez dira kontaktuak ezabatuko.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="COUNT_0">%1$d</xliff:g> pertsona <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> taldetik"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="COUNT_0">%1$d</xliff:g> pertsona <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> taldetik"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> pertsona"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> pertsona"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Idatzi kontaktuaren izena beste batekin batu aurretik."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Kopiatu arbelean"</string>
+    <string name="set_default" msgid="4417505153468300351">"Ezarri lehenetsi gisa"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Garbitu metodo lehenetsia"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Testua kopiatu da"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Aldaketak baztertu nahi dituzu?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> (<xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>)"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"Konfiguratu nire profila"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"Idatzi pertsonaren izena"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"Taldearen izena"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Gailuko profila"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Nire <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profila"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Kontaktu guztiak bistaratzen"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Kontaktuak atalak hobeto funtzionatzen du Google kontu bat estekatzen badiozu.\n\n• Atzitu edozein web-arakatzailetatik.\n• Gorde kontaktuen babeskopiak toki seguru batean."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Izan kontaktuak seguru telefonoa galduta ere: sinkronizatu sareko zerbitzu batekin."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Gehitu kontu bat"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Ez da kontaktu berriaren babeskopiarik egingo. Kontaktuen babeskopia sarean gordetzeko kontua gehitu nahi duzu?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Kontaktu berria <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> kontuarekin sinkronizatuko da."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Kontaktu berria kontu hauetako batekin sinkroniza dezakezu. Zein erabili nahi duzu?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Gehitu kontaktu berria"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editatu kontaktua"</string>
+    <string name="keep_local" msgid="1258761699192993322">"Mantendu gailuan"</string>
+    <string name="add_account" msgid="8201790677994503186">"Gehitu kontua"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Gehitu beste kontu bat"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Esportatu datu-baseko fitxategiak"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"gehitu kontaktu berri bat"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ikusi gehiago"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Ikusi gutxiago"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Ikusi guztiak"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Azkenak"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Honi buruz"</string>
+    <string name="send_message" msgid="8938418965550543196">"Bidali mezua"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Kopia pertsonala sortzen…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Atzo"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Bihar"</string>
+    <string name="today" msgid="8041090779381781781">"Gaur"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Gaur (<xliff:g id="TIME_INTERVAL">%s</xliff:g>)"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Bihar (<xliff:g id="TIME_INTERVAL">%s</xliff:g>)"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g> (<xliff:g id="TIME_INTERVAL">%s</xliff:g>)"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Izenik gabeko gertaera)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Ezarri"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Erakundea"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Goitizena"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Oharra"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Webgunea"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Gertaera"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Erlazioa"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"kokapenerako jarraibideak"</string>
+</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index f78f65b..fac17f7 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"افراد"</string>
+    <string name="people" msgid="1190841469952343354">"مخاطبین"</string>
     <string name="contactsList" msgid="8661624236494819731">"مخاطبین"</string>
     <string name="shortcutContact" msgid="749243779392912958">"مخاطب"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"شماره گیری مستقیم"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"انتخاب یک شماره برای تماس"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"انتخاب یک شماره برای پیام"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"انتخاب یک مخاطب"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"انتخاب مخاطب جدید"</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="viewContactDesription" msgid="214186610887547860">"مشاهده مخاطب"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"ویرایش مخاطب"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"ایجاد مخاطب"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"ویرایش گروه"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"محل بر روی صفحهٔ اصلی"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"این مخاطب دارای اطلاعاتی از چند حساب است. اطلاعات حساب‌های فقط خواندنی در لیست‌های مخاطبین پنهان می‌شوند اما حذف نمی‌شوند."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"حذف این مخاطب اطلاعات را از حساب‌های متعدد حذف می‌کند."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"این مخاطب حذف می‌شود."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"صرفنظر"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"صرفنظر از تغییرات"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"مخاطبی موجود نیست."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"ابزارک مخاطب به صفحهٔ اصلی شما اضافه شد."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"ایجاد مخاطب جدید"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> مخاطب دارای شماره تلفن"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"مخاطبی با شماره تلفن موجود نیست"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"۱ مخاطب"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> مخاطب"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 مورد پیدا شد"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> یافت شد"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 مورد پیدا شد"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> یافت شد"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"همه مخاطبین"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"گروه‌ها"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"همه مخاطبین"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"موارد دلخواه"</string>
     <string name="callBack" msgid="5498224409038809224">"بازگرداندن تماس"</string>
     <string name="callAgain" msgid="3197312117049874778">"تماس مجدد"</string>
     <string name="returnCall" msgid="8171961914203617813">"برگشت تماس"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> از <xliff:g id="TOTAL_NUMBER">%s</xliff:g> مخاطب"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"نام‌های مخاطبین شما"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"برنامه‌ای برای انجام این عملکرد یافت نشد."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"برای بازگشت به صفحه قبلی کلیک کنید"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"افزودن شماره تلفن"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"افزودن ایمیل"</string>
+    <string name="missing_app" msgid="1466111003546611387">"برنامه‌ای برای انجام این عملکرد یافت نشد."</string>
     <string name="menu_share" msgid="943789700636542260">"اشتراک‌گذاری"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"افزودن به مخاطبین"</string>
     <string name="share_via" msgid="563121028023030093">"اشتراک‌گذاری مخاطب از طریق"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"ایجاد گروه تحت حساب کاربری"</string>
     <string name="audio_chat" msgid="2535716629358298691">"گپ صوتی"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"استفاده از این عکس"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"از این برنامه قابل ویرایش نیست."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"اطلاعات دیگری برای این مخاطب موجود نیست."</string>
     <string name="group_read_only" msgid="1061762906115697637">"در این دستگاه قابل ویرایش نیست."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"مرتب سازی لیست بر اساس"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"نام"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"نام خانوادگی"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"مشاهده نام مخاطبین"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"ابتدا نام"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"ابتدا نام خانوادگی"</string>
     <string name="take_photo" msgid="7496128293167402354">"عکسبرداری"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"گرفتن عکس جدید"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"انتخاب عکس از گالری"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"انتخاب عکس جدید از گالری"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"انتخاب عکس"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"انتخاب عکس جدید"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"لیست مخاطبین در حال به‌روزرسانی برای منعکس کردن تغییرات زبان است."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"لیست مخاطبین در حال به‌روزرسانی است."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"مخاطبین در حال ارتقا هستند. \n\nفرآیند ارتقا به تقریباً <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> مگابایت از حافظهٔ داخلی نیاز دارد. \n\nیکی از گزینه‌های زیر را انتخاب کنید:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"افزودن سازمان"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"تاریخ"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"نام گروه"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"از طریق <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> از طریق <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"مورد دلخواه"</string>
     <string name="edit_contact" msgid="7529281274005689512">"ویرایش مخاطب"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"ایجاد یک کپی شخصی..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"سفارشی"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"تنظیمات"</string>
     <string name="menu_settings" msgid="377929915873428211">"تنظیمات"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"نمایه محلی من"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"نمایه <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> من"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"نمایش همه مخاطبان"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"People با یک حساب Google بهتر کار می‌کند.\n\n• از هر مرورگر وب به آن دسترسی دارید\n• از رویدادهای خود به طور امن پشتیبان تهیه کنید"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"‏مخاطبین با حساب Google بهتر کار می‌کند.\n\n‏• از هر مرورگر وبی به آن دسترسی داشته باشید.\n‏• به صورت ایمن از مخاطبینتان پشتیبان‌گیری کنید."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"مخاطبین خود را ایمن نگهدارید حتی اگر گوشی شما گم شود: با یک سرویس آنلاین همگام‌سازی کنید."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"افزودن یک حساب"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"از مخاطب جدید شما نسخه پشتبان تهیه نمی‌شود. حسابی را اضافه می‌کنید که از مخاطبین به‌صورت آنلاین نسخه پشتبان تهیه کند؟"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"مخاطب جدید شما با <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> همگام‌سازی خواهد شد."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"شما می‌توانید مخاطب جدید خود را با یکی از حساب‌های زیر همگام‌سازی کنید. از کدام‌یک می‌خواهید استفاده کنید؟"</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="contact_detail_picture_description" msgid="6083230522651287030">"عکس. جهت تغییر انتخاب کنید"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"افزودن مخاطب جدید"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"مشاهده موارد بیشتر"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"مشاهده موارد کمتر"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"مشاهده همه"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"اخیر"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"درباره"</string>
+    <string name="send_message" msgid="8938418965550543196">"ارسال پیام"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"در حال ایجاد یک کپی شخصی..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"دیروز"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"فردا"</string>
+    <string name="today" msgid="8041090779381781781">"امروز"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"امروز در <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"فردا در <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>، ‏<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(رویداد بدون عنوان)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"تنظیم"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"پیام‌رسانی فوری"</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="content_description_directions" msgid="2686791825798189335">"مسیرها به مکان"</string>
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 70f3328..4ed0be4 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Henkilöt"</string>
+    <string name="people" msgid="1190841469952343354">"Yhteystiedot"</string>
     <string name="contactsList" msgid="8661624236494819731">"Yhteystiedot"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Yhteystieto"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Puhelu"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Valitse vastaanottajan numero"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Valitse vastaanottajan numero"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Valitse yhteystieto"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Valitse uusi kontakti"</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="viewContactDesription" msgid="214186610887547860">"Näytä yhteystieto"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Muokkaa yhteystietoa"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Luo yhteystieto"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Muokkaa ryhmää"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Paikka aloitusruudussa"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Tämä yhteystieto sisältää tietoja useista tileistä. Vain luku -tilassa olevien tilien tietoja ei poisteta, mutta ne piilotetaan yhteystietoluettelosta."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Kun tämä yhteystieto poistetaan, tietoja poistetaan useilta tileiltä."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Tämä yhteystieto poistetaan."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Hylkää"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Hylkää muutokset"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Yhteystietoa ei ole olemassa."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Yhteystiedot-widget lisätty aloitusruutuun."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Luo uusi yhteystieto"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> yhteystietoa, joissa puhelinnumero"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ei yhteystietoja, joissa on puhelinnumero"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 yhteystieto"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> yhteystietoa"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"Löytyi 1"</item>
     <item quantity="other" msgid="3852668542926965042">"Löytyi <xliff:g id="COUNT">%d</xliff:g>"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"Löytyi 1"</item>
     <item quantity="other" msgid="7988132539476575389">"Löytyi <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Kaikki kontaktit"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Ryhmät"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Yhteystiedot"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Suosikit"</string>
     <string name="callBack" msgid="5498224409038809224">"Soita takaisin"</string>
     <string name="callAgain" msgid="3197312117049874778">"Soita uudelleen"</string>
     <string name="returnCall" msgid="8171961914203617813">"Soita takaisin"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> / <xliff:g id="TOTAL_NUMBER">%s</xliff:g> yhteystietoa"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Yhteystietojen nimet"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Tätä toimintoa käsittelevää sovellusta ei löydy."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Palaa edelliseen näyttöön klikkaamalla"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Lisää puhelinnumero"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Lisää sähköposti"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Tätä toimintoa käsittelevää sovellusta ei löydy."</string>
     <string name="menu_share" msgid="943789700636542260">"Jaa"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Lisää yhteystietoihin"</string>
     <string name="share_via" msgid="563121028023030093">"Jaa yhteystieto"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Luo ryhmä tilissä"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Äänikeskustelu"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Käytä valokuvaa"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Ei muokattavissa tästä sovelluksesta."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Tässä yhteystiedossa ei ole muita tietoja."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Ei muokattavissa tällä laitteella."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Luettelon lajittelutapa"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Etunimi"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Sukunimi"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Näytä kontaktien nimet"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Etunimi ensin"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Sukunimi ensin"</string>
     <string name="take_photo" msgid="7496128293167402354">"Ota valokuva"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Ota uusi kuva"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Valitse valokuva galleriasta"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Valitse uusi kuva galleriasta"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Valitse valokuva"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Valitse uusi valokuva"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Yhteystietoluettelo on päivitetty vastaamaan kielen muutosta."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Yhteystietoluetteloa päivitetään."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Yhteystietoja päivitetään. \n\nPäivitysprosessiin tarvitaan noin <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> Mt sisäistä tallennustilaa.\n\nValitse yksi seuraavista vaihtoehdoista:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Lisää organisaatio"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Päivämäärä"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Ryhmän nimi"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"lähteestä: <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> lähteestä: <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"lisää suosikkeihin"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Muokkaa yhteystietoa"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <string name="menu_copyContact" msgid="1573960845106822639">"Kopioi yhteystietoihini"</string>
     <string name="add_to_my_contacts" msgid="1068274916793627723">"Lisää kontakteihin"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Hakemisto <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="toast_making_personal_copy" msgid="288549957278065542">"Luodaan kopio..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Oma"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Asetukset"</string>
     <string name="menu_settings" msgid="377929915873428211">"Asetukset"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Oma paikallinen profiili"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Oma <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>-profiili"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Kaikki kontaktit"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Ihmiset-sovellus toimii paremmin Google-tilin kanssa.\n\n• Käytä sovellusta millä tahansa selaimella.\n• Varmuuskopioi yhteystietosi turvallisesti."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Yhteystiedot toimivat paremmin Google-tilin kanssa.\n\n• Käytä millä tahansa selaimella.\n• Varmuuskopioi turvallisesti."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Pidä kontaktisi turvassa, vaikka puhelimesi katoaisi: synkronoi ne verkkopalvelun avulla."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Lisää tili"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Uutta kontaktiasi ei varmuuskopioida. Lisätäänkö tili, joka varmuuskopioi uudet kontaktit verkossa?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Uusi kontaktisi synkronoidaan tilillä <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Voit synkronoida uuden kontaktisi jollakin seuraavista tileistä. Mitä niistä haluat käyttää?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Lisää uusi yhteystieto"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Muokkaa yhteystietoa"</string>
     <string name="keep_local" msgid="1258761699192993322">"Säilytä paikallisena"</string>
     <string name="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="contact_detail_picture_description" msgid="6083230522651287030">"Kuva. Vaihda valitsemalla"</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="6137651078366797938">"Luodaan oma 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="content_description_directions" msgid="2686791825798189335">"reittiohjeet sijaintiin"</string>
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..60e1e6c
--- /dev/null
+++ b/res/values-fr-rCA/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"Contacts"</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="contactPickerActivityTitle" msgid="4301062192337417640">"Sélectionner un contact"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Sélectionner nouveau contact"</string>
+    <string name="starredList" msgid="4817256136413959463">"Favoris"</string>
+    <string name="frequentList" msgid="7154768136473953056">"Contacts fréquents"</string>
+    <string name="strequentList" msgid="5640192862059373511">"Favoris"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"Détails du contact"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"Modifier un contact"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"Créer un contact"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"Modifier le groupe"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"Créer un groupe"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"À propos"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"Mises à jour"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Rechercher des contacts"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"Afficher le contact"</string>
+    <string name="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_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="8368636463748691868">"Séparer"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"Modifier"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"Supprimer"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Ajouter un contact"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Ajouter un groupe"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"Séparer le contact?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"Ce contact va être séparé en plusieurs contacts."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"Joindre"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Joindre des contacts"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"Sélectionnez le contact que vous voulez 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="7208148163607047389">"Contacts joints"</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="7808825687289848259">"Impossible de supprimer les contacts des comptes en lecture seule. Vous pouvez les masquer dans la liste des contacts."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Ce contact contient des informations provenant de plusieurs comptes. Vous pouvez masquer dans votre liste de contacts les informations des comptes en lecture seule, mais pas les supprimer."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"La suppression de ce contact entraînera celle d\'informations provenant de plusieurs comptes."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"Ce contact sera supprimé."</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" msgid="7874133287558150877">"Widget de contact ajouté à l\'écran d\'accueil."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Créer un nouveau contact"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Créer un nouveau contact"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"Organisation"</item>
+    <item msgid="7196592230748086755">"NOTE"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Aucune image n\'est disponible sur la tablette."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Aucune image disponible sur le téléphone"</string>
+    <string name="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="8579310973261953559">"Aucun contact"</string>
+    <string name="noGroups" msgid="8614664663561385253">"Aucun groupe"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Vous devez posséder un compte pour créer des groupes."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"Ce groupe est vide."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"Pour ajouter des membres, veuillez le modifier."</string>
+    <string name="savingContact" msgid="4075751076741924939">"Enregistrement du contact…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"Contact enregistré."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Impossible d\'enregistrer les modifications apportées au contact."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"Groupe enregistré"</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Impossible d\'enregistrer les modifications apportées au groupe."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"1 contact avec numéro de téléphone"</item>
+    <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> contacts avec des numéros 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">
+    <item quantity="one" msgid="5517063038754171134">"1 contact trouvé"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> contacts trouvés"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Aucun contact"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 contact trouvé"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> contacts trouvés"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Tous les contacts"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoris"</string>
+    <string name="callBack" msgid="5498224409038809224">"Rappeler"</string>
+    <string name="callAgain" msgid="3197312117049874778">"Renouveler l\'appel"</string>
+    <string name="returnCall" msgid="8171961914203617813">"Rappeler"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Ajouter \"<xliff:g id="EMAIL">%s</xliff:g>\" aux contacts?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"photo du contact"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> sur <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contacts"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Noms de vos contacts"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"Aucune application pouvant gérer cette action n\'a été trouvée."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Cliquez ici pour revenir à l\'écran précédent"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Ajouter un numéro de téléphone"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Ajouter une adresse de courriel"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Aucune application pouvant gérer cette action n\'a été trouvée."</string>
+    <string name="menu_share" msgid="943789700636542260">"Partager"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Ajouter aux contacts"</string>
+    <string name="share_via" msgid="563121028023030093">"Partager contact via"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"Sélectionner le compte associé au groupe"</string>
+    <string name="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>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"Utiliser cette photo"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"Non modifiable depuis cette application."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"Non modifiable sur cet appareil."</string>
+    <string name="take_photo" msgid="7496128293167402354">"Prendre une photo"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Prendre une autre photo"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Choisir une photo"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Sélectionner une nouvelle photo"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"Mise à jour de la liste des contacts en cours suite au changement de langue"</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"La liste de contacts est en cours de mise à jour."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Les contacts font actuellement l\'objet d\'une mise à jour.\n\nCette opération nécessite environ <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> Mo de mémoire de stockage interne.\n\nVeuillez sélectionner l\'une des options suivantes :"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Désinstaller certaines applications"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Réessayer la 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_field" msgid="2384260056674995230">"Ajouter un champ"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Ajouter"</string>
+    <string name="add_organization" msgid="7311893231158291197">"Ajouter une entreprise"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Date"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nom du groupe"</string>
+    <string name="description_star" msgid="2605854427360036550">"favori"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"Modifier un contact"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"1 contact non fusionné"</item>
+    <item quantity="other" msgid="425683718017380845">"fusionné à partir de <xliff:g id="COUNT">%0$d</xliff:g> sources"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"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="list_filter_custom" msgid="8910173055702057002">"Personnaliser"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Paramètres"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Paramètres"</string>
+    <string name="menu_help" msgid="5123887102216637725">"Aide"</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="7356532842767854606">"Indiquer une 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="7911101713860139754">"Se connecter à un compte"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Téléverser des contacts"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"Créer un groupe"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"Créer un groupe"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"Un groupe"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> groupes"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Supprimer le groupe \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? Les contacts ne seront pas supprimés."</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="COUNT_0">%1$d</xliff:g> contact dans <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="COUNT_0">%1$d</xliff:g> contacts dans <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> contact"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> personne(s)"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Saisissez le nom du contact avant de l\'associer à un autre."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Copier dans le presse-papiers"</string>
+    <string name="set_default" msgid="4417505153468300351">"Définir par défaut"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Effacer les valeurs par défaut"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Texte copié."</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Annuler 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="profile_display_name" msgid="4127389543625918771">"Configurer mon profil"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"Saisissez le nom de la personne"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"Nom du groupe"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Mon profil local"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Mon profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Affichage de tous les contacts"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Tirez le meilleur parti de l\'application Contacts en utilisant un compte Google.\n\n• Accédez-y à partir de n\'importe quel navigateur Web.\n• Sauvegardez vos contacts en toute sécurité."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Assurez la sécurité de vos contacts, même si vous perdez votre téléphone en effectuant une synchronisation avec un service en ligne."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Ajouter un compte"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Votre nouveau contact ne sera pas sauvegardé. Ajouter un compte qui sauvegarde les contacts en ligne?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Votre nouveau contact va être synchronisé avec <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Vous pouvez synchroniser votre nouveau contact avec l\'un des comptes suivants. Lequel souhaitez-vous utiliser?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Ajouter un contact"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Modifier un contact"</string>
+    <string name="keep_local" msgid="1258761699192993322">"Enreg. copie locale"</string>
+    <string name="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="6137651078366797938">"Création d\'une copie personnelle en cours..."</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="content_description_directions" msgid="2686791825798189335">"itinéraire vers le lieu"</string>
+</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index c686f4d..ccb0376 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Contacts"</string>
+    <string name="people" msgid="1190841469952343354">"Contacts"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contacts"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contact"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Raccourci appel"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Sélectionner un contact"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Sélectionner nouveau contact"</string>
     <string name="starredList" msgid="4817256136413959463">"Marqués d\'une étoile"</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="viewContactDesription" msgid="214186610887547860">"Afficher le contact"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Modifier le contact"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Créer un contact"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Modifier le groupe"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Placer sur l\'écran d\'accueil"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Ce contact contient des informations provenant de plusieurs comptes. Vous pouvez masquer dans votre liste de contacts les informations des comptes en lecture seule, mais pas les supprimer."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"La suppression de ce contact entraînera celle d\'informations provenant de plusieurs comptes."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Ce contact sera supprimé."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Ignorer"</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" msgid="7874133287558150877">"Widget de contact ajouté à l\'écran d\'accueil."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Créer un nouveau contact"</string>
@@ -76,7 +78,7 @@
   </string-array>
     <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Aucune image n\'est disponible sur la tablette."</string>
     <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Aucune image disponible sur le téléphone."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Photo du contact"</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>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> contacts avec des n° 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="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 contact"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> contacts"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 contact trouvé"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> contact(s) trouvé(s)"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 contact trouvé"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> contact(s) trouvé(s)"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Tous les contacts"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Groupes"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Tous contacts"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoris"</string>
     <string name="callBack" msgid="5498224409038809224">"Rappeler"</string>
     <string name="callAgain" msgid="3197312117049874778">"Renouveler l\'appel"</string>
     <string name="returnCall" msgid="8171961914203617813">"Rappeler"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> sur <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contacts"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Noms de vos contacts"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Aucune application pouvant gérer cette action n\'a été trouvée."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Cliquez pour revenir à l\'écran précédent."</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Ajouter un numéro de téléphone"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Ajouter une adresse e-mail"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Aucune application trouvée pour gérer cette action."</string>
     <string name="menu_share" msgid="943789700636542260">"Partager"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Ajouter aux contacts"</string>
     <string name="share_via" msgid="563121028023030093">"Partager contact via"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Sélectionner le compte associé au groupe"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Chat audio"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Utiliser cette photo"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Non modifiable depuis cette application."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Aucune autre information n\'est disponible pour ce contact."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Non modifiable sur cet appareil."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Trier la liste par"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Prénom"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Nom"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Afficher les noms des contacts"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Le prénom en premier"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Le nom en premier"</string>
     <string name="take_photo" msgid="7496128293167402354">"Prendre une photo"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Prendre une autre photo"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Choisir dans la galerie"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Choisir dans la galerie"</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="locale_change_in_progress" msgid="7583992153091537467">"Mise à jour de la liste des contacts en cours suite au changement de langue."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"La liste de contacts est en cours de mise à jour."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Les contacts font actuellement l\'objet d\'une mise à jour.\n\nCette opération nécessite environ <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> Mo de mémoire de stockage interne.\n\nVeuillez sélectionner l\'une des options suivantes :"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Ajouter une entreprise"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Date"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nom du groupe"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"favori"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Modifier le contact"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Création d\'une copie personnelle…"</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Personnalisé"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Paramètres"</string>
     <string name="menu_settings" msgid="377929915873428211">"Paramètres"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Mon profil local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mon profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Affichage de tous les contacts"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Tirez le meilleur parti de l\'application Contacts en utilisant un compte Google.\n\n• Accédez-y depuis n\'importe quel navigateur Web.\n• Sauvegardez vos contacts en toute sécurité."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Tirez le meilleur parti de l\'application Contacts en utilisant un compte Google.\n\n• Accédez-y depuis n\'importe quel navigateur Web.\n• Sauvegardez vos contacts en toute sécurité."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Assurez la sécurité de vos contacts, même si vous perdez votre téléphone en effectuant une synchronisation avec un service en ligne."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Ajouter un compte"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Votre nouveau contact ne sera pas sauvegardé. Ajouter un compte permettant de sauvegarder les contacts en ligne ?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Votre nouveau contact va être synchronisé avec <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Vous pouvez synchroniser votre nouveau contact avec l\'un des comptes suivants. Lequel souhaitez-vous utiliser ?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Ajouter un contact"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Modifier le contact"</string>
     <string name="keep_local" msgid="1258761699192993322">"Enregistrer localement"</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="contact_detail_picture_description" msgid="6083230522651287030">"Image : sélectionner pour modifier"</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"</string>
+    <string name="send_message" msgid="8938418965550543196">"Envoyer le message"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Création d\'une copie personnelle en cours..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Hier"</string>
+    <string name="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">"Pseudo"</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="content_description_directions" msgid="2686791825798189335">"itinéraire vers le lieu"</string>
 </resources>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
new file mode 100644
index 0000000..63780d5
--- /dev/null
+++ b/res/values-gl-rES/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"Contactos"</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">"Escolle un atallo do 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="contactPickerActivityTitle" msgid="4301062192337417640">"Escolle un contacto"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Seleccionar novo contacto"</string>
+    <string name="starredList" msgid="4817256136413959463">"Marcados con asterisco"</string>
+    <string name="frequentList" msgid="7154768136473953056">"Frecuentes"</string>
+    <string name="strequentList" msgid="5640192862059373511">"Favoritos"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"Detalles do contacto"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"Editar contacto"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"Crear contacto"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"Editar grupo"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"Crear grupo"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"Acerca de"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"Actualizacións"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Buscar contactos"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"Ver contacto"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Engadir a favoritos"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Eliminar dos favoritos"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Eliminado de favoritos"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Engadido a favoritos"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Editar"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Eliminar"</string>
+    <string name="menu_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="8368636463748691868">"Separar"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"Editar"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"Eliminar"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Engadir contacto"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Engadir grupo"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"Separar contacto?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"Este contacto separarase en varios contactos."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"Unirse"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Unir contactos"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"Escolle o contacto que queres unir 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="7208148163607047389">"Contactos unidos"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Definir ton"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Todas as chamadas a correo voz"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"Non podes eliminar contactos das contas de só lectura, pero podes ocultalos nas túas listas de contactos."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Este contacto contén información de varias contas. A información das contas de só lectura ocultarase nas túas listas de contactos, non se eliminará."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"A eliminación deste contacto eliminará información de varias contas."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"Eliminarase este contacto."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Descartar cambios"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"O contacto non existe."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Widget de contactos engadido á pantalla de inicio."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Crear novo contacto"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Crear novo contacto"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"Organización"</item>
+    <item msgid="7196592230748086755">"Nota"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Non hai imaxes dispoñibles no tablet."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Non hai imaxes dispoñibles no teléfono."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Foto de contacto"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nome de etiqueta personalizada"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Enviar chamadas directamente ao correo de voz"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Eliminar foto"</string>
+    <string name="noContacts" msgid="8579310973261953559">"Ningún contacto"</string>
+    <string name="noGroups" msgid="8614664663561385253">"Ningún grupo"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Para crear grupos precisas unha conta."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"Non hai ninguén neste grupo."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"Para engadir algo, edita o grupo."</string>
+    <string name="savingContact" msgid="4075751076741924939">"Gardando contacto..."</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"Contacto gardado"</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Non se puideron gardar os cambios nos contactos."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"Grupo gardado"</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Non se puideron gardar os cambios no grupo."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"1 contacto con número de teléfono"</item>
+    <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> contactos con números de teléfono"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ningún contacto ten número de teléfono"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 encontrado"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> encontrados"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Sen contactos"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 encontrado"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> encontrados"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Contactos"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritos"</string>
+    <string name="callBack" msgid="5498224409038809224">"Devolver chamada"</string>
+    <string name="callAgain" msgid="3197312117049874778">"Chamar de novo"</string>
+    <string name="returnCall" msgid="8171961914203617813">"Devolver chamada"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Engadir \"<xliff:g id="EMAIL">%s</xliff:g>\" aos contactos?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"foto de contacto"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"máis"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contactos"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Nomes dos teus contactos"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"Non se encontrou ningunha aplicación para procesar esta acción."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Fai clic para volver á pantalla anterior"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Engadir número de teléfono"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Engadir correo electrónico"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Non se encontrou ningunha aplicación para procesar esta acción."</string>
+    <string name="menu_share" msgid="943789700636542260">"Compartir"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Engadir a contactos"</string>
+    <string name="share_via" msgid="563121028023030093">"Compartir contacto mediante"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"Crear grupo na conta"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Chat de voz"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Chat de vídeo"</string>
+    <string name="connections" msgid="8098440723172028350">"Conexións"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"Engadir conexión"</string>
+    <string name="recent" msgid="2659189233141493004">"Recente"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"Actualizac. recentes"</string>
+    <string name="account_type_format" msgid="718948015590343010">"Contacto de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"Utilizar esta foto"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"Non editable desde esta aplicación."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"Non editable neste dispositivo"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Facer foto"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Facer foto nova"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Escoller foto"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Seleccionar nova foto"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"Estase actualizando a lista de contactos para reflectir o cambio de idioma."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"Estase actualizando a lista de contactos."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Estanse actualizando os contactos. \n\nO proceso de actualización precisa aproximadamente <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB de almacenamento interno.\n\nEscolle unha das seguintes opcións:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Desinstalar algunhas aplicacións"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Reintentar actualización"</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">"Deseleccionar todo"</string>
+    <string name="add_field" msgid="2384260056674995230">"Engadir outro campo"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Engadir nova"</string>
+    <string name="add_organization" msgid="7311893231158291197">"Engadir organización"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nome do grupo"</string>
+    <string name="description_star" msgid="2605854427360036550">"favorito"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"Editar contacto"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"non combinados"</item>
+    <item quantity="other" msgid="425683718017380845">"combinados a partir de <xliff:g id="COUNT">%0$d</xliff:g> fontes"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"Queres unir o contacto actual coa conta seleccionada?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Cambiar para editar o contacto seleccionado? Copiarase a información introducida ata o momento."</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"Copiar en Os meus contactos"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"Engadir a Os meus contactos"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Directorio <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"Personalizados"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Configuración"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Configuración"</string>
+    <string name="menu_help" msgid="5123887102216637725">"Axuda"</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="7356532842767854606">"Indica un 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="7911101713860139754">"Iniciar sesión nunha conta"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importar contactos"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"Crear novo grupo"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"Crear novo grupo"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 grupo"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> grupos"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Queres eliminar o grupo \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Os contactos non se eliminarán)."</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="COUNT_0">%1$d</xliff:g> persoa de <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="COUNT_0">%1$d</xliff:g> persoas de <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> persoa"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> persoas"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Escribe o nome do contacto antes de unilo con outro."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Copiar no portapapeis"</string>
+    <string name="set_default" msgid="4417505153468300351">"Definir como predeterminado"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Borrar valores predeterminados"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Texto copiado"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Descartar os cambios?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"Configurar o meu perfil"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"Escribe o nome da persoa"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"Nome do grupo"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"O meu perfil local"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"O meu perfil de <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Mostrando todos os contactos"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"A aplicación de Contactos funciona mellor cunha conta de Google.\n\n• Accede desde calquera navegador web.\n• Realiza copias de seguranza dos teus contactos de xeito seguro."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mantén os teus contactos seguros aínda que perdas o teléfono: sincroniza cun servizo en liña."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Engadir unha conta"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Non se creará unha copia de seguranza do teu novo contacto. Queres engadir unha conta que cree unha copia de seguranza dos contactos en liña?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"O teu novo contacto sincronizarase con <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Podes sincronizar o teu novo contacto cunha das seguintes contas. Cal queres usar?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Engadir contacto"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editar contacto"</string>
+    <string name="keep_local" msgid="1258761699192993322">"Gardar localmente"</string>
+    <string name="add_account" msgid="8201790677994503186">"Engadir conta"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Engadir conta nova"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Exportar ficheiros da base de datos"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"engadir novo contacto"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ver máis"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Ver menos"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Ver todo"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Recente"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Acerca de"</string>
+    <string name="send_message" msgid="8938418965550543196">"Enviar mensaxe"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Creando unha copia persoal..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Onte"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Mañá"</string>
+    <string name="today" msgid="8041090779381781781">"Hoxe"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Hoxe ás <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Mañá ás <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Evento sen título)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Configurar"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"MI"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organización"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Alcume"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Nota"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Sitio web"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Evento"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Relación"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"indicacións para a localización"</string>
+</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 9824863..6433c00 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"लोग"</string>
+    <string name="people" msgid="1190841469952343354">"संपर्क"</string>
     <string name="contactsList" msgid="8661624236494819731">"संपर्क"</string>
     <string name="shortcutContact" msgid="749243779392912958">"संपर्क"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"प्रत्यक्ष डायल"</string>
@@ -25,24 +25,26 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"कॉल करने के लिए कोई नंबर चुनें"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"संदेश भेजने के लिए कोई नंबर चुनें"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"कोई संपर्क चुनें"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"नया संपर्क चुनें"</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="viewContactDesription" msgid="214186610887547860">"संपर्क देखें"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"संपर्क संपादित करें"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"संपर्क बनाएं"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"समूह संपादित करें"</string>
     <string name="insertGroupDescription" msgid="5658512271662210139">"समूह बनाएं"</string>
     <string name="contactDetailAbout" msgid="5430408883907061400">"इस बारे में"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"अपडेट"</string>
+    <string name="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_create_contact_shortcut" msgid="1217971915748509640">"मुखपृष्ठ स्क्रीन पर रखें"</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="8368636463748691868">"अलग करें"</string>
@@ -65,9 +67,9 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"इस संपर्क में एकाधिक खातों की जानकारी है. केवल-पढ़ने के लिए खातों की जानकारी आपकी संपर्क सूचियों में छिपी रहेगी, उसे हटाया नहीं जाएगा."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"इस संपर्क को हटाने से एकाधिक खातों से जानकारी हट जाएगी."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"यह संपर्क हटा दिया जाएगा."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"छोड़ें"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"बदलावों को छोड़ें"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"संपर्क मौजूद नहीं है."</string>
-    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"मुखपृष्ठ स्क्रीन पर संपर्क विजेट जोड़ा गया."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"मुख्यपृष्ठ स्क्रीन पर संपर्क विजेट जोड़ा गया."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"नया संपर्क बनाएं"</string>
     <string name="pickerNewContactText" msgid="6166997164401048211">"नया संपर्क बनाएं"</string>
   <string-array name="otherLabels">
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"फ़ोन नंबर वाले <xliff:g id="COUNT">%d</xliff:g> संपर्क"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"फ़ोन नंबर वाले कोई संपर्क नहीं"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 संपर्क"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> संपर्क"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 मिला"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> मिले"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 मिला"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> मिले"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"सभी संपर्क"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"समूह"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"सभी संपर्क"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"पसंदीदा"</string>
     <string name="callBack" msgid="5498224409038809224">"कॉल बैक करें"</string>
     <string name="callAgain" msgid="3197312117049874778">"फिर से कॉल करें"</string>
     <string name="returnCall" msgid="8171961914203617813">"रिटर्न कॉल"</string>
@@ -118,37 +116,35 @@
     <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_missing_app" msgid="358168575340921552">"यह कार्यवाही प्रबंधित करने के लिए कोई ऐप्स  नहीं मिला."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"पिछली स्क्रीन पर लौटने के लिए क्लिक करें"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"फ़ोन नंबर जोड़ें"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ईमेल जोड़ें"</string>
+    <string name="missing_app" msgid="1466111003546611387">"यह कार्यवाही प्रबंधित करने के लिए कोई ऐप्स नहीं मिला."</string>
     <string name="menu_share" msgid="943789700636542260">"साझा करें"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"संपर्कों में जोड़ें"</string>
     <string name="share_via" msgid="563121028023030093">"इसके द्वारा संपर्क साझा करें"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"खाते के तहत समूह बनाएं"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"ध्वनि चैट"</string>
-    <string name="video_chat" msgid="1872255818640336072">"वीडियो चैट"</string>
+    <string name="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="recent_updates" msgid="4267258535615860710">"हाल ही के नई जानकारी"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> संपर्क"</string>
     <!-- no translation found for from_account_format (4469138575127580203) -->
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"इस फ़ोटो का उपयोग करें"</string>
-    <string name="contact_read_only" msgid="7421346527289472273">"इस एप्लिकेशन द्वारा संपादन-योग्‍य नहीं."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"इस संपर्क की कोई अतिरिक्त जानकारी नहीं है."</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"इस ऐप्स  द्वारा संपादन-योग्‍य नहीं."</string>
     <string name="group_read_only" msgid="1061762906115697637">"इस उपकरण पर संपादन योग्‍य नहीं."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"सूची को इसके अनुसार क्रमित करें"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"दिया गया नाम"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"उपनाम"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"संपर्क नामों को देखें"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"दिया गया नाम पहले"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"कुलनाम पहले"</string>
     <string name="take_photo" msgid="7496128293167402354">"फ़ोटो लें"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"नया फ़ोटो लें"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"गैलरी से फ़ोटो चुनें"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"गैलरी से नए फ़ोटो को चुनें"</string>
-    <string name="locale_change_in_progress" msgid="7583992153091537467">"भाषा के परिवर्तन दिखाने के लिए संपर्क सूची को अपडेट किया जा रहा है."</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"संपर्क सूची अपडेट की जा रही है."</string>
-    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"संपर्क अपग्रेड होने की प्रक्रिया में हैं. \n\nअपग्रेड प्रक्रिया को लगभग <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB आंतरिक संग्रहण की आवश्‍यकता होती है.\n\nनिम्‍न विकल्‍पों में से कोई एक चुनें:"</string>
-    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"कुछ एप्लिकेशन अनइंस्टॉल करें"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"फ़ोटो चुनें"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"नई फ़ोटो चुनें"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"भाषा के परिवर्तन दिखाने के लिए संपर्क सूची से नई जानकारी मिल रही है."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"संपर्क सूची से नई जानकारी मिल रही है."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"संपर्क अपग्रेड होने की प्रक्रिया में हैं. \n\nअपग्रेड प्रक्रिया को लगभग <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB मोबाइल संग्रहण की आवश्‍यकता होती है.\n\nनिम्‍न विकल्‍पों में से कोई एक चुनें:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"कुछ ऐप्स  अनइंस्टॉल करें"</string>
     <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"अपग्रेड का पुन: प्रयास करें"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"खोज रहा है…"</string>
     <string name="menu_display_selected" msgid="6470001164297969034">"चयनित दिखाएं"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"संगठन जोड़ें"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"दि‍नांक"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"समूह नाम"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> द्वारा"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="SOURCE">%2$s</xliff:g> द्वारा <xliff:g id="DATE">%1$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"पसंदीदा"</string>
     <string name="edit_contact" msgid="7529281274005689512">"संपर्क संपादित करें"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"एक व्‍यक्तिगत प्रतिलिपि बना रहा है…"</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"कस्टम"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"सेटिंग"</string>
     <string name="menu_settings" msgid="377929915873428211">"सेटिंग"</string>
@@ -189,7 +182,7 @@
     <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="7911101713860139754">"किसी खाते में साइन इन करें"</string>
+    <string name="contacts_unavailable_add_account" msgid="7911101713860139754">"किसी खाते में प्रवेश करें"</string>
     <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"संपर्क आयात करें"</string>
     <string name="create_group_dialog_title" msgid="6874527142828424475">"नया समूह बनाएं"</string>
     <string name="create_group_item_label" msgid="4411981763169654825">"नया समूह बनाएं"</string>
@@ -208,8 +201,8 @@
   </plurals>
     <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"अन्‍य संपर्क से जुड़ने से पहले संपर्क नाम लिखें."</string>
     <string name="copy_text" msgid="3257145021583508761">"क्‍लिपबोर्ड पर प्रतिलिपि बनाएं"</string>
-    <string name="set_default" msgid="4417505153468300351">"डिफ़ॉल्ट सेट करें"</string>
-    <string name="clear_default" msgid="7193185801596678067">"डिफ़ॉल्‍ट साफ़ करें"</string>
+    <string name="set_default" msgid="4417505153468300351">"सामान्य सेट करें"</string>
+    <string name="clear_default" msgid="7193185801596678067">"सामान्य साफ़ करें"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"पाठ की प्रतिलिपि बनाई गई"</string>
     <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"आपके परिवर्तन छोड़ें?"</string>
     <string name="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>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"मेरी स्थानीय प्रोफ़ाइल"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"मेरी <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> प्रोफ़ाइल"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"सभी संपर्क प्रदर्शित कर रहा है"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"लोग Google खाते के साथ बेहतर तरीके से कार्य करते हैं.\n\n• किसी भी वेब ब्राउज़र से पहुंचें.\n• सुरक्षि‍त रूप से अपने संपर्कों का बैकअप लें."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"संपर्क Google खाते के साथ बेहतर कार्य करता है.\n\n• किसी भी वेब ब्राउज़र से एक्सेस करें.\n• अपने संपर्कों का सुरक्षित रूप से बैकअप लें."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"अपना फ़ोन खो देने पर भी अपने संपर्क सुरक्षित रखें: किसी ऑनलाइन सेवा से समन्‍वयित करें."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"कोई खाता जोड़ें"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"आपके नए संपर्क का बैक अप नहीं लिया जाएगा. ऐसा खाता जोड़ें जो संपर्कों का ऑन‍लाइन बैक अप ले?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"आपका नया संपर्क <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> के साथ समन्‍वयित किया जाएगा."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"आप निम्‍न में से किसी एक खाते से अपने नए संपर्क को समन्‍वयित कर सकते हैं. आप किसका उपयोग करना चाहते हैं?"</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="contact_detail_picture_description" msgid="6083230522651287030">"चित्र. बदलने के लिए चुनें"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"नया संपर्क जोड़ें"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"अधिक देखें"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"कम देखें"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"सभी देखें"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"हाल ही का"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"संक्षिप्त विवरण"</string>
+    <string name="send_message" msgid="8938418965550543196">"संदेश भेजें"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"व्यक्तिगत प्रति बनाई जा रही है..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"कल"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"कल"</string>
+    <string name="today" msgid="8041090779381781781">"आज"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"आज <xliff:g id="TIME_INTERVAL">%s</xliff:g> बजे"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"कल <xliff:g id="TIME_INTERVAL">%s</xliff:g> बजे"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(शीर्षक रहित ईवेंट)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"सेट करें"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"संगठन का नाम"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"उपनाम"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"नोट"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"वेबसाइट"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ईवेंट"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"संबंध"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"स्थान के लिए दिशा निर्देश"</string>
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 41f9f08..1afc5fd 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Osobe"</string>
+    <string name="people" msgid="1190841469952343354">"Kontakti"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakti"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Izravan poziv"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Odaberite broj za pozivanje"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Odabir broja za poruku"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Odaberite kontakt"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Odaberite novi kontakt"</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="viewContactDesription" msgid="214186610887547860">"Prikaži kontakt"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Uredi kontakt"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Izradi kontakt"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Uredi skupinu"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Mjesto na početnom zaslonu"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Ovaj kontakt sadrži informacije iz više računa. Informacije iz računa koji su samo za čitanje bit će skrivene na popise kontakata, a ne izbrisane."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Brisanjem ovog kontakta izbrisat ćete podatke s više računa."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Ovaj će kontakt biti izbrisan."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Odbaci"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Odbaci promjene"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt ne postoji."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Widget za kontakte dodan je na vaš početni zaslon."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Izrada novog kontakta"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"Kontakata s tel. brojevima: <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nema kontakata s telefonskim brojevima"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 kontakt"</item>
-    <item quantity="other" msgid="3578469907265375314">"Broj kontakata: <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 pronađen"</item>
     <item quantity="other" msgid="3852668542926965042">"Pronađeno kontakata: <xliff:g id="COUNT">%d</xliff:g>"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 pronađen"</item>
     <item quantity="other" msgid="7988132539476575389">"Pronađeno kontakata: <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Svi kontakti"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grupe"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Svi kontakti"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoriti"</string>
     <string name="callBack" msgid="5498224409038809224">"Povratni poziv"</string>
     <string name="callAgain" msgid="3197312117049874778">"Zovi ponovo"</string>
     <string name="returnCall" msgid="8171961914203617813">"Povratni poziv"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> od <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontakata"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Nazivi vaših kontakata"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Nije pronađena nijedna aplikacija koja može provesti ovu radnju."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliknite za povratak na prethodni zaslon"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Dodajte telefonski broj"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Dodajte e-adresu"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Nije pronađena nijedna aplikacija koja može provesti tu radnju."</string>
     <string name="menu_share" msgid="943789700636542260">"Podijeli"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Dodaj u kontakte"</string>
     <string name="share_via" msgid="563121028023030093">"Dijeli kontakt putem"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Napravite skupinu pod računom"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Glasovni chat"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Upotrijebi ovu fotografiju"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Iz ove aplikacije ne može se uređivati."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Nema dodatnih podataka za ovaj kontakt."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Na ovom uređaju ne može se uređivati"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Poredaj popis prema"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Ime"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Prezime"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Prikaži imena kontakata"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Najprije ime"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Najprije prezime"</string>
     <string name="take_photo" msgid="7496128293167402354">"Snimi fotografiju"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Snimi novu fotografiju"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Iz Galerije odaberite fotografiju"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Odaberite novu fotografiju iz galerije"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Odaberite fotografiju"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Odaberite novu fotografiju"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Popis kontakata ažurira se da bi se pokazala promjena jezika."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Popis kontakata ažurira se."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Kontakti se nadograđuju. \n\nZa proces nadogradnje potrebno je približno <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB interne pohrane.\n\nOdaberite jednu od sljedećih opcija:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Dodaj organizaciju"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Naziv grupe"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"preko izvora <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> preko izvora <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"favorit"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Uredi kontakt"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Stvaranje osobne kopije..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Prilagođeno"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Postavke"</string>
     <string name="menu_settings" msgid="377929915873428211">"Postavke"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Moj lokalni profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Moj <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profil"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Prikaz svih kontakata"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Značajka Osobe radi bolje s Google računom.\n\n• Pristup iz bilo kojeg web-preglednika.\n• Stvorite sigurnosnu kopiju kontakata."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Kontakti funkcioniraju bolje uz Google račun.\n\n• Pristupajte im iz bilo kojeg web-preglednika.\n• Stvorite sigurnosnu kopiju kontakata."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Očuvajte sigurnost svojih kontakata čak i ako izgubite telefon, sinkronizirajte ih mrežnom uslugom."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Dodajte račun"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Sigurnosna kopija novog kontakta neće biti napravljena. Želite li dodati račun za pravljenje sigurnosnih kopija kontakata na mreži?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Vaš novi kontakt bit će sinkroniziran s računom <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Možete sinkronizirati svoj novi kontakt pomoću jednog od sljedećih računa. Koji želite koristiti?"</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 lokalno"</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="contact_detail_picture_description" msgid="6083230522651287030">"Slika. Odaberite za promjenu"</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="6137651078366797938">"Izrada 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="content_description_directions" msgid="2686791825798189335">"upute do lokacije"</string>
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index f38cf9a..d94accf 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Személyek"</string>
+    <string name="people" msgid="1190841469952343354">"Névjegyek"</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>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Névjegy kiválasztása"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Új névjegy kiválasztá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="viewContactDesription" msgid="214186610887547860">"Névjegy megtekintése"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Névjegy szerkesztése"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Névjegy létrehozása"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Csoport szerkesztése"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Helyezze el a kezdőképernyőn"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Ez a névjegy több fiókból is tartalmaz adatokat. Az írásvédett fiókokból származó adatok nem jelennek meg a Címtárban, de nem kerülnek törlésre."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"A névjegy törlésével több fiókból is töröl adatokat."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"A névjegy törlésre kerül."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Elveté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" msgid="7874133287558150877">"A Névjegy modul felkerült a kezdőképernyőre."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Új névjegy létrehozása"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> névjegy telefonszámmal"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nincsenek telefonszámot is tartalmazó névjegyek"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 névjegy"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> névjegy"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 találat"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> találat"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 találat"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> találat"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Az összes névjegy"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Csoportok"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Összes névjegy"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Kedvencek"</string>
     <string name="callBack" msgid="5498224409038809224">"Visszahívás"</string>
     <string name="callAgain" msgid="3197312117049874778">"Hívásismétlés"</string>
     <string name="returnCall" msgid="8171961914203617813">"Visszahívás"</string>
@@ -119,7 +117,12 @@
     <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="share_via" msgid="563121028023030093">"Névjegy megosztása a következőn:"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Csoport létrehozása a fiókban"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Audiocsevegés"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Fotó felhasználása"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Nem szerkeszthető ezen alkalmazásból."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Nincsenek további adatok ennél a névjegynél."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Nem szerkeszthető ezen a készüléken"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Lista rendezési elve:"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Utónév"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Vezetéknév"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Névjegyek megtekintése"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Utónév előre"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Vezetéknév elöl"</string>
     <string name="take_photo" msgid="7496128293167402354">"Fotó készítése"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Új fénykép készítése"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Fotó kiválasztása a Galériából"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Új fotó kiválasztása a Galériából"</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="locale_change_in_progress" msgid="7583992153091537467">"Az ismerőslista frissítése folyamatban van, hogy tükrözze a nyelv módosítását."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Az ismerőslista frissítése folyamatban van."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"A névjegyek frissítése folyamatban van. \n\nA frissítés elvégzéséhez megközelítőleg <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB belső tárhelyre lesz szükség.\n\nVálasszon a következő lehetőségek közül:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Szervezet hozzáadása"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Dátum"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Csoport neve"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"- <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> - <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"kedvenc"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Névjegy szerkesztése"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Személyes másolat készítése..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Egyéni"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Beállítások"</string>
     <string name="menu_settings" msgid="377929915873428211">"Beállítások"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Helyi profilom"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profilom"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Az összes névjegy megjelenítése"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"A Személyek alkalmazás jobban működik egy Google Fiókkal.\n\n• Bármilyen bőngészőből elérheti\n• Biztonsági másolatot készíthet névjegyeiről."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"A Névjegyek alkalmazás jobban működik egy Google-fiókkal.\n\n• Bármilyen böngészőből elérheti.\n• Biztonsági másolatot készíthet névjegyeiről."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Tartsa névjegyeit biztonságban akkor is, ha elveszíti a telefont: szinkronizáljon egy online szolgáltatással."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Fiók hozzáadása"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Az Ön új névjegyéről nem készül biztonsági másolat. Hozzáad egy olyan fiókot, amelyik online biztonsági másolatot készít a névjegyekről?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Az új névjegyet a következő fiókkal fogjuk szinkronizálni: <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Szinkronizálhatja az új névjegyet a következő fiókok valamelyikével. Melyiket kívánja használni?"</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="keep_local" msgid="1258761699192993322">"Tárolás helyben"</string>
     <string name="add_account" msgid="8201790677994503186">"Fiók hozzáadá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="contact_detail_picture_description" msgid="6083230522651287030">"Kép. Válassza ki a módosításhoz"</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="6137651078366797938">"Személyes másolat létrehozása…"</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="content_description_directions" msgid="2686791825798189335">"útvonalterv a helyhez"</string>
 </resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
new file mode 100644
index 0000000..1562d96
--- /dev/null
+++ b/res/values-hy-rAM/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"Կոնտակտներ"</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="contactPickerActivityTitle" msgid="4301062192337417640">"Ընտրել կոնտակտ"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Ընտրեք նոր կոնտակտ"</string>
+    <string name="starredList" msgid="4817256136413959463">"Աստղանշված"</string>
+    <string name="frequentList" msgid="7154768136473953056">"Հաճախակի"</string>
+    <string name="strequentList" msgid="5640192862059373511">"Ընտրյալներ"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"Մանրամասներ կոնտակտի մասին"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"Խմբագրել կոնտակտը"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"Ստեղծել կոնտակտ"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"Խմբագրել խումբը"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"Ստեղծել խումբ"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"Տեղեկատվություն"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"Թարմացումները"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Որոնել կոնտակտներ"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"Դիտել կոնտակտը"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Ավելացնել ընտրյալներում"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Հեռացնել ընտրյալներից"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Հեռացված է ընտրյալներից"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Ավելացված է ընտրյալներում"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Խմբագրել"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Ջնջել"</string>
+    <string name="menu_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="8368636463748691868">"Առանձնացնել"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"Խմբագրել"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"Ջնջել"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Ավելացնել կոնտակտ"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Ավելացնել խումբ"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"Բաժանե՞լ կոնտակտը"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"Այս կոնտակտը կբաժանվի մի քանի կոնտակտների:"</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"Միացնել"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Միացնել կոնտակտները"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"Ընտրեք կոնտակտը, որը ցանկանում եք միացնել <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="7208148163607047389">"Կոնտակտները միացվեցին"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Կարգավորել զանգերանգը"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Բոլոր զանգերը՝ ձայնային փոստին"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"Դուք չէք կարող ջնջել միայն ընթերցման համար նախատեսված հաշիվների կոնտակտները, սակայն կարող եք ձեր կոնտակտների ցանկից թաքցնել:"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Այս կոնտակտը պարունակում է տվյալներմի քանի հաշվիներից: Միայն ընթերցելի հաշիվներից տվյալները կթաքցվեն ձեր կոնտակների ցանկից, չեն ջնջվի:"</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Այս կոնտակտը ջնջելիս տվյալները ևս մի քանի հաշիվներից կջնջվեն:"</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"Այս կոնտակտը կջնջվի:"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Հրաժարվել փոփոխություններից"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Կոնտակտը գոյություն չունի:"</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Կոնտակտի վիջեթը ավելացվեց Գլխավոր էկրանին:"</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Ստեղծել նոր կոնտակտ"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Ստեղծել նոր կոնտակտ"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"Կազմակերպություն"</item>
+    <item msgid="7196592230748086755">"Նշում"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Գրասալիկի վրա հասանելի նկարներ չկան:"</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Հեռախոսում մատչելի լուսանկարներ չկան:"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Կոնտակտի լուսանկարը"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Պիտակի հատուկ անունը"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Ուղարկել զանգերը անմիջապես ձայնային փոստին"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Հեռացնել լուսանկարը"</string>
+    <string name="noContacts" msgid="8579310973261953559">"Կոնտակտներ չկան:"</string>
+    <string name="noGroups" msgid="8614664663561385253">"Խմբեր չկան:"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Խմբեր ստեղծելու համար դուք պետք է հաշիվ ունենաք:"</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"Այս խմբում ոչ ոք չկա:"</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"Խմբագրեք` խմբին անդամ ավելացնելու համար:"</string>
+    <string name="savingContact" msgid="4075751076741924939">"Կոնտակտի պահվում է..."</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"Կոնտակտը պահվեց:"</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Հնարավոր չէ պահել կոնտակտային փոփոխությունները:"</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"Խումբը պահվեց:"</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Հնարավոր չէ պահել խմբի փոփոխությունները:"</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"1 կոնտակտ հեռախոսահամարով"</item>
+    <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> կոնտակտ հեռախոսահամարներով"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Հեռախոսահամարներով կոնտակտներ չկան"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 գտնված"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> գտնված"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Կոտնակտներ չկան"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"գտնվել է 1-ը"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> գտնված"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Բոլոր կոնտակտները"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Ընտրանի"</string>
+    <string name="callBack" msgid="5498224409038809224">"Հետ զանգել"</string>
+    <string name="callAgain" msgid="3197312117049874778">"Կրկին զանգել"</string>
+    <string name="returnCall" msgid="8171961914203617813">"Հետ զանգել"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Ավելացնե՞լ «<xliff:g id="EMAIL">%s</xliff:g>»-ը կոնտակտներին:"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"կոնտակտի լուսանկարը"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"գումարել"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g>-ը <xliff:g id="TOTAL_NUMBER">%s</xliff:g> կոնտակտից"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Ձեր կոնտակտների անունները"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"Այս գործողությունը կատարելու համար ոչ մի ծրագիր չի գտնվել:"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Սեղմեք՝ նախորդ էկրանին վերադառնալու համար"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Ավելացնել հեռախոսահամար"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Ավելացնել էլփոստ"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Այս գործողությունը կատարելու համար ոչ մի ծրագիր չի գտնվել:"</string>
+    <string name="menu_share" msgid="943789700636542260">"Տարածել"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Ավելացնել կոնտակտներում"</string>
+    <string name="share_via" msgid="563121028023030093">"Տարածել կոնտակտը"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"Ստեղծել խումբ հաշվի ներքևում"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Ձայնային զրույց"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Տեսազրույց"</string>
+    <string name="connections" msgid="8098440723172028350">"Կապեր"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"Ավելացնել կապ"</string>
+    <string name="recent" msgid="2659189233141493004">"Վերջին"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"Վերջին թարմացումները"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> կոնտակտ"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"Օգտագործել այս լուսանկարը"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"Ենթակա չէ խմբագրման այս ծրագրով:"</string>
+    <string name="group_read_only" msgid="1061762906115697637">"Խմբագրելի չէ այս սարքից:"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Լուսանկարել"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Լուսանկարել նորը"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Ընտրել լուսանկար"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Ընտրել նոր լուսանկար"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"Կոնտակտների ցանկը թարմացվում է՝ լեզվի փոփոխություններն արտացոլելու համար:"</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"Կոնտակտների ցանկը թարմացվում է:"</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Կոնտակտները թարմացման գործընթացի մեջ են:\n\nԹարմացման գործընթացը պահանջում է մոտավորապես <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> Մբ հեռախոսի ներքին պահոց:\n\nԸնտրեք հետևյալ ընրանքներից մեկը՝"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Ապատեղադրել որոշ ծրագրեր"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Կրկին փորձել թարմացնել"</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_field" msgid="2384260056674995230">"Ավելացնել այլ դաշտ"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Ավելացնել նորը"</string>
+    <string name="add_organization" msgid="7311893231158291197">"Ավելացնել կազմակերպություն"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Ամսաթիվը"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Խմբի անունը"</string>
+    <string name="description_star" msgid="2605854427360036550">"ընտրյալ"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"Խմբագրել կոնտակտը"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"չմիավորված"</item>
+    <item quantity="other" msgid="425683718017380845">"միացվել է <xliff:g id="COUNT">%0$d</xliff:g> աղբյուրից"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"Միացնե՞լ այս կոնտակտը ընտրված կոնտակտի հետ"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Փոխարկե՞լ ընտրված կոնտակտի խմբագրմանը: Մինչ այս պահը ձեր մուտքագրած տեղեկությունները կպատճենվեն:"</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"Պատճենել Իմ կոնտակտներում"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"Ավելացնել Իմ կոնտակտներին"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> գրացուցակ"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"Հատուկ"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Կարգավորումներ"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Կարգավորումներ"</string>
+    <string name="menu_help" msgid="5123887102216637725">"Օգնություն"</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="7356532842767854606">"Ցուցադրել տարին"</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="7911101713860139754">"Մուտք գործել հաշիվ"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Ներմուծել կոնտակտներ"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"Ստեղծել նոր խումբ"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"Ստեղծել նոր խումբ"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 խումբ"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> խումբ"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Ջնջե՞լ «<xliff:g id="GROUP_LABEL">%1$s</xliff:g>» խումբը: (Կոնտակտները չեն ջնջվի:)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="COUNT_0">%1$d</xliff:g> անձ <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>-ից"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="COUNT_0">%1$d</xliff:g> մարդ <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>-ից"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> անձ"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> մարդ"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Մուտքագրեք կոնտակտի անունը մեկ ուրիշի հետ միացնելուց առաջ:"</string>
+    <string name="copy_text" msgid="3257145021583508761">"Պատճենել սեղմատախտակին"</string>
+    <string name="set_default" msgid="4417505153468300351">"Սահմանել լռելյայն"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Մաքրել լռելյայն"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Տեքսը պատճենված է"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Հրաժարվե՞լ ձեր փոփոխություններից"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"Կարգավորել իմ պրոֆիլը"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"Մուտքագրեք անձի անունը"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"Խմբի անունը"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Իմ տեղային պրոֆիլը"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Իմ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> պրոֆիլը"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Ցուցադրվում են բոլոր կոնտակտները"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Կոնտակտների հավելվածն ավելի լավ է աշխատում Google հաշվի հետ:\n\n• Մուտք գործեք ցանկացած վեբ դիտարկչով:\n• Պահուստավորեք ձեր կոնտակտներն ապահով ճանապարհով:"</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Պահեք ձեր կոնտակտները ապահով, նույնիսկ եթե կորցնեք ձեր հեռախոսը. համաժամեցրեք առցանց ծառայության հետ:"</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Ավելացնել հաշիվ"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Ձեր նոր կոնտակտը չի պահուստավորվի: Ավելացնե՞լ հաշիվ, որն առցանց է պահուստավորում կոնտակտները:"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Ձեր նոր կոնտակտը կհամաժամեցվի <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>-ի հետ:"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Դուք կարող եք համաժամեցնել ձեր նոր կոնտակտը այս հաշիվներից որևէ մեկի հետ: Ո՞րն եք ցանկանում ընտրել:"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Ավելացնել կոնտակտ"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Փոփոխել կոնտակտը"</string>
+    <string name="keep_local" msgid="1258761699192993322">"Պահել տեղային"</string>
+    <string name="add_account" msgid="8201790677994503186">"Ավելացնել հաշիվ"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Ավելացնել նոր հաշիվ"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Արտահանել տվյալների շտեմարանի ֆայլերը"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"ավելացնել նոր կոնտակտ"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Տեսնել ավելին"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Տեսնել պակաս"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Տեսնել բոլորը"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Վերջին գործողությունները"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Տեղեկատվություն"</string>
+    <string name="send_message" msgid="8938418965550543196">"Ուղարկել հաղորդագրություն"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Ստեղծվում է անձնական պատճենը..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Երեկ"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Վաղը"</string>
+    <string name="today" msgid="8041090779381781781">"Այսօր"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Այսօր՝ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Վաղը՝ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Անվերնագիր միջոցառում)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Սահմանել"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Կազմակերպություն"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Մականուն"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Գրառում"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Վեբկայք"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Միջոցառում"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Հարաբերություն"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"Երթուղիներ"</string>
+</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 83654cc..32527ba 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Orang"</string>
+    <string name="people" msgid="1190841469952343354">"Kontak"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontak"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontak"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Panggilan langsung"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Pilih nomor untuk dipanggil"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Pilih nomor untuk dikirimi pesan"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Pilih kontak"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Pilih 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="viewContactDesription" msgid="214186610887547860">"Lihat kontak"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Edit kontak"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Buat kontak"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Edit grup"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Letakkan di layar Utama"</string>
@@ -60,12 +62,12 @@
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Semua kontak"</string>
     <string name="contactsJoinedMessage" msgid="7208148163607047389">"Kontak telah bergabung"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Setel nada dering"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Semua panggilan ke kotak pesan"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Panggilan masuk kotak pesan"</string>
     <string name="readOnlyContactWarning" msgid="7808825687289848259">"Anda tidak dapat menghapus kontak dari akun hanya-baca, namun Anda dapat menyembunyikannya dalam daftar kontak Anda."</string>
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Kontak ini berisi informasi dari beberapa akun. Informasi dari akun hanya-baca akan disembunyikan dalam daftar kontak Anda, tidak dihapus."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Menghapus kontak ini akan menghapus informasi dari beberapa akun."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Kontak ini akan dihapus."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Buang"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Batalkan perubahan"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontak tidak ada."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Widget kontak ditambahkan ke layar Utama."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Buat kontak baru"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> kontak dengan nomor telepon"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Tidak ada kontak dengan nomor telepon"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 kontak"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> kontak"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"Ada 1"</item>
     <item quantity="other" msgid="3852668542926965042">"Ada <xliff:g id="COUNT">%d</xliff:g>"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"Ada 1"</item>
     <item quantity="other" msgid="7988132539476575389">"Ada <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Semua kontak"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grup"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Semua kontak"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favorit"</string>
     <string name="callBack" msgid="5498224409038809224">"Hubungi kembali"</string>
     <string name="callAgain" msgid="3197312117049874778">"Hubungi sekali lagi"</string>
     <string name="returnCall" msgid="8171961914203617813">"Panggilan kembali"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> dari <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontak"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Nama kontak Anda"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Tidak ada apl yang ditemukan untuk menangani tindakan ini."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klik untuk kembali ke layar sebelumnya"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Tambahkan nomor telepon"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Tambahkan email"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Tidak ditemukan aplikasi untuk menangani tindakan ini."</string>
     <string name="menu_share" msgid="943789700636542260">"Bagikan"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Tambahkan ke kontak"</string>
     <string name="share_via" msgid="563121028023030093">"Bagikan kontak melalui"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Buat grup dalam akun"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Obrolan suara"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Gunakan foto ini"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Tidak dapat diedit dari apl ini."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Tidak ada informasi tambahan untuk kontak ini."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Tidak dapat diedit pada perangkat ini."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Sortir daftar menurut"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Nama depan"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Nama keluarga"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Lihat nama kontak"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Nama depan pertama"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Nama keluarga pertama"</string>
     <string name="take_photo" msgid="7496128293167402354">"Ambil foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Ambil foto baru"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Pilih foto dari Galeri"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Pilih foto baru dari Galeri"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Pilih foto"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Pilih foto baru"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Daftar kontak sedang diperbarui untuk mencerminkan perubahan bahasa."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Daftar kontak sedang diperbarui."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Kontak sedang dalam proses peningkatan versi. \n\nProses peningkatan versi memerlukan sekitar <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB dari penyimpanan internal.\n\nPilih salah satu opsi berikut:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Tambahkan organisasi"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Tanggal"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nama grup"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"melalui <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> melalui <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"favorit"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Edit kontak"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Membuat salinan pribadi..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Khusus"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Setelan"</string>
     <string name="menu_settings" msgid="377929915873428211">"Setelan"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Profil lokal saya"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> saya"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Menampilkan semua kontak"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Orang bekerja lebih baik dengan Akun Google.\n\n• Akses dari browser web mana pun.\n• Cadangkan kontak Anda dengan aman."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Kontak bekerja lebih baik dengan Akun Google.\n\n• Akses dari browser web apa pun.\n• Cadangkan kontak Anda dengan aman."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Tetap amankan kontak Anda jika kehilangan ponsel: sinkronkan dengan layanan online."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Tambahkan akun"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Kontak baru Anda tidak akan dicadangkan. Tambahkan akun yang mencadangkan kontak secara online?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Kontak baru Anda akan disinkronkan dengan <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Anda dapat menyinkronkan kontak baru dengan salah satu akun berikut. Akun mana yang ingin Anda gunakan?"</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="keep_local" msgid="1258761699192993322">"Simpan secara lokal"</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="contact_detail_picture_description" msgid="6083230522651287030">"Gambar. Pilih untuk mengubah"</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="6137651078366797938">"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="content_description_directions" msgid="2686791825798189335">"petunjuk arah ke lokasi"</string>
 </resources>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
new file mode 100644
index 0000000..49809f7
--- /dev/null
+++ b/res/values-is-rIS/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"Tengiliðir"</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="contactPickerActivityTitle" msgid="4301062192337417640">"Veldu tengilið"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Veldu nýjan tengilið"</string>
+    <string name="starredList" msgid="4817256136413959463">"Stjörnumerktir"</string>
+    <string name="frequentList" msgid="7154768136473953056">"Mikil samskipti"</string>
+    <string name="strequentList" msgid="5640192862059373511">"Uppáhald"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"Upplýsingar um tengilið"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"Breyta tengilið"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"Búa til tengilið"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"Breyta hóp"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"Búa til hóp"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"Um"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"Uppfærslur"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Leita í tengiliðum"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"Skoða tengilið"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Bæta við uppáhald"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Fjarlægja úr uppáhaldi"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Fjarlægt úr uppáhaldi"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Bætt við uppáhald"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Breyta"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Eyða"</string>
+    <string name="menu_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="8368636463748691868">"Skipta upp"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"Breyta"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"Eyða"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Bæta tengilið við"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Bæta hóp við"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"Skipta tengilið upp?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"Þessum tengilið verður skipt upp í fleiri tengiliði."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"Tengja"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Sameina tengiliði"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"Veldu tengiliðinn sem þú vilt að <xliff:g id="NAME">%s</xliff:g> sameinist:"</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="7208148163607047389">"Tengiliðirnir voru sameinaðir"</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="7808825687289848259">"Ekki er hægt að eyða tengiliðum af skrifvörðum reikningum en hægt er að fela þá í tengliðalistanum."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Þessi tengiliður inniheldur upplýsingar af mörgum reikningum. Upplýsingar af skrifvörðum reikningum verða faldar í tengiliðalistanum en ekki eytt."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Ef þessum tengilið er eytt verður upplýsingum eytt af mörgum reikningum."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"Þessum tengilið verður eytt."</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" msgid="7874133287558150877">"Tengiliðagræjunni var bætt á heimaskjáinn."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Búa til nýjan tengilið"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Búa til nýjan tengilið"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"Fyrirtæki"</item>
+    <item msgid="7196592230748086755">"Athugasemd"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Engar myndir eru tiltækar í spjaldtölvunni."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Engar myndir eru tiltækar í símanum."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Mynd tengiliðar"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Sérsniðið flokksheiti"</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="8579310973261953559">"Engir tengiliðir."</string>
+    <string name="noGroups" msgid="8614664663561385253">"Engir hópar."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Þú þarft að vera með reikning til að geta búið til hópa."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"Það er enginn í þessum hóp."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"Breyttu hópnum til að bæta fólki við hann."</string>
+    <string name="savingContact" msgid="4075751076741924939">"Vistar tengilið…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"Tengiliður vistaður."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Ekki tókst að vista breytingar á tengiliðnum."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"Hópur vistaður."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Ekki tókst að vista breytingarnar á hópnum."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"Einn tengiliður með símanúmer"</item>
+    <item quantity="other" msgid="3299954047880968205">"<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">
+    <item quantity="one" msgid="5517063038754171134">"Einn fannst"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> fundust"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Engir tengiliðir"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"Einn fannst"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> fundust"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Allir tengil."</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Uppáhald"</string>
+    <string name="callBack" msgid="5498224409038809224">"Hringja til baka"</string>
+    <string name="callAgain" msgid="3197312117049874778">"Hringja aftur"</string>
+    <string name="returnCall" msgid="8171961914203617813">"Hringja til baka"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Bæta „<xliff:g id="EMAIL">%s</xliff:g>“ við tengiliði?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"mynd tengiliðar"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"plús"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> af <xliff:g id="TOTAL_NUMBER">%s</xliff:g> tengiliðum"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Nöfn tengiliðanna þinna"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"Ekkert forrit fannst sem getur framkvæmt þessa aðgerð."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Smelltu til að fara aftur á fyrri skjá"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Bæta við símanúmeri"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Bæta við netfangi"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Ekkert forrit fannst sem getur framkvæmt þessa aðgerð."</string>
+    <string name="menu_share" msgid="943789700636542260">"Deila"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Bæta við tengiliði"</string>
+    <string name="share_via" msgid="563121028023030093">"Deila tengilið í gegnum"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"Búa til hóp undir reikningi"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Símtalsspjall"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Myndspjall"</string>
+    <string name="connections" msgid="8098440723172028350">"Tengingar"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"Bæta tengingu við"</string>
+    <string name="recent" msgid="2659189233141493004">"Nýlegt"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"Nýlegar uppfærslur"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> tengiliður"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"Nota þessa mynd"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"Ekki hægt að breyta úr þessu forriti."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"Ekki hægt að breyta í þessu tæki."</string>
+    <string name="take_photo" msgid="7496128293167402354">"Taka mynd"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Taka nýja mynd"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Velja mynd"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Velja nýja mynd"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"Verið er að uppfæra tengiliðalistann í samræmi við valið tungumál."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"Verið er að uppfæra tengiliðalistann."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Verið er að uppfæra tengiliði. \n\nUppfærsluferlið notar u.þ.b. <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB af innbyggðu geymslunni.\n\nVeldu einn eftirfarandi valkosta:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Fjarlægja einhver forrit"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Prófa uppfærslu aftur"</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_field" msgid="2384260056674995230">"Bæta nýjum reit við"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Bæta nýjum við"</string>
+    <string name="add_organization" msgid="7311893231158291197">"Bæta fyrirtæki við"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Dagsetning"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Heiti hóps"</string>
+    <string name="description_star" msgid="2605854427360036550">"uppáhald"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"Breyta tengilið"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"ekki sameinaður"</item>
+    <item quantity="other" msgid="425683718017380845">"sameinaður úr <xliff:g id="COUNT">%0$d</xliff:g> færslum"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"Viltu sameina núverandi tengilið og valda tengiliðinn?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Skipta yfir í að breyta völdum tengilið? Upplýsingarnar sem þú hefur sett inn nú þegar verða afritaðar."</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"Afrita í tengiliðina mína"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"Bæta við tengiliði"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Skrá <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"Sérsniðið"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Stillingar"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Stillingar"</string>
+    <string name="menu_help" msgid="5123887102216637725">"Hjálp"</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="7356532842767854606">"Gefa upp ár"</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="7911101713860139754">"Innskráning á reikning"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Flytja tengiliði inn"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"Búa til nýjan hóp"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"Búa til nýjan hóp"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"Einn hópur"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> hópar"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Eyða hópnum „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Tengiliðunum sjálfum verður ekki eytt.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="COUNT_0">%1$d</xliff:g> aðili úr <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="COUNT_0">%1$d</xliff:g> aðilar úr <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> aðili"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> aðilar"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Sláðu inn nafn tengiliðar áður en þú sameinar hann öðrum."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Afrita á klippiborð"</string>
+    <string name="set_default" msgid="4417505153468300351">"Velja sem sjálfgefið"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Hreinsa sjálfgefið"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Texti afritaður"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Hunsa breytingarnar?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"Setja upp prófílinn minn"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"Sláðu inn nafn tengiliðar"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"Heiti hópsins"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Staðbundinn prófíll"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> prófíllinn minn"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Allir tengiliðir sýndir"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Tengiliðir virka betur með Google reikningi.\n\n• Aðgangur í öllum vöfrum.\n• Tekur öryggisafrit af tengiliðunum þínum."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Ekki glata tengiliðunum þótt þú týnir símanum: Samstilltu þá við netþjónustu."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Bættu reikningi við"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Ekki verður tekið öryggisafrit af nýja tengiliðnum. Viltu bæta við reikningi sem tekur öryggisafrit af tengiliðum á netinu?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Nýi tengiliðurinn verður samstilltur við <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Þú getur samstillt nýja tengiliðinn við einn eftirfarandi reikninga. Hvern þeirra viltu nota?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Bæta tengilið við"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Breyta tengilið"</string>
+    <string name="keep_local" msgid="1258761699192993322">"Halda í tækinu"</string>
+    <string name="add_account" msgid="8201790677994503186">"Bæta reikningi við"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Bæta nýjum reikningi við"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Flytja út gagnagrunnsskrár"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"bæta nýjum tengilið við"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Sjá meira"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Minnka"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Sjá allt"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Nýlegt"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Um"</string>
+    <string name="send_message" msgid="8938418965550543196">"Senda skilaboð"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Býr til afrit til einkanota…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Í gær"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Á morgun"</string>
+    <string name="today" msgid="8041090779381781781">"Í dag"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Í dag klukkan <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Á morgun klukkan <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g> kl. <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Ónefndur viðburður)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Nota"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"Spjall"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Fyrirtæki"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Gælunafn"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Athugasemd"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Vefsvæði"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Viðburður"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Tengsl"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"leiðarlýsing að stað"</string>
+</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 08c513c..766de6a 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Persone"</string>
+    <string name="people" msgid="1190841469952343354">"Contatti"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contatti"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contatto"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Composizione diretta"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Scegli un contatto"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Seleziona 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="viewContactDesription" msgid="214186610887547860">"Visualizza contatto"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Modifica contatto"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Crea contatto"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Modifica gruppo"</string>
@@ -40,6 +40,8 @@
     <string name="menu_viewContact" msgid="2795575601596468581">"Visualizza contatto"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Aggiungi a 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_create_contact_shortcut" msgid="1217971915748509640">"Aggiungi a schermata Home"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Il contatto contiene informazioni da più account. Le informazioni provenienti da account di sola lettura verranno nascoste nei tuoi elenchi di contatti, non eliminate."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"L\'eliminazione di questo contatto causerà l\'eliminazione di informazioni da più account."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Il contatto verrà eliminato."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Ignora"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Ignora modifiche"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Contatto non esistente."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Widget del contatto aggiunto alla schermata Home."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Crea nuovo contatto"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> contatti con numeri di telefono"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nessun contatto con numeri di telefono"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 contatto"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> contatti"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 trovato"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> trovati"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 trovato"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> trovati"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Tutti i contatti"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Gruppi"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Tutti i cont."</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Preferiti"</string>
     <string name="callBack" msgid="5498224409038809224">"Richiama"</string>
     <string name="callAgain" msgid="3197312117049874778">"Richiama"</string>
     <string name="returnCall" msgid="8171961914203617813">"Chiama numero"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> contatti su <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"I nomi dei tuoi contatti"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Nessuna applicazione trovata per gestire questa azione."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Fai clic per tornare alla schermata precedente"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Aggiungi numero di telefono"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Aggiungi email"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Nessuna applicazione trovata per gestire questa azione."</string>
     <string name="menu_share" msgid="943789700636542260">"Condividi"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Aggiungi a contatti"</string>
     <string name="share_via" msgid="563121028023030093">"Condividi contatto tramite"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Crea un gruppo nell\'account"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Chat vocale"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Utilizza questa foto"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Non modificabile da questa applicazione."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Nessuna informazione aggiuntiva per questo contatto."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Non modificabile su questo dispositivo."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Ordina elenco per"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Nome"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Cognome"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Visualizza nomi contatti"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Prima il nome"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Prima il cognome"</string>
     <string name="take_photo" msgid="7496128293167402354">"Scatta foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Scatta nuova foto"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Scegli la foto dalla Galleria"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Seleziona nuova foto da galleria"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Scegli foto"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Seleziona nuova foto"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Elenco contatti in fase di aggiornamento per l\'applicazione della modifica della lingua."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Elenco contatti in fase di aggiornamento."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Contatti in fase di upgrade. \n\nIl processo di upgrade richiede circa <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB di memoria interna.\n\nScegli una delle seguenti opzioni:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Aggiungi organizzazione"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nome del gruppo"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"tramite <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> tramite <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"preferiti"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Modifica contatto"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Creazione di una copia personale..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Personalizzato"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Impostazioni"</string>
     <string name="menu_settings" msgid="377929915873428211">"Impostazioni"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Il mio profilo locale"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Il mio profilo <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Sono visualizzati tutti i contatti"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"L\'applicazione People funziona meglio con un account Google.\n\n• Puoi accedervi da qualsiasi browser web.\n• Effettua il backup dei tuoi contatti in modo sicuro."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"L\'app Contatti funziona meglio con un account Google.\n\n• Accedi da qualsiasi browser web.\n• Effettua il backup dei tuoi contatti in modo sicuro."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Tieni al sicuro i tuoi contatti anche se perdi il telefono: sincronizzali con un servizio online."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Aggiungi un account"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Non verrà effettuato il backup del nuovo contatto. Aggiungere un account che effettua il backup dei contatti online?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Il nuovo contatto verrà sincronizzato con <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Puoi sincronizzare il nuovo contatto con uno dei seguenti account. Quale desideri utilizzare?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Aggiungi nuovo contatto"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Modifica contatto"</string>
     <string name="keep_local" msgid="1258761699192993322">"Memorizza in locale"</string>
     <string name="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="contact_detail_picture_description" msgid="6083230522651287030">"Immagine. Seleziona per modificare"</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="6137651078366797938">"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="content_description_directions" msgid="2686791825798189335">"indicazioni per la posizione"</string>
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index fbcce59..297fa89 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"אנשים"</string>
+    <string name="people" msgid="1190841469952343354">"אנשי קשר"</string>
     <string name="contactsList" msgid="8661624236494819731">"אנשי קשר"</string>
     <string name="shortcutContact" msgid="749243779392912958">"איש קשר"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"חיוג ישיר"</string>
@@ -25,21 +25,23 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"בחר מספר להתקשר אליו"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"בחר מספר לשליחת הודעה"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"בחר איש קשר"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"בחר איש קשר חדש"</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="viewContactDesription" msgid="214186610887547860">"הצג איש קשר"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"ערוך איש קשר"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"צור איש קשר"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"ערוך קבוצה"</string>
     <string name="insertGroupDescription" msgid="5658512271662210139">"צור קבוצה"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"מידע על"</string>
+    <string name="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_create_contact_shortcut" msgid="1217971915748509640">"הצב במסך הבית"</string>
@@ -65,16 +67,16 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"איש קשר זה מכיל מידע מחשבונות מרובים. מידע מחשבונות לקריאה בלבד יוסתר ברשימות אנשי הקשר ולא יימחק."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"מחיקת איש קשר זה תמחק מידע מחשבונות מרובים."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"איש קשר זה יימחק."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"מחק"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"בטל שינויים"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"איש הקשר לא קיים."</string>
-    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"widget של אנשי קשר נוסף למסך הבית."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"‏widget של אנשי קשר נוסף למסך הבית."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"צור איש קשר חדש"</string>
     <string name="pickerNewContactText" msgid="6166997164401048211">"צור איש קשר חדש"</string>
   <string-array name="otherLabels">
     <item msgid="8287841928119937597">"ארגון"</item>
     <item msgid="7196592230748086755">"הערה"</item>
   </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"אין תמונות זמינות בטבלט."</string>
+    <string name="photoPickerNotFoundText" product="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>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> אנשי קשר עם מספרי טלפון"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"אין אנשי קשר עם מספרי טלפון"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"איש קשר אחד"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> אנשי קשר"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"נמצא אחד"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> נמצאו"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"נמצא אחד"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> נמצאו"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"כל אנשי הקשר"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"קבוצות"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"כל אנשי הקשר"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"מועדפים"</string>
     <string name="callBack" msgid="5498224409038809224">"התקשר חזרה"</string>
     <string name="callAgain" msgid="3197312117049874778">"התקשר שוב"</string>
     <string name="returnCall" msgid="8171961914203617813">"התקשר בחזרה"</string>
@@ -118,8 +116,13 @@
     <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_missing_app" msgid="358168575340921552">"לא נמצאה אפליקציה שיכולה לטפל בפעולה זו."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"לחץ כדי לחזור אל המסך הקודם"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"הוסף מספר טלפון"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"הוסף דוא\"ל"</string>
+    <string name="missing_app" msgid="1466111003546611387">"לא נמצאה אפליקציה שיכולה לטפל בפעולה זו."</string>
     <string name="menu_share" msgid="943789700636542260">"שתף"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"הוסף לאנשי הקשר"</string>
     <string name="share_via" msgid="563121028023030093">"שתף איש קשר באמצעות"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"צור קבוצה עבור חשבון"</string>
     <string name="audio_chat" msgid="2535716629358298691">"צ\'אט קולי"</string>
@@ -132,23 +135,16 @@
     <!-- no translation found for from_account_format (4469138575127580203) -->
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"השתמש בתמונה זו"</string>
-    <string name="contact_read_only" msgid="7421346527289472273">"לא ניתן לעריכה מיישום זה."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"אין מידע נוסף על איש קשר זה."</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"לא ניתן לעריכה מאפליקציה זו."</string>
     <string name="group_read_only" msgid="1061762906115697637">"לא ניתן לעריכה במכשיר זה"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"מיין רשימה לפי"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"שם פרטי"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"שם משפחה"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"הצגת שמות אנשי קשר"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"תחילה שם פרטי"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"שם משפחה תחילה"</string>
     <string name="take_photo" msgid="7496128293167402354">"צלם תמונה"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"צלם תמונה חדשה"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"בחר תמונה מתוך \'גלריה\'"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"בחר תמונה חדשה מהגלריה"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"בחר תמונה"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"בחר תמונה חדשה"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"רשימת אנשי הקשר מתעדכנת כדי לשקף את שינוי השפה."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"רשימת אנשי הקשר מתעדכנת."</string>
-    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"מתבצע כרגע שדרוג של אנשי הקשר. \n\nעבור תהליך השדרוג נדרש אחסון פנימי בנפח של כ-‏‎<xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB‏.\n\nבחר אחת מהאפשרויות הבאות:"</string>
-    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"הסר התקנה של יישומים מסוימים"</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"‏מתבצע כרגע שדרוג של אנשי הקשר. \n\nעבור תהליך השדרוג נדרש אחסון פנימי בנפח של כ-‏‎<xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB‏.\n\nבחר אחת מהאפשרויות הבאות:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"הסר התקנה של אפליקציות מסוימות"</string>
     <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"נסה שוב לשדרג"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"מחפש..."</string>
     <string name="menu_display_selected" msgid="6470001164297969034">"הצג פריטים שנבחרו"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"הוסף ארגון"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"תאריך"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"שם קבוצה"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"באמצעות <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> באמצעות <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"מועדף"</string>
     <string name="edit_contact" msgid="7529281274005689512">"ערוך איש קשר"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"יוצר עותק אישי..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"מותאם אישית"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"הגדרות"</string>
     <string name="menu_settings" msgid="377929915873428211">"הגדרות"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"הפרופיל המקומי שלי"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"פרופיל <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> שלי"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"מציג את כל אנשי הקשר"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"\'אנשים\' עובד טוב יותר עם ​​חשבון Google‏. \n \n • גישה מכל דפדפן אינטרנט. \n • גיבוי אנשי הקשר באופן מאובטח."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"‏\'אנשי קשר\' פועל טוב יותר עם ​​חשבון Google‏.\n\n• קבל גישה מכל דפדפן אינטרנט.\n• גבה את אנשי הקשר באופן מאובטח."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"דאג שלא תאבד את אנשי הקשר שלך גם אם הטלפון שלך יאבד: בצע סנכרון עם שירות מקוון."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"הוסף חשבון"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"איש הקשר החדש שלך לא יגובה. להוסיף חשבון שמגבה אנשי קשר באופן מקוון?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"איש הקשר החדש שלך יסונכרן עם <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"ניתן לסנכרן את איש הקשר החדש שלך עם אחד מהחשבונות הבאים. באיזה מהם ברצונך להשתמש?"</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="contact_detail_picture_description" msgid="6083230522651287030">"תמונה. בחר כדי לשנות"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"הוסף איש קשר חדש"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"הצג יותר"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"הצג פחות"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"הצג הכל"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"מהזמן האחרון"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"מידע כללי"</string>
+    <string name="send_message" msgid="8938418965550543196">"שלח הודעה"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"יוצר עותק אישי..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"אתמול"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"מחר"</string>
+    <string name="today" msgid="8041090779381781781">"היום"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"היום ב-<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"מחר ב-<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>‏, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(אירוע ללא שם)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"הגדר"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"הודעות מיידיות"</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="content_description_directions" msgid="2686791825798189335">"הנחיות הגעה למיקום"</string>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 7bfc49c..4085bfd 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"連絡帳"</string>
+    <string name="people" msgid="1190841469952343354">"連絡先"</string>
     <string name="contactsList" msgid="8661624236494819731">"連絡先"</string>
     <string name="shortcutContact" msgid="749243779392912958">"連絡先"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"直接発信"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"発信する番号の選択"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"メッセージを送る番号の選択"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"連絡先を選択"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"新しい連絡先の選択"</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="viewContactDesription" msgid="214186610887547860">"連絡先を表示"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"連絡先を編集"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"連絡先を新規登録"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"グループの編集"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"ホーム画面に配置"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"この連絡先には、複数のアカウント情報が含まれています。読み取り専用アカウントの情報を連絡先リストで非表示にすることはできますが、削除はできません。"</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"この連絡先を削除すると、複数のアカウント情報が削除されます。"</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"この連絡先を削除します。"</string>
-    <string name="menu_discard" msgid="6456087569315685632">"キャンセル"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"変更を破棄"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"連絡先が存在しません。"</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"ホーム画面に連絡先ウィジェットを追加しました。"</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"連絡先を新規登録"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"電話番号のある連絡先<xliff:g id="COUNT">%d</xliff:g>件"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"電話番号付きの連絡先はありません"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"連絡先1件"</item>
-    <item quantity="other" msgid="3578469907265375314">"連絡先<xliff:g id="COUNT">%d</xliff:g>件"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1件見つかりました"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g>件見つかりました"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1件見つかりました"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g>件見つかりました"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"すべての連絡先"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"グループ"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"すべての連絡先"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"お気に入り"</string>
     <string name="callBack" msgid="5498224409038809224">"コールバック"</string>
     <string name="callAgain" msgid="3197312117049874778">"再発信"</string>
     <string name="returnCall" msgid="8171961914203617813">"発信"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%s</xliff:g>件のファイル"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"連絡先の名前"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"この操作を行うアプリが見つかりませんでした。"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"前の画面に戻るにはタップしてください"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"電話番号を追加"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"メールを追加"</string>
+    <string name="missing_app" msgid="1466111003546611387">"この操作を行うアプリが見つかりませんでした。"</string>
     <string name="menu_share" msgid="943789700636542260">"共有"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"連絡先に追加"</string>
     <string name="share_via" msgid="563121028023030093">"連絡先の共有ツール"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"次のアカウントにグループを作成"</string>
     <string name="audio_chat" msgid="2535716629358298691">"ボイスチャット"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"この写真を使用"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"このアプリからは編集できません。"</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"この連絡先の詳細情報はありません。"</string>
     <string name="group_read_only" msgid="1061762906115697637">"この端末では編集できません。"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"並び替え順"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"名"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"姓"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"連絡先名を表示"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"名が先"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"姓が先"</string>
     <string name="take_photo" msgid="7496128293167402354">"写真を撮影"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"新しい写真を撮る"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"ギャラリーから画像を選ぶ"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"ギャラリーから新しい写真を選ぶ"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"写真を選択"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"新しい写真を選択"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"言語の変更に伴い連絡先リストを更新しています。"</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"連絡先リストを更新しています。"</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"連絡先をアップグレードしています。\n\nアップグレード処理には約<xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g>MBの内部ストレージが必要です。\n\n次のいずれかのオプションを選択してください:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"所属を追加"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"日付"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"グループ名"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g>経由"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g>、<xliff:g id="SOURCE">%2$s</xliff:g>経由"</string>
     <string name="description_star" msgid="2605854427360036550">"お気に入り"</string>
     <string name="edit_contact" msgid="7529281274005689512">"連絡先の編集"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"個人用コピーを作成しています..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"カスタム"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"設定"</string>
     <string name="menu_settings" msgid="377929915873428211">"設定"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"ローカルプロフィール"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>のプロフィール"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"すべての連絡先を表示しています"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Googleアカウントがあればユーザーアプリをもっと活用できます。\n\n• どのウェブブラウザからもアクセスできます。\n• 連絡先を安全にバックアップできます。"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Googleアカウントがあれば連絡先をもっと活用できます。\n\n• どのウェブブラウザからもアクセスできます。\n• 連絡先を安全にバックアップできます。"</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"携帯端末を紛失したときにも連絡先を保護するため、オンラインサービスと同期させます。"</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"アカウントの追加"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"新しい連絡先はバックアップされません。オンラインで連絡先をバックアップするアカウントを追加しますか？"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"新しい連絡先は<xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>と同期されます。"</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"新しい連絡先を次のいずれかのアカウントと同期させることができます。使用するアカウントを選択してください。"</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="contact_detail_picture_description" msgid="6083230522651287030">"画像: 選択して変更"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"新しい連絡先を追加"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"もっと見る"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"一部を表示"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"すべて表示"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"最近"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"概要"</string>
+    <string name="send_message" msgid="8938418965550543196">"メッセージの送信"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"個人用コピーを作成しています..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"昨日"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"明日"</string>
+    <string name="today" msgid="8041090779381781781">"今日"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"今日の<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"明日の<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>の<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"（無題の予定）"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"設定"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"組織"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"ニックネーム"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"メモ"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"ウェブサイト"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"予定"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"関係"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"場所までの経路"</string>
 </resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
new file mode 100644
index 0000000..a9e939d
--- /dev/null
+++ b/res/values-ka-rGE/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"კონტაქტები"</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="contactPickerActivityTitle" msgid="4301062192337417640">"კონტაქტის არჩევა"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"აირჩიეთ ახალი კონტაქტი"</string>
+    <string name="starredList" msgid="4817256136413959463">"ვარსკვლავიანი"</string>
+    <string name="frequentList" msgid="7154768136473953056">"ხშირი"</string>
+    <string name="strequentList" msgid="5640192862059373511">"რჩეულები"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"კონტაქტის დეტალები"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"კონტაქტის რედაქტირება"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"კონტაქტის შექმნა"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"ჯგუფის რედაქტირება"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"ჯგუფის შექმნა"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"შესახებ"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"განახლებები"</string>
+    <string name="searchHint" msgid="8482945356247760701">"კონტაქტებში ძიება"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"კონტაქტის ნახვა"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"რჩეულებში დამატება"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"რჩეულებიდან ამოშლა"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"წაიშალა რჩეულებიდან"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"რჩეულებში დამატება"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"რედაქტირება"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"წაშლა"</string>
+    <string name="menu_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="8368636463748691868">"დაშლა"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"რედაქტირება"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"წაშლა"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"კონტაქტის დამატება"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"ჯგუფის დამატება"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"გსურთ კონტაქტის დაშლა?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"ეს კონტაქტი დაიშლება მრავალ კონტაქტად."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"შეერთება"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"კონტაქტების შეერთება"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"აირჩიეთ კონტაქტი, რომელიც გსურთ შეუერთოთ <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="7208148163607047389">"შემოერთებული კონტაქტები"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ზარის დაყენება"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ყველა ზარი ხმოვან ფოსტაში"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"მხოლოდ კითხვადი ანგარიშებიდან კონტაქტების წაშლა შეუძლებელია, თუმცა შეგიძლიათ დამალოთ ისინი კონტაქტების სიაში."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"ეს კონტაქტი შეიცავს ინფორმაციას სხვადასხვა ანგარიშებიდან. ინფორმაცია მხოლოდ კითხვადი ანგარიშებიდან არ წაიშლება, არამედ დაიმალება კონტაქტების სიაში."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"ამ კონტაქტის წაშლით წაიშლება ინფორმაცია რამდენიმე ანგარიშიდან."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"ეს კონტაქტი წაიშლება."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"ცვლილებების გაუქმება"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"კონტაქტი არ არსებობს."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"მთავარ ეკრანს დაემატა კონტაქტების ვიჯეტი."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"ახალი კონტაქტის შექმნა"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"ახალი კონტაქტის შექმნა"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"ორგანიზაცია"</item>
+    <item msgid="7196592230748086755">"შენიშვნა"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ტაბლეტზე სურათები მიუწვდომელია."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ტელეფონზე სურათები არ არის."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"კონტაქტის ფოტო"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"მორგებული ლეიბლის სახელი"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"ზარების პირდაპირ ხმოვან ფოსტაში გაგზავნა"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ფოტოების წაშლა"</string>
+    <string name="noContacts" msgid="8579310973261953559">"კონტაქტები არ არის."</string>
+    <string name="noGroups" msgid="8614664663561385253">"ჯგუფები არ არის."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"ჯგუფების შესაქმნელად გესაჭიროებათ ანგარიში."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"ამ ჯგუფში ხალხი არ არის."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"წევრთა დასამატებლად შეასრულეთ ჯგუფის რედაქტირება."</string>
+    <string name="savingContact" msgid="4075751076741924939">"კონტაქტის შენახვა…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"კონტაქტი შენახულია."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"კონტაქტის ცვლილებების შენახვა ვერ მოხერხდა."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"ჯგუფი შენახულია."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"ჯგუფის ცვლილებების შენახვა ვერ მოხერხდა."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"ტელეფონის ნომრიანი 1 კონტაქტი"</item>
+    <item quantity="other" msgid="3299954047880968205">"ტელეფონის ნომრიანი <xliff:g id="COUNT">%d</xliff:g> კონტაქტი"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ტელეფონის ნომრიანი კონტაქტები არ არის"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"მოიძებნა 1"</item>
+    <item quantity="other" msgid="3852668542926965042">"მოიძებნა <xliff:g id="COUNT">%d</xliff:g>"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"კონტაქტები არ არის"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"მოიძებნა 1"</item>
+    <item quantity="other" msgid="7988132539476575389">"მოიძებნა <xliff:g id="COUNT">%d</xliff:g>"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"ყველა კონტაქტი"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"რჩეულები"</string>
+    <string name="callBack" msgid="5498224409038809224">"გადარეკვა"</string>
+    <string name="callAgain" msgid="3197312117049874778">"დარეკვა ხელახლა"</string>
+    <string name="returnCall" msgid="8171961914203617813">"გადარეკვა"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"„<xliff:g id="EMAIL">%s</xliff:g>“ დაემატოს კონტაქტებს?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"კონტაქტის ფოტო"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"პლუსი"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> (სულ <xliff:g id="TOTAL_NUMBER">%s</xliff:g> კონტაქტიდან)"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"თქვენი კონტაქტების სახელები"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"ამ მოქმედების შესასრულებლად აპი ვერ მოიძებნა."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"დააწკაპუნეთ წინა ეკრანზე დასაბრუნებლად"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ტელეფონის ნომრის დამატება"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ელფოსტის დამატება"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ამ მოქმედების შესასრულებლად აპი ვერ მოიძებნა."</string>
+    <string name="menu_share" msgid="943789700636542260">"გაზიარება"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"კონტაქტებში დამატება"</string>
+    <string name="share_via" msgid="563121028023030093">"კონტაქტის გაზიარება"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"ჯგუფის შექმნა ანგარიშში"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"ხმოვანი ჩეთი"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ვიდეო ჩეთი"</string>
+    <string name="connections" msgid="8098440723172028350">"კავშირები"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"კავშირის დამატება"</string>
+    <string name="recent" msgid="2659189233141493004">"უახლესი"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"უახლესი განახლებები"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>-ის კონტაქტი"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"ამ ფოტოს გამოყენება"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"არ რედაქტირდება ამ აპიდან"</string>
+    <string name="group_read_only" msgid="1061762906115697637">"არ რედაქტირდება ამ მოწყობილობაზე."</string>
+    <string name="take_photo" msgid="7496128293167402354">"ფოტოს გადაღება"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"ახალი ფოტოს გადაღება"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ფოტოს არჩევა"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"ახალი ფოტოს არჩევა"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"მიმდინარეობს კონტაქტების სიის განახლება ენის ცვლილების ასახვის მიზნით."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"მიმდინარეობს კონტაქტების სიის განახლება."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"კონტაქტები ახალ ვერსიაზე გადასვლის პროცესშია. \n\nახალ ვერსიაზე გადასვლის პროცესს ესაჭიროება შიდა მეხსიერების დაახლოებით <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> მბაიტი.\n\nაირჩიეთ შემდეგი პარამეტრებიდან ერთ-ერთი:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"ზოგიერთი აპლიკაციის დეინსტალაცია"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"ახალ ვერსიაზე გადასვლის მცდელობის გამეორება"</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_field" msgid="2384260056674995230">"სხვა ველის დამატება"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"ახლის დამატება"</string>
+    <string name="add_organization" msgid="7311893231158291197">"ორგანიზაციის დამატება"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"თარიღი"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"ჯგუფის სახელი"</string>
+    <string name="description_star" msgid="2605854427360036550">"რჩეული"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"კონტაქტის რედაქტირება"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"გასაერთიანებელი"</item>
+    <item quantity="other" msgid="425683718017380845">"გაერთიანდა <xliff:g id="COUNT">%0$d</xliff:g> წყაროდან"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"გსურთ მიმდინარე და არჩეული კონტაქტების შეერთება?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"გადაერთვებით არჩეული კონტაქტის რედაქტირებაზე? მოხდება თქვენს მიერ შეყვანილი ინფორმაციის კოპირება."</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"კოპირება ჩემს კონტაქტებში"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"ჩემს კონტაქტებში დამატება"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"კატალოგი <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"მორგებული"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"პარამეტრები"</string>
+    <string name="menu_settings" msgid="377929915873428211">"პარამეტრები"</string>
+    <string name="menu_help" msgid="5123887102216637725">"დახმარება"</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="7356532842767854606">"მიუთითეთ წელი"</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="7911101713860139754">"ანგარიშზე შესვლა"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"კონტაქტების იმპორტი"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"ახალი ჯგუფის შექმნა"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"ახალი ჯგუფის შექმნა"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 ჯგუფი"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> ჯგუფი"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"გსურთ ჯგუფის „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“ წაშლა? (კონტაქტები არ წაიშლება)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="COUNT_0">%1$d</xliff:g> ადამიანი <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>-დან"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="COUNT_0">%1$d</xliff:g> ადამიანი <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>-დან"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> ადამიანი"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> ადამიანი"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"სხვა კონტაქტთან შეერთებამდე აკრიფეთ კონტაქტის სახელი."</string>
+    <string name="copy_text" msgid="3257145021583508761">"კოპირება გაცვლის ბუფერში"</string>
+    <string name="set_default" msgid="4417505153468300351">"ნაგულისხმევად დაყენება"</string>
+    <string name="clear_default" msgid="7193185801596678067">"ნაგულისხმევის წაშლა"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"კოპირებული ტექსტი"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"გსურთ ცვლილებების გაუქმება?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"ჩემი პროფილის პარამეტრების დაყენება"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"აკრიფეთ კონტაქტის სახელი"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"ჯგუფის სახელი"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"ჩემი ადგილობრივი პროფილი"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"ჩემი <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> პროფილი"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"ყველა კონტაქტის ჩვენება"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"კონტაქტები Google ანგარიშთან ერთად უკეთ მუშაობს.\n\n• იქონიეთ წვდომა ნებისმიერი ვებ-ბრაუზერიდან.\n• თქვენი კონტაქტების საიმედო დამარქაფება."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"შეინახეთ თქვენი კონტაქტები საიმედოდ ტელეფონის დაკარგვის შემთხვევაშიც კი: მოახდინეთ სინქრონიზაცია ონლაინ სერვისთან."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ანგარიშის დამატება"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"თქვენი ახალი კონტაქტი არ დამარქაფდება. გსურთ ანგარიშის დამატება, რომელიც დაამარქაფებს კონტაქტებს ონლაინ?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"მოხდება თქვენი ახალი კონტაქტის სინქრონიზაცია <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>-თან."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"ახალი კონტაქტის სინქრონიზაცია შეგიძლიათ ერთ-ერთი შემდეგი ანგარიშიდან. რომლის გამოყენება გსურთ?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"ახალი კონტ. დამატება"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"კონტაქტის შესწორება"</string>
+    <string name="keep_local" msgid="1258761699192993322">"შენახვა ადგილობრივად"</string>
+    <string name="add_account" msgid="8201790677994503186">"ანგარიშის დამატება"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"ახალი ანგარიშის დამატება"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"მონაცემთა ბაზის ფაილების ექსპორტი"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"ახალი კონტაქტის დამატება"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"იხილე მეტი"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"ნაკლების ჩვენება"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"ყველას ჩვენება"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"ბოლო"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"შესახებ"</string>
+    <string name="send_message" msgid="8938418965550543196">"შეტყობინების გაგზავნა"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"იქმნება პერსონალური ასლი..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"გუშინ"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"ხვალ"</string>
+    <string name="today" msgid="8041090779381781781">"დღეს"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"დღეს <xliff:g id="TIME_INTERVAL">%s</xliff:g>-ზე"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"ხვალ <xliff:g id="TIME_INTERVAL">%s</xliff:g>-ზე"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(უსათაურო მოვლენა)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"დაყენება"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"ორგანიზაცია"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"მეტსახელი"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"ჩანიშვნა"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"ვებსაიტი"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"მოვლენა"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"კავშირი"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"მიმართულებები მდებარეობამდე"</string>
+</resources>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
new file mode 100644
index 0000000..5a661fb
--- /dev/null
+++ b/res/values-kk-rKZ/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"Контактілер"</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="contactPickerActivityTitle" msgid="4301062192337417640">"Контакт таңдау"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Жаңа контактіні таңдау"</string>
+    <string name="starredList" msgid="4817256136413959463">"Жұлдызшалы"</string>
+    <string name="frequentList" msgid="7154768136473953056">"Жиі"</string>
+    <string name="strequentList" msgid="5640192862059373511">"Сүйіктілер"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"Контакт егжей-тегжейі"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"Контактіні жөндеу"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"Контакт жасақтау"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"Топты жөндеу"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"Топ жасақтау"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"Туралы"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"Жаңартулар"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Контактілерді іздеу"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"Контактіні көру"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Сүйіктілерге қосу"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Сүйіктілерден алу"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Таңдаулылардан жойылды"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Таңдаулыларға қосылды"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Жөндеу"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Жою"</string>
+    <string name="menu_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="8368636463748691868">"Ажырату"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"Жөндеу"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"Жою"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Контакт қосу"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Топ қосу"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"Контакт ажыратылсын ба?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"Бұл контакт бірнеше контактілерге ажыратылады."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"Қосылу"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Контактілерге қосылу"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"<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="7208148163607047389">"Қосылған контактілер"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Рингтонды орнату"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Дауыс-хабарына жасалған барлық қоңыраулар"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"Оқу үшін ғана есептік жазбаларындағы контактілерді жою мүмкін болмайды, бірақ контактілер тізімінде жасырып қоюға болады."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Бұл контактіде бірнеше есептік жазба ақпараты бар. Оқу үшін ғана есептік жазбаларының ақпараты контактілер тізімінде жасырын болады, жойылмайды."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Бұл контактіні жою бірнеше есептік жазбадан ақпарат жояды."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"Бұл контакт жойылады."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Өзгертулерден бас тарту"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Мұндай контакт жоқ."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Контакт виджет Негізгі экранға қосылды."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Жаңа контакт жасақтау"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Жаңа контакт жасақтау"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"Ұйым"</item>
+    <item msgid="7196592230748086755">"Ескерту"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Планшетте ешқандай фотосуреттер жоқ."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Телефонда ешқандай фотосуреттер жоқ."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Контакт фотосуреті"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Белгі атауын қалауыңызша өзгерту"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Қоңырауларды тікелей дауыс хабарына жіберу"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Фотосуретті алу"</string>
+    <string name="noContacts" msgid="8579310973261953559">"Ешқандай контактілер жоқ."</string>
+    <string name="noGroups" msgid="8614664663561385253">"Топтар жоқ."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Топтар жасақтау үшін есептік жазба қажет."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"Бұл топта адамдар жоқ."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"Кейбіреулерін қосу үшін, топты жөндеңіз."</string>
+    <string name="savingContact" msgid="4075751076741924939">"Контактіні сақтауда…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"Контакт сақталды."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Контакт өзгерістерін сақтай алмады."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"Топ сақталды."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Топ өзгерістерін сақтау мүмкін болмады."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"Телефон нөмірі бар 1 контакт"</item>
+    <item quantity="other" msgid="3299954047880968205">"Телефон нөмірі бар <xliff:g id="COUNT">%d</xliff:g> контактілер"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Телефон нөмірлері бар контактілер жоқ"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 табылды"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> табылды"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Контактілер жоқ"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 табылды"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> табылды"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Барлық контактілер"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Таңдаулылар"</string>
+    <string name="callBack" msgid="5498224409038809224">"Кері қоңырау шалу"</string>
+    <string name="callAgain" msgid="3197312117049874778">"Қайта қоңырау шалу"</string>
+    <string name="returnCall" msgid="8171961914203617813">"Қоңырауды қайтару"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" контактілерге қосылсын ба?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"контакт фотосуреті"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"қосу"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g>, барлық <xliff:g id="TOTAL_NUMBER">%s</xliff:g> контактілерден"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Контактілеріңіздің аттары"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"Бұл әрекетті орындайтын ешқандай қолданба табылмады."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Алдыңғы экранға оралу үшін түртіңіз"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Телефон нөмірін қосу"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Электрондық пошта қосу"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Бұл әрекетті орындайтын қолданба табылмады."</string>
+    <string name="menu_share" msgid="943789700636542260">"Бөлісу"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Контактілерге қосу"</string>
+    <string name="share_via" msgid="563121028023030093">"Контактімен бөлісу"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"Есептік жазба арқылы топ құру"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Дауыс чаты"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Видео чат"</string>
+    <string name="connections" msgid="8098440723172028350">"Байланыстар"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"Байланыс қосу"</string>
+    <string name="recent" msgid="2659189233141493004">"Жуықта қолданылған"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"Соңғы жаңартулар"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> контактісі"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"Осы фотосуретті қолдану"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"Бұл қолданба арқылы жөнделмейді."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"Бұл құрылғыда жөндеу мүмкін емеc."</string>
+    <string name="take_photo" msgid="7496128293167402354">"Фотосурет түсіру"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Жаңа фотосурет түсіру"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Фотосуретті таңдау"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Жаңа фотоурет таңдау"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"Өзгертілген тілді көрсету үшін контакт жаңартылуда."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"Контакт тізімі жаңартылуда."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Контактілер жаңартылуда. \n\nЖаңалау үрдісіне шамамен <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MБ ішкі жад орны қажет.\n\nКелесі опциялардың бірін таңдаңыз:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Кейбір қолданбаларды алып тастау"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Жаңартуға қайта әрекеттену"</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_field" msgid="2384260056674995230">"Тағы бір алаң қосу"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Жаңа қосу"</string>
+    <string name="add_organization" msgid="7311893231158291197">"Ұйым қосу"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Күні"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Топ атауы"</string>
+    <string name="description_star" msgid="2605854427360036550">"сүйікті"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"Контактіні жөндеу"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"біріктірілмеген"</item>
+    <item quantity="other" msgid="425683718017380845">"<xliff:g id="COUNT">%0$d</xliff:g> дереккөздерден біріктірілген"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"Ағымдағы контакт таңдалған контактіге қосылсын ба?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Таңдалған контактіні жөндеуге ауысуды қалайсыз ба? Осы уақытқа дейін сіз енгізген ақпараттың көшірмесі жасалады."</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"Менің контактілеріме көшіру"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"Менің контактілерім тізіміне қосу"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> анықтамалық кітапшасы"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"Қалыпты"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Параметрлер"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Параметрлер"</string>
+    <string name="menu_help" msgid="5123887102216637725">"Көмек"</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="7356532842767854606">"Жылын жазу"</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="7911101713860139754">"Есептік жазбаға кіру"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Контактілерді импорттау"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"Жаңа топ жасақтау"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"Жаңа топ жасақтау"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 топ"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> топ"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" тобы жойылсын ба? (Контактілер жойылмайды.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="COUNT_0">%1$d</xliff:g>, барлығы <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> адамнан"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="COUNT_0">%1$d</xliff:g>, барлығы <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> адамнан"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> адам"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> адам"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Басқа контактіге қосар алдында контактінің атын теру."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Дерек алмастыру жадына сақтау"</string>
+    <string name="set_default" msgid="4417505153468300351">"Бастапқы ретінде орнату"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Бастапқыны өшіру"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Мәтін көшірмесі жасалды"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Өзгертулер қабылданбасын ба?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"Менің профайлымды реттеу"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"Адамның атын теру"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"Топтың атауы"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Менің жергілікті профайлым"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Менің <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> профайлым"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Барлық контактілер көрсетілуде"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Контактілер Google есептік жазбасымен жақсырақ жұмыс істейді.\n\n• Кез келген веб-браузерден қатынасыңыз.\n• Контактілердің сақтық көшірмесін қауіпсіз жасаңыз."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Телефоныңыз жоғалған жағдайда контактілеріңізді сақтап қалыңыз: желі қызметімен синхрондаңыз."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Есептік жазба қосу"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Жаңа контактінің сақтық көшірмесі жасалмайды. Контактілердің желі арқылы көшірмесін жасайтын есептік жазба қосуды қалайсыз ба?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Жаңа контактіңіз <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> есептік жазбасымен синхрондалады."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Жаңа контактіні келесі есептік жазбалардың біреуімен синхрондауға болады. Қайсысын қолдануды қалайсыз?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Жаңа контакт қосу"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Контактіні өңдеу"</string>
+    <string name="keep_local" msgid="1258761699192993322">"Жергілікті ретінде сақтау"</string>
+    <string name="add_account" msgid="8201790677994503186">"Есептік жазба қосу"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Жаңа есептік жазба қосу"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Дерекқор файлдарын экспорттау"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"жаңа контакт қосу"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Көбірек көру"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Азырақ көру"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Барлығын көру"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Жақындағы"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Туралы"</string>
+    <string name="send_message" msgid="8938418965550543196">"Хабарды жіберу"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Жеке көшірмені жасау…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Кеше"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Ертең"</string>
+    <string name="today" msgid="8041090779381781781">"Бүгін"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Бүгін, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Ертең, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Атаусыз оқиға)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Орнату"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Ұйым"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Бүркеншік ат"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Ескертпе"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Веб-сайт"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Оқиға"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Қатынас"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"орынға бағыттар"</string>
+</resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
new file mode 100644
index 0000000..fbd1830
--- /dev/null
+++ b/res/values-km-rKH/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"ទំនាក់ទំនង"</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="contactPickerActivityTitle" msgid="4301062192337417640">"ជ្រើស​ទំនាក់ទំនង"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"ជ្រើស​ទំនាក់ទំនង​ថ្មី"</string>
+    <string name="starredList" msgid="4817256136413959463">"បាន​ដាក់​ផ្កាយ"</string>
+    <string name="frequentList" msgid="7154768136473953056">"ញឹកញាប់"</string>
+    <string name="strequentList" msgid="5640192862059373511">"សំណព្វ"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"ព័ត៌មាន​លម្អិត​របស់​ទំនាក់ទំនង"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"កែ​ទំនាក់ទំនង"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"បង្កើត​ទំនាក់ទំនង"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"កែ​ក្រុម"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"បង្កើត​ក្រុម"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"អំពី"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"បច្ចុប្បន្នភាព"</string>
+    <string name="searchHint" msgid="8482945356247760701">"រក​ទំនាក់ទំនង"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"មើល​ទំនាក់ទំនង"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"បន្ថែម​ទៅ​សំណព្វ"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"លុប​ចេញពី​សំណព្វ"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"បាន​លុប​ចេញ​​និយម​ប្រើ"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"បន្ថែម​ទៅ​និយម​ប្រើ"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"កែសម្រួល​"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"លុប"</string>
+    <string name="menu_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="8368636463748691868">"បំបែក"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"កែសម្រួល​"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"លុប"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"បន្ថែម​ទំនាក់ទំនង"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"បន្ថែម​ក្រុម"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"បំបែក​ទំនាក់ទំនង?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"នឹង​បំបែក​ទំនាក់ទំនង​នេះ​ទៅជា​ទំនាក់ទំនង​ច្រើន។"</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"ចូលរួម"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"ភ្ជាប់​ទំនាក់ទំនង"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"ជ្រើស​ទំនាក់ទំនង​ដែល​អ្នក​ចង់​ភ្ជាប់​ជាមួយ <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="7208148163607047389">"ទំនាក់ទំនង​ដែល​បាន​ភ្ជាប់"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"កំណត់​សំឡេង​រោទ៍"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ការ​ហៅ​ទាំងអស់​ទៅ​សារ​ជា​សំឡេង"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"អ្នក​មិន​អាច​លុប​ទំនាក់ទំនង​ពី​គណនី​បាន​តែ​អាន​ទេ ប៉ុន្តែ​អ្នក​អាច​លាក់​ពួក​វា​នៅ​ក្នុង​បញ្ជី​ទំនាក់ទំនង​របស់​អ្នក​បាន។"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"ទំនាក់ទំនង​នេះ​មាន​ព័ត៌មាន​ពី​គណនី​ច្រើន។ នឹង​លាក់​ព័ត៌មាន​ពី​គណនី​បានតែ​អាន, មិនមែន​លុប​ទេ។"</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"ការ​លុប​ទំនាក់ទំនង​នេះ​នឹង​លុប​ព័ត៌មាន​ពី​គណនី​ច្រើន​ទៀត។"</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"នឹង​លុប​ទំនាក់ទំនង​នេះ។"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"បោះបង់​ការ​ផ្លាស់ប្ដូរ"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"មិន​មាន​ទំនាក់ទំនង។"</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"បាន​បន្ថែម​ធាតុ​ក្រាហ្វិក​របស់​ទំនាក់ទំនង​ទៅ​អេក្រង់​ដើម។"</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"បង្កើត​ទំនាក់ទំនង​ថ្មី"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"បង្កើត​ទំនាក់ទំនង​ថ្មី"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"ស្ថាប័ន"</item>
+    <item msgid="7196592230748086755">"ចំណាំ"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"មិន​មាន​រូបភាព​នៅ​លើ​កុំព្យូទ័រ​បន្ទះ​នេះ​ទេ។"</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"មិន​មាន​រូបភាព​នៅ​លើ​ទូរស័ព្ទ។"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"រូបថត​ទំនាក់ទំនង"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"ឈ្មោះ​ស្លាក​ផ្ទាល់ខ្លួន"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"បញ្ជូន​ការ​ហៅ​ដោយ​ផ្ទាល់​ទៅ​សារ​ជា​សំឡេង"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"លុប​រូបថត​ចេញ"</string>
+    <string name="noContacts" msgid="8579310973261953559">"មិន​មាន​ទំនាក់ទំនង។"</string>
+    <string name="noGroups" msgid="8614664663561385253">"មិន​មាន​ក្រុម។"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"ដើម្បី​បង្កើត​ក្រុម​អ្នក​ចាំបាច់​ត្រូវ​មាន​គណនី​មួយ។"</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"មិន​មាន​មនុស្ស​នៅ​ក្នុង​ក្រុម​នេះ​ទេ។"</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"ដើម្បី​បន្ថែម, កែ​សម្រួល​ក្រុម។"</string>
+    <string name="savingContact" msgid="4075751076741924939">"កំពុង​រក្សាទុក​ទំនាក់ទំនង..."</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"បាន​រក្សាទុក​ទំនាក់ទំនង។"</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"មិន​អាច​រក្សាទុក​ការ​ប្ដូរ​ទំនាក់ទំនង។"</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"បាន​រក្សាទុក​ក្រុម។"</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"មិន​អាច​រក្សាទុក​ការ​ប្ដូរ​ក្រុម។"</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"ទំនាក់ទំនង ១ ដែល​មាន​លេខ​ទូរស័ព្ទ"</item>
+    <item quantity="other" msgid="3299954047880968205">"ទំនាក់ទំនង <xliff:g id="COUNT">%d</xliff:g> ដែល​មាន​លេខ​ទូរស័ព្ទ"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"គ្មាន​ទំនាក់ទំនង​ដែល​មាន​លេខ​ទូរស័ព្ទ"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"បាន​រក​ឃើញ ១"</item>
+    <item quantity="other" msgid="3852668542926965042">"បាន​រក​ឃើញ <xliff:g id="COUNT">%d</xliff:g>"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"មិន​មាន​ទំនាក់ទំនង"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"បាន​រក​ឃើញ ១"</item>
+    <item quantity="other" msgid="7988132539476575389">"បាន​រក​ឃើញ <xliff:g id="COUNT">%d</xliff:g>"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"គ្រប់ទំនាក់ទំនង"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"ពេញចិត្ត"</string>
+    <string name="callBack" msgid="5498224409038809224">"ហៅ​ទៅវិញ"</string>
+    <string name="callAgain" msgid="3197312117049874778">"ហៅ​ម្ដងទៀត"</string>
+    <string name="returnCall" msgid="8171961914203617813">"ហៅ​ទៅវិញ"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"បន្ថែម \"<xliff:g id="EMAIL">%s</xliff:g>\" ទៅ​ទំនាក់ទំនង?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"រូបថត​ទំនាក់ទំនង"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"បូក"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> នៃ​ទំនាក់ទំនង <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"ឈ្មោះ​នៃ​ទំនាក់ទំនង​របស់​អ្នក"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"រក​មិន​ឃើញ​កម្មវិធី​សម្រាប់​សកម្មភាព​នេះ​ទេ។"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ចុច ដើម្បី​ត្រឡប់ទៅ​អេក្រង់​មុន"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"បន្ថែម​លេខទូរស័ព្ទ"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"បន្ថែម​អ៊ីមែល"</string>
+    <string name="missing_app" msgid="1466111003546611387">"រក​មិន​ឃើញ​កម្មវិធី​ដើម្បី​គ្រប់គ្រង​សកម្មភាព​នេះ​ទេ។"</string>
+    <string name="menu_share" msgid="943789700636542260">"ចែករំលែក​"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"បន្ថែម​ទៅ​ទំនាក់ទំនង"</string>
+    <string name="share_via" msgid="563121028023030093">"ចែករំលែក​ទំនាក់ទំនង​តាម"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"បង្កើត​ក្រុម​នៅ​ក្នុង​គណនី"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"ជជែក​ជា​សំឡេង"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ជជែក​ជា​វីដេអូ"</string>
+    <string name="connections" msgid="8098440723172028350">"ការ​តភ្ជាប់"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"បន្ថែម​ការ​តភ្ជាប់"</string>
+    <string name="recent" msgid="2659189233141493004">"ថ្មីៗ"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"បច្ចុប្បន្នភាព​ថ្មីៗ"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> ទំនាក់ទំនង"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"ប្រើ​រូបថត​នេះ"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"ពី​កម្មវិធី​នេះ មិន​អាច​កែ​បាន​ទេ។"</string>
+    <string name="group_read_only" msgid="1061762906115697637">"មិន​អាច​កែ​បាន​ទេ​លើ​ឧបករណ៍​នេះ។"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ថតរូប"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"ថតរូប​ថ្មី"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ជ្រើស​រូបថត"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"ជ្រើស​រូបថត​ថ្មី"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"កំពុង​ធ្វើ​បច្ចុប្បន្នភាព​ទំនាក់ទំនង​ដើម្បី​ឆ្លុះបញ្ចាំង​ការ​ប្ដូរ​ភាសា។"</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"កំពុង​ធ្វើ​បច្ចុប្បន្នភាព​បញ្ជី​ទំនាក់ទំនង។"</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"កំពុង​ធ្វើ​បច្ចុប្បន្នភាព​ទំនាក់ទំនង។ \n\nដំណើរការ​នេះ​ទាមទារ​ឧបករណ៍​ផ្ទុក​ខាងក្នុង​ប្រហែល <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> មេកាបៃ។\n\nជ្រើស​ជម្រើស​មួយ​ខាងក្រោម៖"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"លុប​កម្មវិធី​មួយ​ចំនួន"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"ធ្វើ​បច្ចុប្បន្នភាព​ម្ដងទៀត"</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_field" msgid="2384260056674995230">"បន្ថែម​វាល​ផ្សេងទៀត"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"បន្ថែម​ថ្មី"</string>
+    <string name="add_organization" msgid="7311893231158291197">"បន្ថែម​ស្ថាប័ន"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"កាលបរិច្ឆេទ"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"ឈ្មោះ​ក្រុម"</string>
+    <string name="description_star" msgid="2605854427360036550">"សំណព្វ"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"កែ​ទំនាក់ទំនង"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"មិន​បាន​បញ្ចូល​ចូល​គ្នា"</item>
+    <item quantity="other" msgid="425683718017380845">"បាន​បញ្ចូល​គ្នា​​មក​ពី​ប្រភព <xliff:g id="COUNT">%0$d</xliff:g>"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"ភ្ជាប់​ទំនាក់ទំនង​បច្ចុប្បន្ន​ជាមួយ​ទំនាក់ទំនង​ដែល​បាន​ជ្រើស?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ប្ដូរ​ដើម្បី​កែ​ទំនាក់ទំនង​ដែល​បាន​ជ្រើស? ព័ត៌មាន​ដែល​អ្នក​បញ្ចូល​នឹង​បាន​ចម្លង។"</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"ចម្លង​ទៅ​ទំនាក់ទំនង​របស់​ខ្ញុំ"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"បន្ថែម​ទៅ​ទំនាក់ទំនង​របស់​ខ្ញុំ"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"ថត <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"ផ្ទាល់ខ្លួន"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"ការ​កំណត់"</string>
+    <string name="menu_settings" msgid="377929915873428211">"ការ​កំណត់"</string>
+    <string name="menu_help" msgid="5123887102216637725">"ជំនួយ"</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="7356532842767854606">"ផ្ដល់​ឆ្នាំ"</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="7911101713860139754">"ចូល​គណនី"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"នាំចូល​ទំនាក់ទំនង"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"បង្កើត​ក្រុម​ថ្មី"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"បង្កើត​ក្រុម​ថ្មី"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"១ ក្រុម"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> ក្រុម"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"លុប​ក្រុម \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (ទំនាក់ទំនង​របស់​វា​នឹង​មិន​លុប​ទេ)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="COUNT_0">%1$d</xliff:g> នាក់​ពី <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="COUNT_0">%1$d</xliff:g> នាក់​ពី <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> នាក់"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> នាក់"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"សូម​បញ្ចូល​ឈ្មោះ​ទំនាក់ទំនង​មុន​ពេល​ចូលរួម​ជាមួយ​ទំនាក់ទំនង​ផ្សេងទៀត។"</string>
+    <string name="copy_text" msgid="3257145021583508761">"ចម្លង​ទៅ​ក្ដារ​តម្បៀត​ខ្ទាស់"</string>
+    <string name="set_default" msgid="4417505153468300351">"កំណត់​លំនាំដើម"</string>
+    <string name="clear_default" msgid="7193185801596678067">"សម្អាត​លំនាំដើម"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"បាន​ចម្លង​អត្ថបទ"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"បោះបង់​ការ​ប្ដូរ​រ​របស់​អ្នក?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"រៀបចំ​ប្រវត្តិរូប​របស់​ខ្ញុំ"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"វាយ​ឈ្មោះ​មនុស្ស"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"ឈ្មោះ​របស់​ក្រុម"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"ប្រវត្តិរូប​មូលដ្ឋាន​របស់​ខ្ញុំ"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"ប្រវត្តិរូប <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> របស់​ខ្ញុំ"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"បង្ហាញ​ទំនាក់ទំនង​ទាំងអស់"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"ទំនាក់ទំនង​ដំណើរការ​កាន់តែ​ល្អ​ជា​មួយ​គណនី Google ។\n\n• ចូល​ដំណើរការ​ពី​កម្មវិធី​រុករក​បណ្ដាញ។\n• បម្រុងទុក​ទំនាក់ទំនង​របស់​អ្នក​ដោយ​សុវត្ថិភាព។"</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"រក្សាទុក​ទំនាក់ទំនង​របស់​អ្នក​យ៉ាង​មាន​សុវត្ថិភាព ទោះបីជា​អ្នក​បាត់​ទូរស័ព្ទ​ក៏ដោយ៖ ធ្វើ​សមកាលកម្ម​ជាមួយ​សេវាកម្ម​លើ​បណ្ដាញ។"</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"បន្ថែម​គណនី"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"នឹង​មិន​បម្រុងទុក​ទំនាក់ទំនង​ថ្មី​របស់​អ្នក​ទេ។ បន្ថែម​គណនី​ដើម្បី​បម្រុងទុក​ទំនាក់ទំនង​នៅ​លើ​បណ្ដាញ?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"នឹង​ធ្វើ​សមកាលកម្ម​ទំនាក់ទំនង​ថ្មី​របស់​អ្នក​ជាមួយ <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ។"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"អ្នក​អាច​ធ្វើ​សមកាលកម្ម​ទំនាក់ទំនង​ថ្មី​របស់​អ្នក​ជា​មួយ​គណនី​មួយ​ខាងក្រោម។ តើ​អ្នក​ចង់​ប្រើ​មួយ​ណា?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"បន្ថែមទំនាក់ទំនងថ្មី"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"កែ​ទំនាក់ទំនង"</string>
+    <string name="keep_local" msgid="1258761699192993322">"រក្សា​ទុក​មូលដ្ឋាន"</string>
+    <string name="add_account" msgid="8201790677994503186">"បន្ថែម​គណនី"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"បន្ថែម​គណនី​ថ្មី"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"នាំចេញ​ឯកសារ​មូលដ្ឋាន​ទិន្នន័យ"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"បន្ថែម​ទំនាក់ទំនង​ថ្មី"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"​មើល​​ច្រើន​ជាង"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"​មើល​តិច​ជាង"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"​មើល​ទាំង​អស់"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"ថ្មីៗ"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"អំពី"</string>
+    <string name="send_message" msgid="8938418965550543196">"ផ្ញើ​សារ"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"កំពុង​បង្កើត​ច្បាប់​ចម្លង​ផ្ទាល់​ខ្លួន..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"ម្សិលមិញ"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"ស្អែក"</string>
+    <string name="today" msgid="8041090779381781781">"ថ្ងៃនេះ"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"ថ្ងៃនេះ​នៅ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"ថ្ងៃស្អែក​នៅ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(ព្រឹត្តិការណ៍​គ្មាន​ចំណងជើង)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"កំណត់"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"ស្ថាប័ន"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"សម្មតិនាម"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"ចំណាំ"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"វេបសាយ"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ព្រឹត្តិការណ៍"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"ទំនាក់ទំនង"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"ទិសដៅ​ទៅ​ទីតាំង"</string>
+</resources>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
new file mode 100644
index 0000000..5c6b195
--- /dev/null
+++ b/res/values-kn-rIN/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"ಸಂಪರ್ಕಗಳು"</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="contactPickerActivityTitle" msgid="4301062192337417640">"ಸಂಪರ್ಕ ಆಯ್ಕೆ ಮಾಡಿ"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"ಹೊಸ ಸಂಪರ್ಕ ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="starredList" msgid="4817256136413959463">"ನಕ್ಷತ್ರ ಹಾಕಿರುವುದು"</string>
+    <string name="frequentList" msgid="7154768136473953056">"ಆಗಾಗ್ಗೆ"</string>
+    <string name="strequentList" msgid="5640192862059373511">"ಮೆಚ್ಚಿನವುಗಳು"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"ಸಂಪರ್ಕ ವಿವರಗಳು"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"ಸಂಪರ್ಕವನ್ನು ಸಂಪಾದಿಸು"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"ಸಂಪರ್ಕವನ್ನು ರಚಿಸಿ"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"ಗುಂಪು ಸಂಪಾದಿಸು"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"ಗುಂಪು ರಚಿಸಿ"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"ಕುರಿತು"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"ನವೀಕರಣಗಳು"</string>
+    <string name="searchHint" msgid="8482945356247760701">"ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಿ"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"ಸಂಪರ್ಕವನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"ಮೆಚ್ಚಿನವುಗಳಿಗೆ ಸೇರಿಸಿ"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"ಮೆಚ್ಚಿನವುಗಳಿಂದ ತೆಗೆದುಹಾಕಿ"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"ಮೆಚ್ಚಿನವುಗಳಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"ಮೆಚ್ಚಿನವುಗಳಿಗೆ ಸೇರಿಸಲಾಗಿದೆ"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"ಸಂಪಾದಿಸು"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"ಅಳಿಸು"</string>
+    <string name="menu_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="8368636463748691868">"ಪ್ರತ್ಯೇಕ"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"ಸಂಪಾದಿಸು"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"ಅಳಿಸು"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"ಸಂಪರ್ಕವನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"ಗುಂಪು ಸೇರಿಸು"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"ಸಂಪರ್ಕವನ್ನು ಪ್ರತ್ಯೇಕಿಸುವುದೇ?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"ಈ ಸಂಪರ್ಕವನ್ನು ಬಹು ಸಂಪರ್ಕಗಳಾಗಿ ಪ್ರತ್ಯೇಕಿಸಲಾಗುವುದು."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"ಸೇರಿಕೊಳ್ಳಿ"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿ"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"<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="7208148163607047389">"ಸಂಪರ್ಕಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ರಿಂಗ್‌ಟೋನ್‌ ಹೊಂದಿಸಿ"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ಧ್ವನಿಮೇಲ್‌ಗೆ ಎಲ್ಲ ಕರೆಗಳು"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"ಓದಲು ಮಾತ್ರ ಖಾತೆಗಳಿಂದ ಸಂಪರ್ಕಗಳನ್ನು ನಿಮಗೆ ಅಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಆದರೆ ನಿಮ್ಮ ಸಂಪರ್ಕಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ಅವುಗಳನ್ನು ನೀವು ಮರೆಮಾಡಬಹುದು."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"ಈ ಸಂಪರ್ಕವು ಬಹು ಖಾತೆಗಳಿಂದ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿದೆ. ಓದಲು ಮಾತ್ರ ಖಾತೆಗಳಿಂದ ಮಾಹಿತಿಯನ್ನು ನಿಮ್ಮ ಸಂಪರ್ಕಗಳ ಪಟ್ಟಿಗಳಿಂದ ಮರೆಮಾಡಲಾಗಿರುತ್ತದೆ, ಅಳಿಸುವುದಿಲ್ಲ."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"ಬಹು ಖಾತೆಗಳಿಂದ ಮಾಹಿತಿಯನ್ನು ಅಳಿಸಿಹಾಕಲು ಈ ಸಂಪರ್ಕವನ್ನು ಅಳಿಸಿ ಹಾಕಲಾಗುತ್ತಿದೆ."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"ಈ ಸಂಪರ್ಕವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"ಬದಲಾವಣೆಗಳನ್ನು ತ್ಯಜಿಸಿ"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"ಸಂಪರ್ಕವು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"ಮುಖಪುಟ ಪರದೆಗೆ ಸಂಪರ್ಕ ವಿಜೆಟ್ ಸೇರಿಸಲಾಗಿದೆ."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"ಹೊಸ ಸಂಪರ್ಕ ರಚಿಸಿ"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"ಹೊಸ ಸಂಪರ್ಕ ರಚಿಸಿ"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"ಸಂಘಟನೆ"</item>
+    <item msgid="7196592230748086755">"ಟಿಪ್ಪಣಿ"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ಟ್ಯಾಬ್ಲೆಟ್‌‌ನಲ್ಲಿ ಯಾವುದೇ ಚಿತ್ರಗಳು ಲಭ್ಯವಿಲ್ಲ."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ಫೋನ್‌ನಲ್ಲಿ ಯಾವುದೇ ಚಿತ್ರಗಳು ಲಭ್ಯವಿಲ್ಲ."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"ಸಂಪರ್ಕ ಫೋಟೋ"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"ಕಸ್ಟಮ್ ಲೇಬಲ್ ಹೆಸರು"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"ಕರೆಗಳನ್ನು ನೇರವಾಗಿ ಧ್ವನಿಮೇಲ್‌ಗೆ ಕಳುಹಿಸಿ"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ಫೋಟೋ ತೆಗೆದುಹಾಕಿ"</string>
+    <string name="noContacts" msgid="8579310973261953559">"ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ."</string>
+    <string name="noGroups" msgid="8614664663561385253">"ಯಾವುದೇ ಗುಂಪುಗಳಿಲ್ಲ."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"ಗುಂಪುಗಳನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಖಾತೆಯ ಅಗತ್ಯವಿದೆ."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"ಈ ಗುಂಪಿನಲ್ಲಿ ಜನರಿಲ್ಲ."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"ಕೆಲವೊಂದು ಸೇರಿಸಲು, ಗುಂಪನ್ನು ಸಂಪಾದಿಸಿ."</string>
+    <string name="savingContact" msgid="4075751076741924939">"ಸಂಪರ್ಕವನ್ನು ಉಳಿಸಲಾಗುತ್ತಿದೆ…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"ಸಂಪರ್ಕ‌ವನ್ನು ಉಳಿಸಲಾಗಿದೆ."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"ಸಂಪರ್ಕ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲ."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"ಗುಂಪನ್ನು ಉಳಿಸಲಾಗಿದೆ."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"ಗುಂಪಿನ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲ."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"ಫೋನ್‌‌ ಸಂಖ್ಯೆಯೊಂದಿಗೆ 1 ಸಂಪರ್ಕ"</item>
+    <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> ಫೋನ್‌ ಸಂಖ್ಯೆಗಳೊಂದಿಗೆ ಸಂಪರ್ಕಗಳು"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ಫೋನ್‌ ಸಂಖ್ಯೆಗಳೊಂದಿಗೆ ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 ಕಂಡುಬಂದಿದೆ"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> ಕಂಡುಬಂದಿದೆ"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 ಕಂಡುಬಂದಿದೆ"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> ಕಂಡುಬಂದಿದೆ"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"ಎಲ್ಲ ಸಂಪರ್ಕಗಳು"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"ಮೆಚ್ಚಿನವುಗಳು"</string>
+    <string name="callBack" msgid="5498224409038809224">"ಮರಳಿ ಕರೆ ಮಾಡಿ"</string>
+    <string name="callAgain" msgid="3197312117049874778">"ಮತ್ತೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="returnCall" msgid="8171961914203617813">"ಹಿಂತಿರುಗುವಿಕೆ ಕರೆ"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" ಗೆ ಸಂಪರ್ಕಗಳನ್ನು ಸೇರಿಸುವುದೇ?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"ಸಂಪರ್ಕ ಫೋಟೋ"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"ಪ್ಲಸ್‌"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="TOTAL_NUMBER">%s</xliff:g> ರಲ್ಲಿ <xliff:g id="CURRENT_NUMBER">%s</xliff:g> ಸಂಪರ್ಕಗಳು"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳ ಹೆಸರುಗಳು"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"ಈ ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ ಕಂಡುಬಂದಿಲ್ಲ."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ಹಿಂದಿನ ಪರದೆಗೆ ಹಿಂತಿರುಗಲು ಕ್ಲಿಕ್ ಮಾಡಿ"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ಫೋನ್ ಸಂಖ್ಯೆಯನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ಇಮೇಲ್ ಸೇರಿಸಿ"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ಈ ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ ಕಂಡುಬಂದಿಲ್ಲ."</string>
+    <string name="menu_share" msgid="943789700636542260">"ಹಂಚಿಕೊಳ್ಳಿ"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸು"</string>
+    <string name="share_via" msgid="563121028023030093">"ಸಂಪರ್ಕದ ಮೂಲಕ ಹಂಚಿಕೊಳ್ಳಿ"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"ಖಾತೆಯ ಅಡಿಯಲ್ಲಿ ಗುಂಪನ್ನು ರಚಿಸಿ"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"ಧ್ವನಿ ಚಾಟ್"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ವೀಡಿಯೋ ಚಾಟ್"</string>
+    <string name="connections" msgid="8098440723172028350">"ಸಂಪರ್ಕಗಳು"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"ಸಂಪರ್ಕವನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="recent" msgid="2659189233141493004">"ಇತ್ತೀಚಿನದು"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"ಇತ್ತೀಚಿನ ನವೀಕರಣಗಳು"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> ಸಂಪರ್ಕ"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"ಈ ಫೋಟೋವನ್ನು ಬಳಸಿ"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"ಈ ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ಸಂಪಾದಿಸಲಾಗುವುದಿಲ್ಲ."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"ಈ ಸಾಧನದಲ್ಲಿ ಸಂಪಾದಿಸಲು ಆಗುವುದಿಲ್ಲ."</string>
+    <string name="take_photo" msgid="7496128293167402354">"ಫೋಟೋ ತೆಗೆಯಿರಿ"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"ಹೊಸ ಫೋಟೋ ತೆಗೆಯಿರಿ"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ಫೋಟೋ ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"ಹೊಸ ಫೋಟೋವನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"ಭಾಷೆಯ ಬದಲಾವಣೆಯನ್ನು ಬಿಂಬಿಸಲು ಸಂಪರ್ಕ ಪಟ್ಟಿಯನ್ನು ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"ಸಂಪರ್ಕ ಪಟ್ಟಿಯನ್ನು ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"ಸಂಪರ್ಕಗಳು ಅಪ್‌ಗ್ರೇಡ್‌ ಆಗುವ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿವೆ. \n\nಅಪ್‌ಗ್ರೇಡ್‌ ಪ್ರಕ್ರಿಯೆಗೆ ಸುಮಾರು <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB ಆಂತರಿಕ ಸಂಗ್ರಹಣೆಯ ಅಗತ್ಯವಿದೆ.\n\nಕೆಳಗಿನ ಆಯ್ಕೆಗಳಿಂದ ಒಂದನ್ನು ಆಯ್ಕೆಮಾಡಿ:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"ಕೆಲವು ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಅಸ್ಥಾಪಿಸಿ"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"ಅಪ್‌ಗ್ರೇಡ್‌ ಮರುಪ್ರಯತ್ನಿಸಿ"</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_field" msgid="2384260056674995230">"ಮತ್ತೊಂದು ಕ್ಷೇತ್ರವನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"ಹೊಸದನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="add_organization" msgid="7311893231158291197">"ಸಂಘಟನೆಯನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"ದಿನಾಂಕ"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"ಗುಂಪು ಹೆಸರು"</string>
+    <string name="description_star" msgid="2605854427360036550">"ಮೆಚ್ಚಿನ"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"ಸಂಪರ್ಕವನ್ನು ಸಂಪಾದಿಸು"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"ವಿಲೀನಗೊಳಿಸಿಲ್ಲ"</item>
+    <item quantity="other" msgid="425683718017380845">"<xliff:g id="COUNT">%0$d</xliff:g> ಮೂಲಗಳಿಂದ ವಿಲೀನಗೊಳಿಸಲಾಗಿದೆ"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"ಆಯ್ಕೆಮಾಡಿದ ಸಂಪರ್ಕದೊಂದಿಗೆ ಪ್ರಸ್ತುತ ಸಂಪರ್ಕವನ್ನು ಸೇರಿಸುವುದೇ?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ಆಯ್ಕೆಮಾಡಿದ ಸಂಪರ್ಕವನ್ನು ಸಂಪಾದಿಸುವುದಕ್ಕೆ ಬದಲಿಸುವುದೇ? ನೀವು ಇಲ್ಲಿಯವರೆಗೆ ನಮೂದಿಸಿದ ಮಾಹಿತಿಯನ್ನು ನಕಲು ಮಾಡಲಾಗುತ್ತದೆ."</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"ನನ್ನ ಸಂಪರ್ಕಗಳಿಗೆ ನಕಲಿಸು"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"ನನ್ನ ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸು"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"ಡೈರೆಕ್ಟರಿ <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"ಕಸ್ಟಮ್"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="menu_settings" msgid="377929915873428211">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="menu_help" msgid="5123887102216637725">"ಸಹಾಯ"</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="7356532842767854606">"ವರ್ಷವನ್ನು ಒದಗಿಸಿ"</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="7911101713860139754">"ಖಾತೆಗೆ ಸೈನ್‌ ಇನ್‌ ಮಾಡಿ"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"ಸಂಪರ್ಕಗಳನ್ನು ಆಮದು ಮಾಡಿ"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"ಹೊಸ ಗುಂಪು ರಚಿಸಿ"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"ಹೊಸ ಗುಂಪು ರಚಿಸಿ"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 ಗುಂಪು"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> ಗುಂಪುಗಳು"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" ಗುಂಪನ್ನು ಅಳಿಸುವುದೇ? (ಸಂಪರ್ಕಗಳನ್ನೇ ಅಳಿಸಲಾಗುವುದಿಲ್ಲ.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="COUNT_0">%1$d</xliff:g> <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> ರಿಂದ ವ್ಯಕ್ತಿ"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="COUNT_0">%1$d</xliff:g> <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> ರಿಂದ ಜನರು"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> ವ್ಯಕ್ತಿ"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> ಜನರು"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"ಮತ್ತೊಬ್ಬರೊಂದಿಗೆ ಸೇರುವ ಮೊದಲು ಸಂಪರ್ಕದ ಹೆಸರನ್ನು ಟೈಪ್‌ ಮಾಡಿ."</string>
+    <string name="copy_text" msgid="3257145021583508761">"ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಿ"</string>
+    <string name="set_default" msgid="4417505153468300351">"ಡೀಫಾಲ್ಟ್ ಹೊಂದಿಸಿ"</string>
+    <string name="clear_default" msgid="7193185801596678067">"ಡೀಫಾಲ್ಟ್‌ ತೆರವುಗೊಳಿಸಿ"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"ಪಠ್ಯವನ್ನು ನಕಲಿಸಲಾಗಿದೆ"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"ನಿಮ್ಮ ಬದಲಾವಣೆಗಳನ್ನು ತಿರಸ್ಕರಿಸುವುದೇ?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"ನನ್ನ ಪ್ರೊಫೈಲ್ ಹೊಂದಿಸು"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"ವ್ಯಕ್ತಿಯ ಹೆಸರನ್ನು ಟೈಪ್‌ ಮಾಡಿ"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"ಗುಂಪಿನ ಹೆಸರು"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"ನನ್ನ ಸ್ಥಳೀಯ ಪ್ರೊಫೈಲ್"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"ನನ್ನ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ಪ್ರೊಫೈಲ್‌"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"ಎಲ್ಲ ಸಂಪರ್ಕಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತಿದೆ"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Google ಖಾತೆಯಲ್ಲಿ ಸಂಪರ್ಕಗಳ ಕಾರ್ಯ ಉತ್ತಮವಾಗಿರುತ್ತದೆ.\n\n• ಯಾವುದೇ ವೆಬ್ ಬ್ರೌಸರ್‌ನಿಂದ ಪ್ರವೇಶಿಸಿ.\n• ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಬ್ಯಾಕ್ ಅಪ್ ಮಾಡಿ."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"ನಿಮ್ಮ ಫೋನ್‌ ಅನ್ನು ಕಳೆದುಕೊಂಡರೂ ಸಹ ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಿ: ಆನ್‌‌ಲೈನ್‌ ಸೇವೆಯೊಂದಿಗೆ ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಿ."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ಖಾತೆಯೊಂದನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"ನಿಮ್ಮ ಹೊಸ ಸಂಪರ್ಕವನ್ನು ಬ್ಯಾಕಪ್‌ ಮಾಡುವುದಿಲ್ಲ. ಸಂಪರ್ಕಗಳನ್ನು ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ ಬ್ಯಾಕಪ್‌ ಇರಿಸುವ ಖಾತೆಯನ್ನು ಸೇರಿಸುವುದೇ?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"<xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ಜೊತೆಗೆ ನಿಮ್ಮ ಹೊಸ ಸಂಪರ್ಕವನ್ನು ಸಿಂಕ್ರೊನೈಜ್ ಮಾಡಲಾಗುತ್ತದೆ."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"ಕೆಳಗಿನ ಖಾತೆಗಳೊಂದಿಗೆ ನಿಮ್ಮ ಹೊಸ ಸಂಪರ್ಕವನ್ನು ನೀವು ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಬಹುದು. ಯಾವುದನ್ನು ಬಳಸಲು ನೀವು ಬಯಸುತ್ತೀರಿ?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"ಹೊಸ ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"ಸಂಪರ್ಕವನ್ನು ಸಂಪಾದಿಸಿ"</string>
+    <string name="keep_local" msgid="1258761699192993322">"ಸ್ಥಳೀಯವಾಗಿ ಇರಿಸಿ"</string>
+    <string name="add_account" msgid="8201790677994503186">"ಖಾತೆಯನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"ಹೊಸ ಖಾತೆಯನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"ಡೇಟಾಬೇಸ್‌‌ ಫೈಲ್‌ಗಳನ್ನು ರಫ್ತು ಮಾಡಿ"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"ಹೊಸ ಸಂಪರ್ಕವನ್ನು ಸೇರಿಸು"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"ಇನ್ನಷ್ಟು ನೋಡಿ"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"ಕಡಿಮೆ ನೋಡಿ"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"ಎಲ್ಲವನ್ನೂ ನೋಡಿ"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"ಇತ್ತೀಚಿನದು"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"ಕುರಿತು"</string>
+    <string name="send_message" msgid="8938418965550543196">"ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"ವೈಯಕ್ತಿಕ ಪ್ರತಿಯನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"ನಿನ್ನೆ"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"ನಾಳೆ"</string>
+    <string name="today" msgid="8041090779381781781">"ಇಂದು"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"<xliff:g id="TIME_INTERVAL">%s</xliff:g> ಕ್ಕೆ ಇಂದು"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"<xliff:g id="TIME_INTERVAL">%s</xliff:g> ಕ್ಕೆ ನಾಳೆ"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(ಶೀರ್ಷಿಕೆರಹಿತ ಈವೆಂಟ್)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"ಹೊಂದಿಸು"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"ಸಂಸ್ಥೆ"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"ಅಡ್ಡಹೆಸರು"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"ಟಿಪ್ಪಣಿ"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"ವೆಬ್‌ಸೈಟ್"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ಈವೆಂಟ್"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"ಸಂಬಂಧ"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"ಸ್ಥಳಕ್ಕಾಗಿ ದಿಕ್ಕುಗಳು"</string>
+</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index ca5f00a..b5db29e 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"주소록"</string>
+    <string name="people" msgid="1190841469952343354">"주소록"</string>
     <string name="contactsList" msgid="8661624236494819731">"주소록"</string>
     <string name="shortcutContact" msgid="749243779392912958">"연락처"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"바로 전화 걸기"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"전화번호 선택"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"메시지를 보낼 번호 선택"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"연락처 선택"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"새 연락처 선택"</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="viewContactDesription" msgid="214186610887547860">"연락처 보기"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"연락처 수정"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"연락처 만들기"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"그룹 수정"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"홈 화면에 만들기"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"연락처에 여러 계정의 정보가 들어 있습니다. 읽기 전용 계정의 정보는 주소록 목록에서 숨길 수 있지만 삭제할 수는 없습니다."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"이 연락처를 삭제하면 여러 계정의 정보가 삭제됩니다."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"이 연락처를 삭제합니다."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"취소"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"변경사항 취소"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"연락처가 없습니다."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"주소록 위젯이 홈 화면에 추가됨"</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"새 연락처 만들기"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"전화번호가 포함된 연락처 <xliff:g id="COUNT">%d</xliff:g>개"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"전화번호가 포함된 주소록이 없습니다."</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"연락처 1개"</item>
-    <item quantity="other" msgid="3578469907265375314">"연락처 <xliff:g id="COUNT">%d</xliff:g>개"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1개를 찾았습니다."</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g>개를 찾았습니다."</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1개를 찾았습니다."</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g>개를 찾았습니다."</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"모든 연락처"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"그룹"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"모든 연락처"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"즐겨찾기"</string>
     <string name="callBack" msgid="5498224409038809224">"전화 걸기"</string>
     <string name="callAgain" msgid="3197312117049874778">"다시 걸기"</string>
     <string name="returnCall" msgid="8171961914203617813">"전화 걸기"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"연락처 <xliff:g id="CURRENT_NUMBER">%s</xliff:g>개(총 <xliff:g id="TOTAL_NUMBER">%s</xliff:g>개) 내보내는 중"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"연락처 명단"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"이 작업을 처리하는 앱을 찾을 수 없습니다."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"이전 화면으로 돌아가려면 클릭"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"전화번호 추가"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"이메일 추가"</string>
+    <string name="missing_app" msgid="1466111003546611387">"이 작업을 처리하는 앱을 찾을 수 없습니다."</string>
     <string name="menu_share" msgid="943789700636542260">"공유"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"주소록에 추가"</string>
     <string name="share_via" msgid="563121028023030093">"연락처 공유에 사용할 애플리케이션:"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"계정에서 그룹 만들기"</string>
     <string name="audio_chat" msgid="2535716629358298691">"음성채팅"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"사진 사용"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"이 앱에서 수정할 수 없습니다."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"연락처에 대한 추가 정보가 없습니다."</string>
     <string name="group_read_only" msgid="1061762906115697637">"이 기기에서 수정할 수 없습니다."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"목록 정렬 기준"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"이름"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"성"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"연락처 이름 보기"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"이름 먼저 표시"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"성 먼저 표시"</string>
     <string name="take_photo" msgid="7496128293167402354">"사진 찍기"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"새 사진 찍기"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"갤러리에서 사진 선택"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"갤러리에서 새 사진 선택"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"사진 선택"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"새 사진 선택"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"변경된 언어를 반영하도록 주소록을 업데이트하는 중입니다. 잠시 기다려 주세요."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"주소록을 업데이트하고 있습니다."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"주소록을 업그레이드하는 중입니다. \n\n업그레이드 하려면 약 <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g>MB의 내부 저장공간이 필요합니다.\n\n다음 옵션 중 하나를 선택하세요."</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"조직 추가"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"날짜"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"그룹 이름"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"출처: <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g>(출처: <xliff:g id="SOURCE">%2$s</xliff:g>)"</string>
     <string name="description_star" msgid="2605854427360036550">"즐겨찾기"</string>
     <string name="edit_contact" msgid="7529281274005689512">"연락처 수정"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"개인 사본 작성 중..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"사용자 설정"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"설정"</string>
     <string name="menu_settings" msgid="377929915873428211">"설정"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"내 로컬 프로필"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"내 <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> 프로필"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"모든 연락처 표시"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"인물 앱은 Google 계정에서 사용할 때 더 효과적입니다.\n\n• 어떤 웹 브라우저에서든 액세스하세요.\n• 주소록을 안전하게 백업하세요."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"주소록은 Google 계정에서 사용할 때 더 효과적입니다.\n\n• 어떤 웹 브라우저에서든 액세스할 수 있습니다.\n• 주소록을 안전하게 백업할 수 있습니다."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"온라인 서비스와 동기화되므로 휴대전화를 잃어버려도 주소록을 안전하게 유지할 수 있습니다."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"계정 추가"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"새 연락처는 백업되지 않습니다. 온라인에 주소록을 백업할 계정을 추가하시겠습니까?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"새 연락처가 <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>와(과) 동기화됩니다."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"새 연락처를 다음 계정 중 하나와 동기화할 수 있습니다. 무엇을 사용하시겠습니까?"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"새 연락처를 다음 계정 중 하나와 동기화할 수 있습니다. 원하는 계정을 선택하세요."</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="contact_detail_picture_description" msgid="6083230522651287030">"사진을 변경하려면 선택"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"새 연락처 추가"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"더보기"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"간략히 보기"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"모두 보기"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"최근"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"정보"</string>
+    <string name="send_message" msgid="8938418965550543196">"메시지 보내기"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"개인 사본 작성 중..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"어제"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"내일"</string>
+    <string name="today" msgid="8041090779381781781">"오늘"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"오늘 <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"내일 <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="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="content_description_directions" msgid="2686791825798189335">"길찾기"</string>
 </resources>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
new file mode 100644
index 0000000..c0f8d98
--- /dev/null
+++ b/res/values-ky-rKG/strings.xml
@@ -0,0 +1,331 @@
+<?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="people" msgid="1190841469952343354">"Байланыштар"</string>
+    <!-- no translation found for contactsList (8661624236494819731) -->
+    <skip />
+    <!-- no translation found for shortcutContact (749243779392912958) -->
+    <skip />
+    <!-- no translation found for shortcutDialContact (746622101599186779) -->
+    <skip />
+    <!-- no translation found for shortcutMessageContact (2460337253595976198) -->
+    <skip />
+    <!-- no translation found for shortcutActivityTitle (6642877210643565436) -->
+    <skip />
+    <!-- no translation found for callShortcutActivityTitle (6065749861423648991) -->
+    <skip />
+    <!-- no translation found for messageShortcutActivityTitle (3084542316620335911) -->
+    <skip />
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Байланыш тандоо"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Жаңы байланышты тандаңыз"</string>
+    <!-- no translation found for starredList (4817256136413959463) -->
+    <skip />
+    <!-- no translation found for frequentList (7154768136473953056) -->
+    <skip />
+    <!-- no translation found for strequentList (5640192862059373511) -->
+    <skip />
+    <!-- no translation found for viewContactTitle (7989394521836644384) -->
+    <skip />
+    <!-- no translation found for editContactDescription (2947202828256214947) -->
+    <skip />
+    <!-- no translation found for insertContactDescription (4709878105452681987) -->
+    <skip />
+    <!-- no translation found for editGroupDescription (6321161304201540561) -->
+    <skip />
+    <!-- no translation found for insertGroupDescription (5658512271662210139) -->
+    <skip />
+    <!-- no translation found for contactDetailAbout (5430408883907061400) -->
+    <skip />
+    <!-- no translation found for contactDetailUpdates (3780588624763446941) -->
+    <skip />
+    <!-- no translation found for searchHint (8482945356247760701) -->
+    <skip />
+    <!-- no translation found for menu_viewContact (2795575601596468581) -->
+    <skip />
+    <!-- no translation found for menu_addStar (2908478235715404876) -->
+    <skip />
+    <!-- no translation found for menu_removeStar (5844227078364227030) -->
+    <skip />
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Сүйүктүүлөрдөн чыгарылды"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Сүйүктүүлөргө кошулду"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Өзгөртүү"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Жок кылуу"</string>
+    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Үй экранына жайгаштыруу"</string>
+    <!-- no translation found for menu_call (3992595586042260618) -->
+    <skip />
+    <!-- no translation found for menu_sendSMS (5535886767547006515) -->
+    <skip />
+    <!-- no translation found for menu_splitAggregate (8368636463748691868) -->
+    <skip />
+    <string name="menu_editGroup" msgid="5062005185370983720">"Өзгөртүү"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"Жок кылуу"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Байланыш кошуу"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Топ кошуу"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"Байланыш бөлүнсүнбү?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"Бул байланыш бир нече байланыштарга бөлүнөт."</string>
+    <!-- no translation found for menu_joinAggregate (5027981918265667970) -->
+    <skip />
+    <!-- no translation found for titleJoinContactDataWith (7684875775798635354) -->
+    <skip />
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"<xliff:g id="NAME">%s</xliff:g> менен бириктиргиңиз келген байланышты тандаңыз."</string>
+    <!-- no translation found for showAllContactsJoinItem (2189695051430392383) -->
+    <skip />
+    <!-- no translation found for separatorJoinAggregateSuggestions (2831414448851313345) -->
+    <skip />
+    <!-- no translation found for separatorJoinAggregateAll (7939932265026181043) -->
+    <skip />
+    <!-- no translation found for contactsJoinedMessage (7208148163607047389) -->
+    <skip />
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Рингтон орнотуу"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Үн почтасына бардык чалуулар"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"Сиз окуганга гана болгон эсебиңизден байланыштарыңызды өчүрө албайсыз, бирок аларды жашырсаңыз болот."</string>
+    <!-- no translation found for readOnlyContactDeleteConfirmation (2137170726670196909) -->
+    <skip />
+    <!-- no translation found for multipleContactDeleteConfirmation (938900978442960800) -->
+    <skip />
+    <!-- no translation found for deleteConfirmation (811706994761610640) -->
+    <skip />
+    <string name="menu_discard" msgid="6854657936970228164">"Өзгөрүүлөрдү жарактан чыгаруу"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Мындай байланыш жок."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Байланыштар виджети Үй экранына кошулду."</string>
+    <!-- no translation found for pickerNewContactHeader (7750705279843568147) -->
+    <skip />
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Жаңы байланыш түзүү"</string>
+    <!-- no translation found for otherLabels:0 (8287841928119937597) -->
+    <!-- no translation found for otherLabels:1 (7196592230748086755) -->
+    <!-- no translation found for photoPickerNotFoundText (6247290728908599701) -->
+    <skip />
+    <!-- no translation found for photoPickerNotFoundText (431331662154342581) -->
+    <skip />
+    <!-- no translation found for attach_photo_dialog_title (5599827035558557169) -->
+    <skip />
+    <!-- no translation found for customLabelPickerTitle (1081475101983255212) -->
+    <skip />
+    <!-- no translation found for send_to_voicemail_checkbox (9001686764070676353) -->
+    <skip />
+    <!-- no translation found for removePhoto (4898105274130284565) -->
+    <skip />
+    <!-- no translation found for noContacts (8579310973261953559) -->
+    <skip />
+    <!-- no translation found for noGroups (8614664663561385253) -->
+    <skip />
+    <string name="noAccounts" msgid="7768267764545265909">"Топторду түзүш үчүн эсеп керек."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"Бу топто эч ким жок."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"Бирөөнү кошуш үчүн топту өзгөртүңүз."</string>
+    <!-- no translation found for savingContact (4075751076741924939) -->
+    <skip />
+    <!-- no translation found for contactSavedToast (7152589189385441091) -->
+    <skip />
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Байланыштын өзгөрүүлөрү сакталган жок."</string>
+    <!-- no translation found for groupSavedToast (1168756874239833756) -->
+    <skip />
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Топтун өзгөртүүлөрү сакталган жок."</string>
+    <!-- no translation found for listTotalPhoneContacts:one (3015357862286673986) -->
+    <!-- no translation found for listTotalPhoneContacts:other (3299954047880968205) -->
+    <!-- no translation found for listTotalPhoneContactsZero (6968813857632984319) -->
+    <skip />
+    <!-- no translation found for listFoundAllContacts:one (5517063038754171134) -->
+    <!-- no translation found for listFoundAllContacts:other (3852668542926965042) -->
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Байланыштар жок"</string>
+    <!-- no translation found for searchFoundContacts:one (4826918429708286628) -->
+    <!-- no translation found for searchFoundContacts:other (7988132539476575389) -->
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Бардк байлнштр"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Сүйүктүүлөр"</string>
+    <!-- no translation found for callBack (5498224409038809224) -->
+    <skip />
+    <!-- no translation found for callAgain (3197312117049874778) -->
+    <skip />
+    <!-- no translation found for returnCall (8171961914203617813) -->
+    <skip />
+    <!-- no translation found for add_contact_dlg_message_fmt (7986472669444326576) -->
+    <skip />
+    <!-- no translation found for description_contact_photo (3387458082667894062) -->
+    <skip />
+    <!-- no translation found for description_plus_button (515164827856229880) -->
+    <skip />
+    <!-- no translation found for exporting_contact_list_progress (560522409559101193) -->
+    <skip />
+    <!-- no translation found for search_settings_description (2675223022992445813) -->
+    <skip />
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"Бул ишти аткаруучу эч бир колдонмо табылган жок."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Мурунку экранга кайтуу үчүн чыкылдатыңыз"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Телефон номерин кошуу"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Электрондук почта дарегин кошуу"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Бул ишти аткаруучу эч бир колдонмо табылган жок."</string>
+    <!-- no translation found for menu_share (943789700636542260) -->
+    <skip />
+    <string name="menu_add_contact" msgid="3198704337220892684">"Байланыштарга кошуу"</string>
+    <!-- no translation found for share_via (563121028023030093) -->
+    <skip />
+    <!-- no translation found for dialog_new_group_account (2318032089273496830) -->
+    <skip />
+    <string name="audio_chat" msgid="2535716629358298691">"Үн чат"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Видео чат"</string>
+    <string name="connections" msgid="8098440723172028350">"Байланыштар"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"Байланыш кошуу"</string>
+    <string name="recent" msgid="2659189233141493004">"Акыркы"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"Акыркы жаңыртуулар"</string>
+    <!-- no translation found for account_type_format (718948015590343010) -->
+    <skip />
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <!-- no translation found for use_photo_as_primary (8807110122951157246) -->
+    <skip />
+    <string name="contact_read_only" msgid="7421346527289472273">"Бул колдонмодон өзгөртүлбөйт."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"Бул түзмөктөн өзгөртүлбөйт."</string>
+    <!-- no translation found for take_photo (7496128293167402354) -->
+    <skip />
+    <!-- no translation found for take_new_photo (7341354729436576304) -->
+    <skip />
+    <string name="pick_photo" msgid="2129509985223564942">"Сүрөт тандаңыз"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Жаңы сүрөт тандоо"</string>
+    <!-- no translation found for locale_change_in_progress (7583992153091537467) -->
+    <skip />
+    <!-- no translation found for upgrade_in_progress (474511436863451061) -->
+    <skip />
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Байланыштар жаңыртылууда. \n\nЖаңыртуу ишине ички сактагычтан <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> МБ орун талап кылынат.\n\nКийинки мүмкүнчүлүктөрдүн бирин тандаңыз:"</string>
+    <!-- no translation found for upgrade_out_of_memory_uninstall (1721798828992091432) -->
+    <skip />
+    <!-- no translation found for upgrade_out_of_memory_retry (8431289830472724609) -->
+    <skip />
+    <string name="search_results_searching" msgid="3984833028938569930">"Изделүүдө…"</string>
+    <!-- no translation found for menu_display_selected (6470001164297969034) -->
+    <skip />
+    <!-- no translation found for menu_display_all (8887488642609786198) -->
+    <skip />
+    <!-- no translation found for menu_select_all (621719255150713545) -->
+    <skip />
+    <!-- no translation found for menu_select_none (7093222469852132345) -->
+    <skip />
+    <!-- no translation found for add_field (2384260056674995230) -->
+    <skip />
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Жаңысын кошуу"</string>
+    <string name="add_organization" msgid="7311893231158291197">"Уюм кошуу"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Дата"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Топтун аты"</string>
+    <!-- no translation found for description_star (2605854427360036550) -->
+    <skip />
+    <!-- no translation found for edit_contact (7529281274005689512) -->
+    <skip />
+    <!-- no translation found for merge_info:one (148365587896371969) -->
+    <!-- no translation found for merge_info:other (425683718017380845) -->
+    <!-- no translation found for aggregation_suggestion_join_dialog_message (3842757977671434836) -->
+    <skip />
+    <!-- no translation found for aggregation_suggestion_edit_dialog_message (6549585283910518095) -->
+    <skip />
+    <string name="menu_copyContact" msgid="1573960845106822639">"Менин Байланыштарыма көчүрүү"</string>
+    <!-- no translation found for add_to_my_contacts (1068274916793627723) -->
+    <skip />
+    <!-- no translation found for contact_directory_description (683398073603909119) -->
+    <skip />
+    <!-- no translation found for list_filter_custom (8910173055702057002) -->
+    <skip />
+    <!-- no translation found for activity_title_settings (5464130076132770781) -->
+    <skip />
+    <!-- no translation found for menu_settings (377929915873428211) -->
+    <!-- no translation found for menu_settings (377929915873428211) -->
+    <skip />
+    <string name="menu_help" msgid="5123887102216637725">"Жардам"</string>
+    <!-- no translation found for preference_displayOptions (1341720270148252393) -->
+    <skip />
+    <!-- no translation found for organization_company_and_title (6718207751363732025) -->
+    <skip />
+    <!-- no translation found for non_phone_caption (1541655052330027380) -->
+    <skip />
+    <!-- no translation found for non_phone_add_to_contacts (6590985286250471169) -->
+    <skip />
+    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Байланыштарга кошуу"</string>
+    <!-- no translation found for non_phone_close (7608506439725515667) -->
+    <skip />
+    <!-- no translation found for widget_name_and_phonetic (8739586586600099979) -->
+    <skip />
+    <!-- no translation found for date_year_toggle (7356532842767854606) -->
+    <skip />
+    <!-- no translation found for social_widget_label (6378905543028924592) -->
+    <skip />
+    <string name="social_widget_loading" msgid="5327336597364074608">"Жүктөлүүдө…"</string>
+    <!-- no translation found for contacts_unavailable_create_contact (7014525713871959208) -->
+    <skip />
+    <!-- no translation found for contacts_unavailable_add_account (7911101713860139754) -->
+    <skip />
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Байланыштарды импорттоо"</string>
+    <!-- no translation found for create_group_dialog_title (6874527142828424475) -->
+    <skip />
+    <string name="create_group_item_label" msgid="4411981763169654825">"Жаңы топ түзүү"</string>
+    <!-- no translation found for num_groups_in_account:one (2944819210288517794) -->
+    <!-- no translation found for num_groups_in_account:other (1276758425904917367) -->
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" тобу өчүрүлсүнбү? (Байланыштардын өзү өчүрүлбөйт)."</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> ичинен <xliff:g id="COUNT_0">%1$d</xliff:g> киши"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> ичинен <xliff:g id="COUNT_0">%1$d</xliff:g> киши"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> киши"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> киши"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Башка менен бириктирүүдөн мурун, байланыштын атын териңиз."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Алмашуу буферине көчүрүү"</string>
+    <string name="set_default" msgid="4417505153468300351">"Негизги кылуу"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Негизгини тазалоо"</string>
+    <!-- no translation found for toast_text_copied (5143776250008541719) -->
+    <skip />
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Өзгөртүүлөр жокко чыгарылсынбы?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"Профайлымды тууралоо"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"Кишинин атын киргизиңиз"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"Топтун аты"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Менин жергиликтүү профайлым"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Менин <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> профайлым"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Бардык байланыштарды көрсөтүү"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Байланыштар колдонмосу Google Каттоо эсебинде жакшы иштейт.\n\n• Аны каалаган веб серепчиден колдонууга болот.\n• Байланыштарыңыздын камдык көчүрмөсү коопсуз жерде сакталат."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Телефонуңузду жоготсоңуз дагы, байланыштарыңызды жоготпоңуз: онлайн кызмат менен синхрондоңуз."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Эсеп кошуу"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Жаңы байланыш бэкапталган жок. Байланыштарды онлайн бэкаптаган эсеп кошолубу?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Жаңы байланышыңыз <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> менен синхрондолот."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Сиз жаңы байланышты кийинки эсептердин бири менен синхрондоштура аласыз. Кайсынысын тандайсыз?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Жаңы байланыш кошуу"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Байланышты түзөтүү"</string>
+    <string name="keep_local" msgid="1258761699192993322">"Жерлигиликтүү сактоо"</string>
+    <string name="add_account" msgid="8201790677994503186">"Эсеп кошуу"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Жаңы эсеп кошуу"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Берилиштер корлорунун файлдарын экспорттоо"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"жаңы байланыш кошуу"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Дагы көрүү"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Азыраак көрүү"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Бардыгын көрүү"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Акыркы"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Жөнүндө"</string>
+    <string name="send_message" msgid="8938418965550543196">"Билдирүү жөнөтүү"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Жеке көчүрмөнү алуу..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Кечээ"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Эртең"</string>
+    <string name="today" msgid="8041090779381781781">"Бүгүн"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Бүгүн саат <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Эртең саат <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Аталышы жок окуя)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Орнотуу"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Иштеген жери"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Ылакап аты"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Кыска жазуу"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Вебсайт"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Иш-чара"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Мамилелик катышы"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"жайгашуу ордуна багыттоолор"</string>
+</resources>
diff --git a/res/values-sw600dp/colors.xml b/res/values-land/bools.xml
similarity index 77%
copy from res/values-sw600dp/colors.xml
copy to res/values-land/bools.xml
index 0f8f8de..bd0650f 100644
--- a/res/values-sw600dp/colors.xml
+++ b/res/values-land/bools.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
+<!-- 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.
@@ -13,10 +13,8 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-
 <resources>
 
-    <!-- Color used for the letter in the A-Z section header -->
-    <color name="section_header_text_color">#ff000000</color>
+    <bool name="quickcontact_two_panel">true</bool>
 
 </resources>
diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml
index e72a0ee..d975093 100644
--- a/res/values-land/dimens.xml
+++ b/res/values-land/dimens.xml
@@ -17,7 +17,5 @@
     <dimen name="dialpad_digits_height">66dip</dimen>
     <dimen name="dialpad_digits_text_size">28sp</dimen>
     <dimen name="dialpad_digits_margin_bottom">50dip</dimen>
-    <!-- Center vertically -->
-    <dimen name="quick_contact_top_position">-1px</dimen>
     <dimen name="editor_type_label_width">120dip</dimen>
 </resources>
diff --git a/res/values-land/integers.xml b/res/values-land/integers.xml
index d247e46..08e1fe3 100644
--- a/res/values-land/integers.xml
+++ b/res/values-land/integers.xml
@@ -14,5 +14,11 @@
      limitations under the License.
 -->
 <resources>
+    <!--  Determines the number of columns in a ContactTileRow in the favorites tab -->
+    <integer name="contact_tile_column_count_in_favorites">5</integer>
+
     <integer name="contact_tile_column_count">4</integer>
+
+    <!-- Number of lines the QuickContact title can have -->
+    <integer name="quickcontact_title_lines">2</integer>
 </resources>
diff --git a/res/drawable/quickcontact_track_background.xml b/res/values-land/vals.xml
similarity index 79%
rename from res/drawable/quickcontact_track_background.xml
rename to res/values-land/vals.xml
index fcf61fd..ebcae31 100644
--- a/res/drawable/quickcontact_track_background.xml
+++ b/res/values-land/vals.xml
@@ -13,7 +13,7 @@
      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/quickcon_background_texture"
-    android:tileMode="repeat" />
+<resources>
+    <!-- The ratio of width:height for the contact's photo -->
+    <item name="quickcontact_photo_ratio" type="vals" format="float">0.7</item>
+</resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
new file mode 100644
index 0000000..cfa518d
--- /dev/null
+++ b/res/values-lo-rLA/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"ລາຍຊື່ຜູ່ຕິດຕໍ່"</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="contactPickerActivityTitle" msgid="4301062192337417640">"ເລືອກລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"​ເລືອກ​ລາຍ​ຊື່​ຜ​​ູ່​ຕິດ​ຕໍ່​ໃໝ່"</string>
+    <string name="starredList" msgid="4817256136413959463">"ໝາຍດາວແລ້ວ"</string>
+    <string name="frequentList" msgid="7154768136473953056">"ເລື້ອຍໆ"</string>
+    <string name="strequentList" msgid="5640192862059373511">"ລາຍການທີ່ມັກ"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"ລາຍລະອຽດລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"ແກ້ໄຂລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"ສ້າງລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"ແກ້ໄຂກຸ່ມ"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"ສ້າງກຸ່ມ"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"ກ່ຽວ​ກັບ"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"ອັບເດດ"</string>
+    <string name="searchHint" msgid="8482945356247760701">"ຊອກຫາລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"ເບິ່ງລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"ເພີ່ມເປັນລາຍການທີ່ມັກ"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"ລຶບອອກຈາກລາຍການທີ່ມັກ"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"​ລຶບ​ອອກ​ຈາກ​ລາຍ​ການ​ທີ່​ມັກ​ແລ້ວ"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"​ເພີ່ມ​ໃສ່​ລາຍ​ການ​ທີ່​ມັກ"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"ແກ້ໄຂ"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"ລຶບ"</string>
+    <string name="menu_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="8368636463748691868">"ແຍກຂໍ້ມູນ"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"ແກ້ໄຂ"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"ລຶບ"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"ເພີ່ມເປັນລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"ເພີ່ມກຸ່ມ"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"ແຍກລາຍຊື່ຜູ່ຕິດຕໍ່?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"ລາຍຊື່ຜູ່ຕິດຕໍ່ຈະຖືກແຍກເປັນຫຼາຍລາຍຊື່ຜູ່ຕິດຕໍ່."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"ຮວມ"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"ຮວມລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"ເລືອກລາຍຊື່ຜູ່ຕິດຕໍ່ ທີ່ທ່ານຕ້ອງການຮວມກັບ <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="7208148163607047389">"ຮວມລາຍຊື່ຜູ່ຕິດຕໍ່ແລ້ວ"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ຕັ້ງສຽງຣິງໂທນ"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ໂອນທຸກສາຍໄປຂໍ້ຄວາມສຽງ"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"ທ່ານບໍ່ສາມາດລຶບລາຍຊື່ຜູ່ຕິດຕໍ່ຈາກບັນຊີທີ່ອ່ານໄດ້ເທົ່ານັ້ນ ແຕ່ທ່ານສາມາດເຊື່ອງມັນໄວ້ໃນລາຍຊື່ຜູ່ຕິດຕໍ່ຂອງທ່ານ."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"ລາຍຊື່ຜູ່ຕິດຕໍ່ນີ້ມີຂໍ້ມູນຈາກຫຼາຍບັນຊີ. ຂໍ້ມູນຈາກບັນຊີທີ່ອ່ານໄດ້ເທົ່ານັ້ນ ຈະຖືກເຊື່ອງໄວ້ໃນລາຍຊື່ຂອງທ່ານ ແຕ່ບໍ່ຖືກລຶບອອກ."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"ການລຶບລາຍຊື່ຜູ່ຕິດຕໍ່ນີ້ຈະລຶບຂໍ້ມູນຈາກຫຼາຍບັນຊີ."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"ລາຍຊື່ຜູ່ຕິດຕໍ່ນີ້ຈະຖືກລຶບອອກ."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"ຍົກເລີກການແກ້ໄຂ"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"ບໍ່ມີລາຍຊື່ຜູ່ຕິດຕໍ່."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"ເພີ່ມວິດເຈັດລາຍຊື່ຜູ່ຕິດຕໍ່ໃສ່ໜ້າຈໍຫຼັກແລ້ວ."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"ສ້າງລາຍຊື່ຜູ່ຕິດຕໍ່ໃໝ່"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"ສ້າງລາຍຊື່ຜູ່ຕິດຕໍ່ໃໝ່"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"ອົງກອນ"</item>
+    <item msgid="7196592230748086755">"ໝາຍເຫດ"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ບໍ່ມີຮູບໃນແທັບເລັດທີ່ສາມາດໃຊ້ໄດ້."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ບໍ່ມີຮູບທີ່ສາມາດໃຊ້ໄດ້ໃນໂທລະສັບ."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"ຮູບລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"ປ້າຍກຳກັບຊື່ກຳນົດເອງ"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"ສົ່ງການໂທອອກໄປຫາຂໍ້ຄວາມສຽງໂດຍກົງ"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ລຶບຮູບພາບ"</string>
+    <string name="noContacts" msgid="8579310973261953559">"ບໍ່ມີລາຍຊື່ຜູ່ຕິດຕໍ່."</string>
+    <string name="noGroups" msgid="8614664663561385253">"ບໍ່ມີກຸ່ມ."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"ເພື່ອສ້າງກຸ່ມ ທ່ານຈະຕ້ອງມີບັນຊີກ່ອນ."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"ບໍ່ມີຄົນໃນກຸ່ມນີ້."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"ເພື່ອເພີ່ມລາຍຊື່, ກະລຸນາແກ້ໄຂກຸ່ມ."</string>
+    <string name="savingContact" msgid="4075751076741924939">"ກຳລັງບັນທຶກລາຍຊື່ຜູ່ຕິດຕໍ່..."</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"ບັນທຶກລາຍຊື່ຜູ່ຕິດຕໍ່ແລ້ວ."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"ບໍ່ສາມາດບັນທຶກການແກ້ໄຂລາຍຊື່ຜູ່ຕິດຕໍ່ໄດ້."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"ບັນທຶກກຸ່ມແລ້ວ."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"ບໍ່ສາມາດບັນທຶກການແກ້ໄຂກຸ່ມໄດ້."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"1 ລາຍຊື່ຜູ່ຕິດຕໍ່ທີ່ມີເບີໂທລະສັບ"</item>
+    <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> ລາຍຊື່ຜູ່ຕິດຕໍ່ທີ່ມີເບີໂທລະສັບ"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ບໍ່ມີລາຍຊື່ທີ່ມີເບີໂທລະສັບ"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"ພົບ 1"</item>
+    <item quantity="other" msgid="3852668542926965042">"ພົບ <xliff:g id="COUNT">%d</xliff:g>"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"ບໍ່ມີລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"ພົບ 1 ລາຍຊື່"</item>
+    <item quantity="other" msgid="7988132539476575389">"ພົບ <xliff:g id="COUNT">%d</xliff:g>"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"ລາຍ​ຊື່​ຜູ່​ຕິດ​ຕໍ່​ທັງ​ໝົດ"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"​ລາຍ​ການ​ທີ່​ມັກ"</string>
+    <string name="callBack" msgid="5498224409038809224">"ໂທກັບ"</string>
+    <string name="callAgain" msgid="3197312117049874778">"ໂທອີກເທື່ອນຶ່ງ"</string>
+    <string name="returnCall" msgid="8171961914203617813">"ໂທກັບ"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"ເພີ່ມ \"<xliff:g id="EMAIL">%s</xliff:g>\" ໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"ຮູບພາບລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"ບວກ"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"ລາຍຊື່ຜູ່ຕິດຕໍ່ <xliff:g id="CURRENT_NUMBER">%s</xliff:g> ຈາກທັງໝົດ  <xliff:g id="TOTAL_NUMBER">%s</xliff:g> ລາຍຊື່"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"ຊື່ຂອງລາຍຊື່ຜູ່ຕິດຕໍ່ຂອງທ່ານ"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"ບໍ່ພົບແອັບຯທີ່ໃຊ້ເພື່ອດຳເນີນການ."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ຄລິກ​ເພື່ອ​ກັບ​ໄປ​ທີ່​ໜ້າຈໍ​ກ່ອນ​ໜ້າ​ນີ້"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ເພີ່ມ​ເບີ​ໂທ​ລະ​ສັບ"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ເພີ່ມອີເມວ"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ບໍ່ພົບແອັບຯທີ່ໃຊ້ເພື່ອດຳເນີນການ."</string>
+    <string name="menu_share" msgid="943789700636542260">"ແບ່ງປັນ"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"​ເພີ່ມ​ໃນ​ລາຍ​ຊື່​ຜູ່​ຕິດ​ຕໍ່"</string>
+    <string name="share_via" msgid="563121028023030093">"ແບ່ງປັນລາຍຊື່ຜູ່ຕິດຕໍ່ຜ່ານທາງ"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"ສ້າງກຸ່ມພາຍໃຕ້ບັນຊີ"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"ການສົນທະນາດ້ວຍສຽງ"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ການສົນທະນາດ້ວຍວິດີໂອ"</string>
+    <string name="connections" msgid="8098440723172028350">"ການເຊື່ອມຕໍ່"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"ເພີ່ມການເຊື່ອມຕໍ່"</string>
+    <string name="recent" msgid="2659189233141493004">"ເມື່ອບໍ່ດົນມານີ້"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"ອັບເດດເມື່ອໄວໆນີ້"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"ໃຊ້ຮູບນີ້"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"ບໍ່ສາມາດແກ້ໄຂໄດ້ຈາກແອັບຯນີ້."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"ບໍ່ສາມາດແກ້ໄຂໄດ້ໃນອຸປະກອນນີ້."</string>
+    <string name="take_photo" msgid="7496128293167402354">"ຖ່າຍ​ຮູບ"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"ຖ່າຍຮູບໃໝ່"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ເລືອກ​ຮູບ"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"ເລືອກຮູບໃໝ່"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"ລາຍຊື່ຜູ່ຕິດຕໍ່ກຳລັງຖືກອັບເດດຕາມການປ່ຽນແປງຂອງພາສາ."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"ລາຍການລາຍຊື່ຜູ່ຕິດຕໍ່ກຳລັງຖືກອັບເດດ."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"ລາຍຊື່ຜູ່ຕິດຕໍ່ກຳລັງຢູ່ໃນລະຫວ່າງການອັບເກຣດ. \n\nຂັ້ນຕອນການອັບເກຣດ ຈະໃຊ້ບ່ອນຈັດເກັບຂໍ້ມູນພາຍໃນ <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB.\n\nກະລຸນາເລືອກໂຕເລືອກໃດນຶ່ງຕໍ່ໄປນີ້:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"ຖອນການຕິດຕັ້ງບາງແອັບພລິເຄຊັນອອກ"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"ລອງອັບເກຣດອີກຄັ້ງ"</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_field" msgid="2384260056674995230">"ເພີ່ມຊ່ອງຂໍ້ມູນອື່ນ"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"ເພີ່ມໃໝ່"</string>
+    <string name="add_organization" msgid="7311893231158291197">"ເພີ່ມອົງກອນ"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"ວັນທີ"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"ຊື່ກຸ່ມ"</string>
+    <string name="description_star" msgid="2605854427360036550">"ໝາຍດາວ"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"ແກ້ໄຂລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"ຍັງບໍ່ຮວມເທື່ອ"</item>
+    <item quantity="other" msgid="425683718017380845">"ຮວມມາຈາກ <xliff:g id="COUNT">%0$d</xliff:g> ແຫລ່ງຂໍ້ມູນ"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"ຮວມລາຍຊື່ຜູ່ຕິດຕໍ່ນີ້ ກັບລາຍຊື່ຜູ່ຕິດຕໍ່ທີ່ເລືອກ?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ສະລັບໄປທີ່ການແກ້ໄຂລາຍຊື່ຜູ່ຕິດຕໍ່ທີ່ເລືອກ? ຂໍ້ມູນທີ່ທ່ານຂຽນມາຈະຖືກສຳເນົາໄວ້."</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"ສຳເນົາໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່ຂອງຂ້ອຍ"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"ເພີ່ມໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່ຂອງຂ້ອຍ"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"ໄດເຣັກທໍຣີ <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"ກຳນົດເອງ"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"ການຕັ້ງຄ່າ"</string>
+    <string name="menu_settings" msgid="377929915873428211">"ການຕັ້ງຄ່າ"</string>
+    <string name="menu_help" msgid="5123887102216637725">"ຊ່ວຍເຫຼືອ"</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="7356532842767854606">"ລະບຸປີ"</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="7911101713860139754">"ເຂົ້າສູ່ລະບົບບັນຊີ"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"ນຳເຂົ້າລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"ສ້າງ​ກຸ່ມ​ໃໝ່"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"ສ້າງ​ກຸ່ມ​ໃໝ່"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 ກຸ່ມ"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> ກຸ່ມ"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"ລຶບກຸ່ມ \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (ລາຍຊື່ຜູ່ຕິດຕໍ່ຈະບໍ່ຖືກລຶບອອກ.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="COUNT_0">%1$d</xliff:g> ຄົນຈາກ <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="COUNT_0">%1$d</xliff:g> ຄົນຈາກ <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> ຄົນ"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> ຄົນ"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"ພິມຊື່ຂອງລາຍຊື່ຜູ່ຕິດຕໍ່ກ່ອນການຮວມກັບລາຍຊື່ອື່ນ."</string>
+    <string name="copy_text" msgid="3257145021583508761">"ສຳເນົາໃສ່ຄລິບບອດ"</string>
+    <string name="set_default" msgid="4417505153468300351">"ຕັ້ງຄ່າເລີ່ມຕົ້ນ"</string>
+    <string name="clear_default" msgid="7193185801596678067">"ລຶບຄ່າເລີ່ມຕົ້ນ"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"ສຳເນົາຂໍ້ຄວາມແລ້ວ"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"ຍົກເລີກການແກ້ໄຂຂອງທ່ານ?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"ຕັ້ງຄ່າໂປຣໄຟລ໌ຂອງຂ້ອຍ"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"ພິມຊື່ຄົນ"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"ຊື່ກຸ່ມ"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"ໂປຣໄຟລ໌ໃນອຸປະກອນຂອງຂ້ອຍ"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"ໂປຣໄຟລ໌ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ຂອງຂ້ອຍ"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"ສະແດງລາຍຊື່ຜູ່ຕິດຕໍ່ທັງໝົດ"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"ລາຍຊື່ຜູ່ຕິດຕໍ່​ຈະ​ເຮັດ​ວຽກ​ໄດ້​ດີ​ຂຶ້ນ​ເມື່ອ​ໃຊ້​ຮ່ວມ​ກັບ​ບັນ​ຊີ Google.\n\n• ເຂົ້າ​ເຖິງ​ໄດ້​ຈາກ​ທຸກ​ໂປຣແກຣມ​ທ່ອງ​ເວັບ.\n• ສຳຮອງ​ຂໍ້ມູນ​ລາຍຊື່ຜູ່ຕິດຕໍ່​ຂອງ​ທ່ານ​ໄວ້​ຢ່າງ​ປອດ​ໄພ."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"ເກັບຮັກສາລາຍຊື່ຜູ່ຕິດຕໍ່ຂອງທ່ານໄວ້ຢ່າງປອດໄພ ເຖິງແມ່ນວ່າໂທລະສັບຂອງທ່ານຈະເສຍກໍຕາມ ດ້ວຍການຊິ້ງຂໍ້ມູນກັບບໍລິການອອນລາຍ."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ເພີ່ມບັນຊີ"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"ລາຍຊື່ຜູ່ຕິດຕໍ່ໃໝ່ຂອງທ່ານຈະບໍ່ຖືກສຳຮອງຂໍ້ມູນ. ທ່ານຕ້ອງການເພີ່ມບັນຊີ ທີ່ສາມາດສຳຮອງຂໍ້ມູນອອນລາຍໄດ້ຫຼືບໍ່?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"ລາຍຊື່ຜູ່ຕິດຕໍ່ໃໝ່ຂອງທ່ານຈະຖືກຊິ້ງຂໍ້ມູນກັບ <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"ທ່ານສາມາດຊິ້ງຂໍ້ມູນລາຍຊື່ຜູ່ຕິດຕໍ່ໃໝ່ຂອງທ່ານ ກັບບັນຊີຕໍ່ໄປນີ້ໄດ້. ທ່ານຕ້ອງການໃຊ້ບັນຊີໃດ?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"​ເພີ່ມ​ລາຍ​ຊື່​ຜູ່​ຕິດ​ຕໍ່​ໃໝ່"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"ແກ້ໄຂລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="keep_local" msgid="1258761699192993322">"ຈັດເກັບໃນເຄື່ອງ"</string>
+    <string name="add_account" msgid="8201790677994503186">"ເພີ່ມບັນຊີ"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"ເພີ່ມບັນຊີໃໝ່"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"ສົ່ງອອກໄຟລ໌ຖານຂໍ້ມູນ"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"ເພີ່ມ​ລາຍຊື່​ຜູ່​ຕິດຕໍ່"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"​ເບິ່ງ​ເພີ່ມ​ເຕີມ"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"​​ເບິ່ງ​ໜ້ອຍ​ລົງ"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"ເບິ່ງ​ທັງ​ໝົດ"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"ບໍ່ດົນມານີ້"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"ກ່ຽວກັບ"</string>
+    <string name="send_message" msgid="8938418965550543196">"ສົ່ງຂໍ້ຄວາມ"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"ກຳລັງ​ສ້າງ​ສຳເນົາ​ສ່ວນບຸກຄົນ..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"ມື້​ວານ​ນີ້"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"ມື້ອື່ນ"</string>
+    <string name="today" msgid="8041090779381781781">"ມື້ນີ້"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"ມື້ນີ້ໃນເວລາ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"ມື້ອື່ນໃນເວລາ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(ນັດ​ໝາຍບໍ່​ມີ​ຊື່)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"ຕົກລົງ"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"ອົງກອນ"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"ຊື່ຫຼິ້ນ"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"ບັນທຶກ"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"ເວັບໄຊ"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ການນັດໝາຍ"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"ຄວາມສຳພັນ"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"​ເສັ້ນ​ທາງ​ໄປ​ຫາ​ສະ​ຖານ​ທີ່"</string>
+</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 55dd40c..1005298 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Žmonės"</string>
+    <string name="people" msgid="1190841469952343354">"Kontaktai"</string>
     <string name="contactsList" msgid="8661624236494819731">"Adresinė"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Adresatas"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Tiesioginis numerio rinkimas"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Pasirinkti kontaktą"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Naujo kontakto pasirinkimas"</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">"Adresynas"</string>
+    <string name="strequentList" msgid="5640192862059373511">"Mėgstamiausi"</string>
     <string name="viewContactTitle" msgid="7989394521836644384">"Išsami adresato informacija"</string>
-    <string name="viewContactDesription" msgid="214186610887547860">"Žiūrėti adresatą"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Redaguoti adresatą"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Sukurti adresatą"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Redaguoti grupę"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Padėti pagrindiniame ekrane"</string>
@@ -65,10 +67,10 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Šiam adresatui priskirta kelių paskyrų informacija. Tik skaitomų paskyrų informacija bus paslėpta adresatų sąrašuose; ji nebus ištrinta."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Ištrynus šią informaciją, bus ištrinta kelių paskyrų informacija."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Šis adresatas bus ištrintas."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Atmesti"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Atmesti pakeitimus"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontaktas neegzistuoja."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Kontaktų valdiklis pridėtas prie pagrindinio ekrano."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Kurti naują adresatą"</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Kurti naują kontaktą"</string>
     <string name="pickerNewContactText" msgid="6166997164401048211">"Kurti naują kontaktą"</string>
   <string-array name="otherLabels">
     <item msgid="8287841928119937597">"Organizacija"</item>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"Kontaktai (-ų) su telefonų numeriais: <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nėra kontaktų su telefonų numeriais"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 kontaktas"</item>
-    <item quantity="other" msgid="3578469907265375314">"Kontaktai: <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"rastas 1"</item>
     <item quantity="other" msgid="3852668542926965042">"Rasta <xliff:g id="COUNT">%d</xliff:g>"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"rastas 1"</item>
     <item quantity="other" msgid="7988132539476575389">"Rasta <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Visi kontaktai"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grupės"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Visi kontaktai"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Mėgstamiausi"</string>
     <string name="callBack" msgid="5498224409038809224">"Perskambinti"</string>
     <string name="callAgain" msgid="3197312117049874778">"Skambinti dar kartą"</string>
     <string name="returnCall" msgid="8171961914203617813">"Grįžtamasis skambutis"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> iš <xliff:g id="TOTAL_NUMBER">%s</xliff:g> adresatų"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Kontaktų vardai"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Nerasta jokių programų šiam veiksmui apdoroti."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Spustelėkite, kad grįžtumėte į ankstesnį ekraną"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Pridėti telefono numerį"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Pridėti el. pašto adresą"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Nerasta jokių programų šiam veiksmui apdoroti."</string>
     <string name="menu_share" msgid="943789700636542260">"Bendrinti"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Pridėti prie kontaktų"</string>
     <string name="share_via" msgid="563121028023030093">"Bendrinti adresatą naudojant"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Kurti grupę paskyroje"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Balso pokalbis"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Naudoti šią nuotrauką"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Iš šios programos redaguoti negalima."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Nėra papildomos informacijos apie šį kontaktą."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Negalima redaguoti šiame įrenginyje."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Rūšiuoti sąrašą pagal"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Suteiktas pavadinimas"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Pavardė"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Žiūrėti kontaktų vardus"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Pirmiausia suteiktas pavadinimas"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Pirmiausia pavardė"</string>
     <string name="take_photo" msgid="7496128293167402354">"Fotografuoti"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Iš naujo fotografuoti"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Pasirinkti nuotrauką iš galerijos."</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Pasirinkti naują nuotrauką iš galerijos"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Pasirinkti nuotrauką"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Pasirinkti naują nuotrauką"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Kontaktų sąrašas yra atnaujinamas, kad atspindėtų kalbos pakeitimą."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Atnaujinamas kontaktų sąrašas."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Kontaktai naujovinami. \n\nNaujovinimo procesui reikalinga maždaug <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB vidinės atminties.\n\nPasirinkite vieną iš šių parinkčių:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Pridėti organizaciją"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Grupės pavad."</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"naudojant „<xliff:g id="SOURCE">%1$s</xliff:g>“"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> naudojant „<xliff:g id="SOURCE">%2$s</xliff:g>“"</string>
     <string name="description_star" msgid="2605854427360036550">"įtraukti į adresyną"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Redaguoti kontaktą"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Kuriama asmeninė kopija..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Priskirtas"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Nustatymai"</string>
     <string name="menu_settings" msgid="377929915873428211">"Nustatymai"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Mano vietos profilis"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mano „<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>“ profilis"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Pateikiami visi kontaktai"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Žmonių programa veikia geriau naudojant „Google“ paskyrą.\n\n• Pasiekite naudodami bet kurią žiniatinklio naršyklę.\n• Saugiai kurkite atsargines kontaktų kopijas."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Kontaktai veikia geriau naudojant „Google“ paskyrą.\n\n• Pasiekite naudodami bet kurią žiniatinklio naršyklę.\n• Saugiai kurkite atsargines kontaktų kopijas."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Užtikrinkite kontaktų saugumą net praradę telefoną: sinchronizuokite su internetine paslauga."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Pridėti paskyrą"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Naujo kontakto atsarginė kopija nebus sukurta. Pridėti paskyrą, kuri sukuria atsargines kontaktų kopijas internete?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Naujas kontaktas bus sinchronizuojamas su <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Naują kontaktą galite sinchronizuoti su viena iš toliau pateiktų paskyrų. Kurią norite naudoti?"</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="keep_local" msgid="1258761699192993322">"Išsaug. kaip vietinį"</string>
     <string name="add_account" msgid="8201790677994503186">"Pridėkite 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="contact_detail_picture_description" msgid="6083230522651287030">"Nuotrauka. Pasirinkite, kad pakeistumėte"</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">"Naujausios"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Apie"</string>
+    <string name="send_message" msgid="8938418965550543196">"Siųsti pranešimą"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Kuriama asmeninė kopija..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Vakar"</string>
+    <string name="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="content_description_directions" msgid="2686791825798189335">"nuorodos į vietovę"</string>
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index b479d59..8d2e401 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Kontakti"</string>
+    <string name="people" msgid="1190841469952343354">"Kontaktpersonas"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontaktpersonas"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontaktpersona"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Tiešais zvans"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Kontaktpersonas izvēle"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Atlasīt 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="viewContactDesription" msgid="214186610887547860">"Skatīt kontaktpersonu"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Rediģēt kontaktpersonu"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Izveidot kontaktpersonu"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Rediģēt grupu"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Novietot sākuma ekrānā"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Šī kontaktpersona satur informāciju no vairākiem kontiem. Informācija no tikai lasāmiem kontiem jūsu kontaktpersonu sarakstā tiks slēpta, nevis dzēsta."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Dzēšot šo kontaktpersonu, tiks dzēsta informācija no vairākiem kontiem."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Šī kontaktpersona tiks dzēsta."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Atmest"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Atmest izmaiņas"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Šāda kontaktpersona nepastāv."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Kontaktpersonas logrīks pievienots sākuma ekrānam."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Izveidot jaunu kontaktpersonu"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<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="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 kontaktpersona"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> kontaktpersonas"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"Atrasta 1"</item>
     <item quantity="other" msgid="3852668542926965042">"Atrastas <xliff:g id="COUNT">%d</xliff:g>"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"Atrasta 1"</item>
     <item quantity="other" msgid="7988132539476575389">"Atrastas <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Visas kontaktpersonas"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grupas"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Visas"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Izlase"</string>
     <string name="callBack" msgid="5498224409038809224">"Atzvanīt"</string>
     <string name="callAgain" msgid="3197312117049874778">"Zvanīt vēlreiz"</string>
     <string name="returnCall" msgid="8171961914203617813">"Atzvanīt"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> no <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontaktpersonas(-ām)"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Kontaktpersonu vārdi"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Netika atrasta neviena lietotne šīs darbības veikšanai."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Noklikšķiniet, lai atgrieztos iepriekšējā ekrānā."</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Pievienojiet tālruņa numuru"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Pievienojiet e-pasta adresi"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Netika atrasta neviena lietotne šīs darbības veikšanai."</string>
     <string name="menu_share" msgid="943789700636542260">"Kopīgot"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Pievienot kontaktpersonām"</string>
     <string name="share_via" msgid="563121028023030093">"Kopīgot kontaktpersonu, izmantojot"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Izveidot grupu šajā kontā:"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Balss tērzēšana"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Izmantot šo fotoattēlu"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Nevar rediģēt šajā lietotnē."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Nav pieejama papildinformācija par šo kontaktpersonu."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Nevar rediģēt šajā ierīcē."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Kārtot sarakstu pēc"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Vārds"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Uzvārds"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Skatīt kontaktpersonu vārdus"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Vispirms rādīt vārdu"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Vispirms rādīt uzvārdu"</string>
     <string name="take_photo" msgid="7496128293167402354">"Uzņemt fotoattēlu"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Uzņemt jaunu fotoattēlu"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Izvēlēties fotoattēlu no galerijas"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Atlasīt jaunu fotoattēlu no galerijas"</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="locale_change_in_progress" msgid="7583992153091537467">"Kontaktpersonu saraksts tiek atjaunināts, lai atspoguļotu valodas maiņu."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Kontaktpersonu saraksts tiek atjaunināts."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Notiek kontaktpersonu jaunināšana.\n\nJaunināšanas procesam ir nepieciešami aptuveni <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB iekšējās atmiņas.\n\nIzvēlieties vienu no tālāk norādītajām opcijām."</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Pievienot organiz."</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datums"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Grupas nos."</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"izmantojot <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g>, izmantojot <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"izlase"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Kontaktpersonu rediģēšana"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Notiek personīgā eksemplāra izveide..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Pielāgotas"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Iestatījumi"</string>
     <string name="menu_settings" msgid="377929915873428211">"Iestatījumi"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Mans vietējais profils"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mans <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profils"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Tiek attēlotas visas kontaktpersonas"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Lietotne People darbojas labāk ar Google kontu.\n\n• Piekļuve no jebkuras tīmekļa pārlūkprogrammas\n• Droša kontaktinformācijas dublēšana"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Lietotne “Kontaktpersonas” darbosies labāk, izmantojot Google kontu.\n\n• Piekļuve no jebkuras tīmekļa pārlūkprogrammas. \n• Droša kontaktpersonu informācijas dublēšana."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Nodrošinieties pret kontaktpersonu zudumu pat tālruņa nozaudēšanas gadījumā — sinhronizējiet informāciju ar tiešsaistes pakalpojumu."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Konta pievienošana"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Jaunā kontaktinformācija netiks dublēta. Vai pievienot kontu, kurā tiek tiešsaistē dublēta kontaktinformācija?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Jaunā kontaktinformācija tiks sinhronizēta ar kontu <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Varat sinhronizēt jauno kontaktinformāciju ar vienu no tālāk norādītajiem kontiem. Kuru kontu vēlaties izmantot?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Pievienošana"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Personas rediģēšana"</string>
     <string name="keep_local" msgid="1258761699192993322">"Saglabāt vietēji"</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="contact_detail_picture_description" msgid="6083230522651287030">"Attēls. Lai mainītu, atlasiet."</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="6137651078366797938">"Notiek personīgās kopijas 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="content_description_directions" msgid="2686791825798189335">"norādes uz atrašanās vietu"</string>
 </resources>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
new file mode 100644
index 0000000..f1180ad
--- /dev/null
+++ b/res/values-mk-rMK/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"Контакти"</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="contactPickerActivityTitle" msgid="4301062192337417640">"Одбери контакт"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Избери нов контакт"</string>
+    <string name="starredList" msgid="4817256136413959463">"Со ѕвезда"</string>
+    <string name="frequentList" msgid="7154768136473953056">"Често"</string>
+    <string name="strequentList" msgid="5640192862059373511">"Омилени"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"Детали на контактот"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"Уреди контакт"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"Создај контакт"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"Уреди група"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"Создај група"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"За"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"Ажурирања"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Пребарај контакти"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"Прикажи контакт"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Додај во омилени"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Отстрани од омилени"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Отстрането од омилени"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Додадено во омилени"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Уреди"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Избриши"</string>
+    <string name="menu_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="8368636463748691868">"Оддели"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"Уреди"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"Избриши"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Додај контакт"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Додај група"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"Раздели контакт?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"Овој контакт ќе се раздели во повеќе контакти."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"Поврзи"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Поврзи контакти"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"Изберете го контактот што сакате да го поврзете со <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="7208148163607047389">"Поврзани контакти"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Подеси мелодија"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Сите повици кон говорна пошта"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"Не можете да избришете контакти од сметки само за читање, но можете да ги сокриете во вашите списоци со контакти."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Овој контакт содржи информации од повеќе сметки. Информациите од сметки само за читање ќе бидат скриени во вашите списоци со контакти, а не избришани."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Со бришење на овој контакт ќе се избришат информации од повеќе сметки."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"Овој контакт ќе се избрише."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Отфрли ги промените"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Контактот не постои."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Виџет на контакт е додаден на почетниот екран."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Создај нов контакт"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Создај нов контакт"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"Организација"</item>
+    <item msgid="7196592230748086755">"Забелешка"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Не се достапни слики на таблетот."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Не се достапни слики на телефонот."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Фотографија за контакт"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Прилагоди име на етикета"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Испрати повици директно на говорна пошта"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Отстрани фотографија"</string>
+    <string name="noContacts" msgid="8579310973261953559">"Нема контакти."</string>
+    <string name="noGroups" msgid="8614664663561385253">"Нема групи."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"За да создадете групи ви треба сметка."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"Нема луѓе во оваа група."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"За да додадете неколку, уредете ја групата."</string>
+    <string name="savingContact" msgid="4075751076741924939">"Контактот се зачувува..."</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"Контактот е зачуван."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Не можеа да се зачуваат промените на контактот."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"Групата е зачувана."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Не можеа да се зачуваат промените на групата."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"1 контакт со телефонски број"</item>
+    <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> контакти со телефонски броеви"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Нема контакти со телефонски броеви"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 пронајден"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> пронајдени"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Нема контакти"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 пронајден"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> пронајдени"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Сите контакти"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Омилени"</string>
+    <string name="callBack" msgid="5498224409038809224">"Повикај назад"</string>
+    <string name="callAgain" msgid="3197312117049874778">"Повикај повторно"</string>
+    <string name="returnCall" msgid="8171961914203617813">"Врати повик"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Додај „<xliff:g id="EMAIL">%s</xliff:g>“ во контакти?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"фотографија за контакт"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"плус"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> од <xliff:g id="TOTAL_NUMBER">%s</xliff:g> контакти"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Имиња на вашите контакти"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"Не е пронајдена апликација да се справи со ова дејство."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Кликнете за да се вратите на претходниот екран"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Додајте телефонски број"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Додајте е-пошта"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Не е пронајдена апликација да се справи со ова дејство."</string>
+    <string name="menu_share" msgid="943789700636542260">"Сподели"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Додај во контакти"</string>
+    <string name="share_via" msgid="563121028023030093">"Сподели контакт преку"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"Создај група под сметка"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Гласовен разговор"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Видео разговор"</string>
+    <string name="connections" msgid="8098440723172028350">"Врски"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"Додај врска"</string>
+    <string name="recent" msgid="2659189233141493004">"Скорешни"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"Скорешни ажурирања"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> контакт"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"Користи ја оваа фотографија"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"Не се уредува од оваа апликација."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"Не може да се уреди на овој уред."</string>
+    <string name="take_photo" msgid="7496128293167402354">"Фотографирај"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Направи нова фотографија"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Избери фотографија"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Избери нова фотографија"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"Списокот со контакти се ажурира за да ја одрази промената на јазикот."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"Списокот со контакти се ажурира."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Контактите се во фаза на ажурирање.\n\n За процесот на ажурирање се потребни околу <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB внатрешна меморија.\n\nИзберете една од следниве опции:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Деинсталирај некои апликации"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Обиди се повторно да се ажурира"</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_field" msgid="2384260056674995230">"Додај друга област"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Додај нов запис"</string>
+    <string name="add_organization" msgid="7311893231158291197">"Додај организација"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Датум"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Име на група"</string>
+    <string name="description_star" msgid="2605854427360036550">"омилено"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"Уреди контакт"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"не се споени"</item>
+    <item quantity="other" msgid="425683718017380845">"споени од <xliff:g id="COUNT">%0$d</xliff:g> извори"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"Да го поврзе тековниот контакт со избраниот контакт?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Да се префрли на уредување на избраниот контакт? Информациите што ги внесовте досега ќе бидат копирани."</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"Копирај во Мои контакти"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"Додај во Мои контакти"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Адресар <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"Прилагодено"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Подесувања"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Подесувања"</string>
+    <string name="menu_help" msgid="5123887102216637725">"Помош"</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="7356532842767854606">"Наведи година"</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="7911101713860139754">"Пријави се на сметка"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Увези контакти"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"Создај нова група"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"Создај нова група"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 група"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> групи"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Избриши ја групата „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Контактите нема да се избришат.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="COUNT_0">%1$d</xliff:g> лице од <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="COUNT_0">%1$d</xliff:g> лица од <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> лице"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> лица"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Впишете го името на контактот пред да го поврзете со друг."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Копирај во клип-табла"</string>
+    <string name="set_default" msgid="4417505153468300351">"Подеси стандарден метод"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Исчисти стандарден метод"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Текстот е копиран"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Отфрли ги своите промени?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"Подеси мој профил"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"Впиши име на лице"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"Име на групата"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Мој локален профил"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Мој профил на <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Прикажување на сите контакти"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Апликацијата Контакти работи подобро со сметка на Google.\n\n• Пристапете од кој било прелистувач.\n• Направете резервна копија од контактите безбедно."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Чувајте ги вашите контакти безбедни дури и ако го изгубите вашиот телефон: синхронизирајте се со онлајн услуга."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Додај сметка"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Нема да се направи резервна копија на вашиот нов контакт. Додадете сметка што прави резервна копија на контакти онлајн?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Вашиот нов контакт ќе се синхронизира со <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Може да го синхронизирате вашиот нов контакт со една од следниве сметки. Која сакате да ја користите?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Додај нов контакт"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Уреди контакт"</string>
+    <string name="keep_local" msgid="1258761699192993322">"Задржи локално"</string>
+    <string name="add_account" msgid="8201790677994503186">"Додај сметка"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Додај нова сметка"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Извези датотеки од база на податоци"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"додај нов контакт"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Погледни повеќе"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Погледни помалку"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Погледни ги сите"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Неодамнешни"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"За"</string>
+    <string name="send_message" msgid="8938418965550543196">"Испрати порака"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Се создава лична копија..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Вчера"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Утре"</string>
+    <string name="today" msgid="8041090779381781781">"Денес"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Денес во <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Утре во <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Неименуван настан)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Постави"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Организација"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Прекар"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Белешка"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Веб-локација"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Настан"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Врска"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"насоки до локација"</string>
+</resources>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
new file mode 100644
index 0000000..54c8169
--- /dev/null
+++ b/res/values-ml-rIN/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"കോണ്‍ടാക്റ്റുകള്‍"</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="contactPickerActivityTitle" msgid="4301062192337417640">"ഒരു കോൺടാക്റ്റ് തിരഞ്ഞെടുക്കുക"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"പുതിയ കോൺടാക്‌റ്റ് തിരഞ്ഞെടുക്കുക"</string>
+    <string name="starredList" msgid="4817256136413959463">"നക്ഷത്രമിട്ടവ"</string>
+    <string name="frequentList" msgid="7154768136473953056">"പതിവായി കോൺടാക്റ്റുചെയ്യുന്നവർ"</string>
+    <string name="strequentList" msgid="5640192862059373511">"പ്രിയപ്പെട്ടവർ"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"കോൺടാക്റ്റ് വിശദാംശങ്ങൾ"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"കോൺടാക്റ്റ് എഡിറ്റുചെയ്യുക"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"കോൺടാക്റ്റ് സൃഷ്‌ടിക്കുക"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"ഗ്രൂപ്പ് എഡിറ്റുചെയ്യുക"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"ഗ്രൂപ്പ് സൃഷ്ടിക്കുക"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"ആമുഖം"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"അപ്‌ഡേറ്റുകൾ"</string>
+    <string name="searchHint" msgid="8482945356247760701">"കോണ്‍‌ടാക്റ്റുകള്‍ തിരയുക"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"കോൺടാക്റ്റ് കാണുക"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"പ്രിയപ്പെട്ടവയിലേക്ക് ചേർക്കുക"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"പ്രിയപ്പെട്ടവയിൽ നിന്നും നീക്കംചെയ്യുക"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"പ്രിയപ്പെട്ടവയിൽ നിന്നും നീക്കംചെയ്‌തു"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"പ്രിയപ്പെട്ടവയിലേക്ക് ചേർത്തു"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"എഡിറ്റുചെയ്യുക"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"ഇല്ലാതാക്കുക"</string>
+    <string name="menu_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="8368636463748691868">"വേർതിരിക്കുക"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"എഡിറ്റുചെയ്യുക"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"ഇല്ലാതാക്കുക"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"കോണ്‍‌ടാക്റ്റ് ചേര്‍‌ക്കുക"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"ഗ്രൂപ്പ് ചേർക്കുക"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"കോൺടാക്റ്റ് വിഭജിക്കണോ?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"ഈ കോൺടാക്റ്റ് ഒന്നിലധികം കോൺടാക്റ്റുകളായി വിഭജിക്കപ്പെടും."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"ചേരുക"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"കോൺടാക്റ്റുകൾ ബന്ധിപ്പിക്കുക"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"<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="7208148163607047389">"കൂട്ടിച്ചേർത്ത കോൺടാക്റ്റുകൾ"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"റിംഗ്‌ടോൺ സജ്ജമാക്കുക"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"വോയ്‌സ്‌മെയിലിലേക്കുള്ള എല്ലാ കോളുകളും"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"വായന-മാത്രം അക്കൗണ്ടുകളിൽ നിന്നുള്ള കോൺടാക്റ്റുകൾ നിങ്ങൾക്ക് ഇല്ലാതാക്കാനാകില്ലെങ്കിലും കോൺടാക്റ്ററ്റ് ലിസ്റ്റുകളിൽ നിന്ന് അവ മറയ്‌ക്കാനാകും."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"ഈ കോൺടാക്റ്റിൽ ഒന്നിലധികം അക്കൗണ്ടുകളിൽ നിന്നുള്ള വിവരം അടങ്ങിയിരിക്കുന്നു. വായന-മാത്രം അക്കൗണ്ടുകളിൽ നിന്നുള്ള വിവരം നിങ്ങളുടെ കോൺടാക്റ്റുകളുടെ ലിസ്റ്റിൽ നിന്നും മറയ്‌ക്കുമെങ്കിലും അവ ഇല്ലാതാക്കില്ല."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"ഈ കോൺടാക്റ്റ് ഇല്ലാതാക്കുന്നത്, ഒന്നിലധികം അക്കൗണ്ടുകളിൽ നിന്ന് വിവരം ഇല്ലാതാക്കുന്നതിനിടയാക്കും."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"ഈ കോൺടാക്‌റ്റിനെ ഇല്ലാതാക്കും."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"മാറ്റങ്ങള്‍‌ നിരാകരിക്കുക"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"കോൺടാക്റ്റ് നിലവിലില്ല."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"ഹോം സ്‌ക്രീനിൽ കോൺടാക്റ്റ് വിജറ്റ് ചേർത്തു."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"പുതിയ കോൺടാക്റ്റ് സൃഷ്‌ടിക്കുക"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"പുതിയ കോൺടാക്റ്റ് സൃഷ്‌ടിക്കുക"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"ഓര്‍ഗനൈസേഷന്‍"</item>
+    <item msgid="7196592230748086755">"കുറിപ്പ്"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ടാബ്‌ലെറ്റിൽ ചിത്രങ്ങളൊന്നും ലഭ്യമല്ല."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ഫോണിൽ ചിത്രങ്ങളൊന്നും ലഭ്യമല്ല."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"കോൺടാക്‌‌റ്റിന്റെ ഫോട്ടോ"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"ഇഷ്‌ടാനുസൃത ലേബൽ പേര്"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"കോളുകൾ നേരിട്ട് വോയ്‌സ്‌മെയിലിലേക്ക് അയയ്‌ക്കുക"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ഫോട്ടോ നീക്കംചെയ്യുക"</string>
+    <string name="noContacts" msgid="8579310973261953559">"കോൺടാക്റ്റുകൾ ഒന്നുമില്ല."</string>
+    <string name="noGroups" msgid="8614664663561385253">"ഗ്രൂപ്പുകൾ ഒന്നുമില്ല."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"ഗ്രൂപ്പുകൾ സൃഷ്‌ടിക്കാൻ നിങ്ങൾക്ക് ഒരു അക്കൗണ്ട് ആവശ്യമാണ്."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"ഈ ഗ്രൂപ്പിൽ ആരുമില്ല."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"കുറച്ചുപേരെ ചേർക്കാൻ ഗ്രൂപ്പ് എഡിറ്റുചെയ്യുക."</string>
+    <string name="savingContact" msgid="4075751076741924939">"കോൺടാക്റ്റ് സംരക്ഷിക്കുന്നു…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"കോൺടാക്റ്റ് സംരക്ഷിച്ചു."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"കോൺടാക്റ്റ് മാറ്റങ്ങൾ സംരക്ഷിക്കാനായില്ല."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"ഗ്രൂപ്പ് സംരക്ഷിച്ചു."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"ഗ്രൂപ്പ് മാറ്റങ്ങൾ സംരക്ഷിക്കാനായില്ല."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"ഫോൺ നമ്പറുള്ള ഒരു കോൺടാക്റ്റ്"</item>
+    <item quantity="other" msgid="3299954047880968205">"ഫോൺ നമ്പറുള്ള <xliff:g id="COUNT">%d</xliff:g> കോൺടാക്റ്റുകൾ"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ഫോൺ നമ്പറുകളോട് കൂടിയ കോൺടാക്റ്റുകളൊന്നുമില്ല"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"ഒരു കോൺടാക്റ്റ് കണ്ടെത്തി"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> കോൺടാക്റ്റുകൾ കണ്ടെത്തി"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"കോൺടാക്റ്റുകളൊന്നുമില്ല"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"ഒരു കോൺടാക്റ്റ് കണ്ടെത്തി"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> കോൺടാക്റ്റുകൾ കണ്ടെത്തി"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"എല്ലാ കോൺടാക്റ്റുകളും"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"പ്രിയപ്പെട്ടവ"</string>
+    <string name="callBack" msgid="5498224409038809224">"തിരിച്ചുവിളിക്കുക"</string>
+    <string name="callAgain" msgid="3197312117049874778">"വീണ്ടും വിളിക്കുക"</string>
+    <string name="returnCall" msgid="8171961914203617813">"കോളിലേക്ക് മടങ്ങുക"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"കോൺടാക്റ്റുകളിലേക്ക് \"<xliff:g id="EMAIL">%s</xliff:g>\" ചേർക്കണോ?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"കോൺടാക്‌‌റ്റിന്റെ ഫോട്ടോ"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"പ്ലസ്"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> / <xliff:g id="TOTAL_NUMBER">%s</xliff:g> കോൺടാക്റ്റുകൾ"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"നിങ്ങളുടെ കോൺടാക്റ്റുകളുടെ പേരുകൾ"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"ഈ പ്രവർത്തനം കൈകാര്യം ചെയ്യാൻ അപ്ലിക്കേഷനുകളൊന്നും കണ്ടെത്തിയില്ല."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"മുമ്പത്തെ സ്‌ക്രീനിലേക്ക് മടങ്ങാൻ ക്ലിക്കുചെയ്യുക"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ഫോണ്‍ നമ്പര്‍ ചേര്‍ക്കുക"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ഇമെയില്‍‌ ചേര്‍‌ക്കുക"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ഈ പ്രവർത്തനം കൈകാര്യം ചെയ്യാൻ അപ്ലിക്കേഷനുകളൊന്നും കണ്ടെത്തിയില്ല."</string>
+    <string name="menu_share" msgid="943789700636542260">"പങ്കിടുക"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"കോൺടാക്‌റ്റുകളിൽ ചേർക്കുക"</string>
+    <string name="share_via" msgid="563121028023030093">"ഇതുവഴി കോൺടാക്റ്റുകൾ പങ്കിടുക"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"അക്കൗണ്ടിന് കീഴിൽ ഗ്രൂപ്പ് സൃഷ്‌ടിക്കുക"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"വോയ്സ് ചാറ്റ്"</string>
+    <string name="video_chat" msgid="1872255818640336072">"വീഡിയോ ചാറ്റ്"</string>
+    <string name="connections" msgid="8098440723172028350">"കണക്ഷനുകൾ"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"കണക്ഷൻ ചേർക്കുക"</string>
+    <string name="recent" msgid="2659189233141493004">"പുതിയത്"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"പുതിയ അപ്‌ഡേറ്റുകൾ"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> കോൺടാക്റ്റ്"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"ഈ ഫോട്ടോ ഉപയോഗിക്കുക"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"ഈ അപ്ലിക്കേഷനിൽ നിന്നും എഡിറ്റുചെയ്യാനാകില്ല."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"ഈ ഉപകരണത്തിൽ എഡിറ്റുചെയ്യാനാകില്ല."</string>
+    <string name="take_photo" msgid="7496128293167402354">"ഫോട്ടോ എടുക്കുക"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"പുതിയ ഫോട്ടോ എടുക്കുക"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ഫോട്ടോ തിരഞ്ഞെടുക്കുക"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"പുതിയ ഫോട്ടോ തിരഞ്ഞെടുക്കുക"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"ഭാഷാമാറ്റം പ്രതിഫലിക്കുന്നതിനായി കോൺടാക്റ്റ് ലിസ്റ്റ് അപ്‌ഡേറ്റുചെയ്യുന്നു."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"കോൺടാക്റ്റ് ലിസ്റ്റ് അപ്‌ഡേറ്റുചെയ്യുന്നു."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"കോൺടാക്റ്റുകൾ അപ്‌ഗ്രേഡുചെയ്യുന്ന പ്രോസസ്സിലാണ്. \n\nഅപ്‌ഗ്രേഡ് പ്രോസസ്സിന് ഏകദേശം <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB ആന്തരിക സംഭരണം ആവശ്യമാണ്.\n\nഇനിപ്പറയുന്ന ഓപ്‌ഷനുകളിലൊന്ന് തിരഞ്ഞെടുക്കുക:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"ചില അപ്ലിക്കേഷനുകൾ അൺഇൻസ്റ്റാളുചെയ്യുക"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"അപ്‌ഗ്രേഡുചെയ്യാൻ വീണ്ടും ശ്രമിക്കുക"</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_field" msgid="2384260056674995230">"മറ്റൊരു ഫീൽഡ് ചേർക്കുക"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"പുതിയത് ചേർക്കുക"</string>
+    <string name="add_organization" msgid="7311893231158291197">"ഓർഗനൈസേഷൻ ചേർക്കുക"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"തീയതി"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"ഗ്രൂപ്പിന്റെ പേര്"</string>
+    <string name="description_star" msgid="2605854427360036550">"പ്രിയപ്പെട്ടതാക്കുക"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"കോൺടാക്റ്റ് എഡിറ്റുചെയ്യുക"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"ലയിപ്പിക്കാത്തവ"</item>
+    <item quantity="other" msgid="425683718017380845">"<xliff:g id="COUNT">%0$d</xliff:g> ഉറവിടങ്ങളിൽ നിന്നും ലയിപ്പിച്ചവ"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"തിരഞ്ഞെടുത്ത കോൺടാക്റ്റുമായി നിലവിലെ കോൺടാക്റ്റ് കൂട്ടിച്ചേർക്കണോ?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"തിരഞ്ഞെടുത്ത കോൺടാക്റ്റ് എഡിറ്റുചെയ്യുന്നതിലേക്ക് മാറണോ? ഇതുവരെ നിങ്ങൾ നൽകിയ വിവരങ്ങൾ പകർത്തപ്പെടും."</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"എന്റെ കോൺടാക്റ്റുകളിലേക്ക് പകർത്തുക"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"എന്റെ കോൺടാക്റ്റുകളിൽ ചേർക്കുക"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"ഡയറക്‌ടറി <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"ഇഷ്‌ടാനുസൃതം"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"ക്രമീകരണങ്ങൾ"</string>
+    <string name="menu_settings" msgid="377929915873428211">"ക്രമീകരണങ്ങൾ"</string>
+    <string name="menu_help" msgid="5123887102216637725">"സഹായം"</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="7356532842767854606">"ഒരു വർഷം നൽകുക"</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="7911101713860139754">"ഒരു അക്കൗണ്ടിൽ സൈൻ ഇൻ ചെയ്യുക"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"കോൺടാക്റ്റുകൾ ഇമ്പോർട്ടുചെയ്യുക"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"പുതിയ ഗ്രൂപ്പ് സൃഷ്‌ടിക്കുക"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"പുതിയ ഗ്രൂപ്പ് സൃഷ്‌ടിക്കുക"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"ഒരു ഗ്രൂപ്പ്"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> ഗ്രൂപ്പുകൾ"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" എന്ന ഗ്രൂപ്പ് ഇല്ലാതാക്കണോ? (കോൺടാക്റ്റുകൾ സ്വയം ഇല്ലാതാകില്ല.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> എന്നതിൽ നിന്നുള്ള <xliff:g id="COUNT_0">%1$d</xliff:g> ആൾ"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> എന്നതിൽ നിന്നുള്ള <xliff:g id="COUNT_0">%1$d</xliff:g> പേർ"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> ആൾ"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> പേർ"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"മറ്റൊന്നുമായി ബന്ധിപ്പിക്കുന്നതിന് മുമ്പ് കോൺടാക്റ്റിന്റെ പേര് ടൈപ്പുചെയ്യുക."</string>
+    <string name="copy_text" msgid="3257145021583508761">"ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തുക"</string>
+    <string name="set_default" msgid="4417505153468300351">"സ്ഥിരമായി സജ്ജമാക്കുക"</string>
+    <string name="clear_default" msgid="7193185801596678067">"സ്ഥിരമായത് മായ്‌ക്കുക"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"വാചകം പകർത്തി"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"നിങ്ങളുടെ മാറ്റങ്ങൾ നിരസിക്കണോ?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"എന്റെ പ്രൊഫൈൽ സജ്ജീകരിക്കുക"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"വ്യക്തിയുടെ പേര് ടൈപ്പുചെയ്യുക"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"ഗ്രൂപ്പിന്റെ പേര്"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"എന്റെ പ്രാദേശിക പ്രൊഫൈൽ"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"എന്റെ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> പ്രൊഫൈൽ"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"എല്ലാ കോൺടാക്റ്റുകളും പ്രദർശിപ്പിക്കുന്നു"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"ഒരു Google അക്കൗണ്ടുള്ള കോൺടാക്‌റ്റുകൾക്ക് മികച്ച രീതിയിൽ പ്രവർത്തിക്കാനാകും.\n\n• ഏത് ബ്രൗസറിൽ നിന്നും ആക്‌സസ്സുചെയ്യുക.\n• നിങ്ങളുടെ കോൺടാക്റ്റുകൾ സുരക്ഷിതമായി ബാക്കപ്പുചെയ്യുക."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"നിങ്ങൾക്ക് ഫോൺ നഷ്‌ടമാകുകയാണെങ്കിൽപ്പോലും നിങ്ങളുടെ കോൺടാക്റ്റുകൾ സുരക്ഷിതമായി സൂക്ഷിക്കുക: ഒരു ഓൺലൈൻ സേവനവുമായി സമന്വയിപ്പിക്കുക."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ഒരു അക്കൗണ്ട് ചേർക്കുക"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"നിങ്ങളുടെ പുതിയ കോൺടാക്റ്റ് ബാക്കപ്പുചെയ്യില്ല. കോൺടാക്റ്റുകളെ ഓൺലൈനിൽ ബാക്കപ്പുചെയ്യുന്ന ഒരു അക്കൗണ്ട് ചേർക്കണോ?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"നിങ്ങളുടെ പുതിയ കോൺടാക്റ്റ് <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> എന്നതിൽ സമന്വയിപ്പിക്കും."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"നിങ്ങൾക്ക് പുതിയ കോൺടാക്റ്റ് ഇനിപ്പറയുന്ന അക്കൗണ്ടുകളിൽ ഒന്നുമായി സമന്വയിപ്പിക്കാം. ഏതാണ് ഉപയോഗിക്കേണ്ടത്?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"പുതിയ കോൺടാക്‌റ്റ് ചേർക്കുക"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"കോൺടാക്റ്റ് എഡിറ്റുചെയ്യുക"</string>
+    <string name="keep_local" msgid="1258761699192993322">"പ്രാദേശികമായി സൂക്ഷിക്കുക"</string>
+    <string name="add_account" msgid="8201790677994503186">"അക്കൗണ്ട് ചേർക്കുക"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"പുതിയ അക്കൗണ്ട് ചേർക്കുക"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"ഡാറ്റാബേസ് ഫയലുകൾ എക്‌സ്‌പോർട്ടുചെയ്യുക"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"പുതിയ കോൺടാക്‌റ്റ് ചേർക്കുക"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"കൂടുതല്‍ കാണുക"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"കുറച്ച് കാണുക"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"എല്ലാം കാണുക"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"പുതിയത്"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"ആമുഖം"</string>
+    <string name="send_message" msgid="8938418965550543196">"സന്ദേശം അയയ്ക്കുക"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"ഒരു വ്യക്തിഗത പകർപ്പ് സൃഷ്‌ടിക്കുന്നു…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"ഇന്നലെ"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"നാളെ"</string>
+    <string name="today" msgid="8041090779381781781">"ഇന്ന്"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"ഇന്ന് <xliff:g id="TIME_INTERVAL">%s</xliff:g> മണിയ്‌ക്ക്"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"നാളെ <xliff:g id="TIME_INTERVAL">%s</xliff:g> മണിയ്‌ക്ക്"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(ശീർഷകമില്ലാത്ത ഇവന്റ്)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"സജ്ജമാക്കുക"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"ഓര്‍ഗനൈസേഷന്‍"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"വിളിപ്പേര്"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"കുറിപ്പ്"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"വെബ്‌സൈറ്റ്"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ഇവന്‍റ്"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"ബന്ധം"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"ലൊക്കേഷനിലേക്കുള്ള വഴികൾ"</string>
+</resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
new file mode 100644
index 0000000..efafe59
--- /dev/null
+++ b/res/values-mn-rMN/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"Харилцагчид"</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="contactPickerActivityTitle" msgid="4301062192337417640">"Харилцагч сонгоно уу"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Шинэ харилцагч сонгох"</string>
+    <string name="starredList" msgid="4817256136413959463">"Одтой"</string>
+    <string name="frequentList" msgid="7154768136473953056">"Байнга"</string>
+    <string name="strequentList" msgid="5640192862059373511">"Дуртай"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"Харилцагчийн мэдээлэл"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"Харилцагч засварлах"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"Харилцагч үүсгэх"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"Бүлгэм засварлах"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"Бүлгэм үүсгэх"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"Тухай"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"Шинэчлэлтүүд"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Харилцагчдаас хайх"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"Харилцагчийг харах"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Таалагдсан руу нэмэх"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Дуртайгаас хасах"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Дуртайгаас хасах"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Дуртайд нэмэх"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Засах"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Устгах"</string>
+    <string name="menu_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="8368636463748691868">"Салгах"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"Засах"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"Устгах"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Харилцагч нэмэх"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Бүлгэм нэмэх"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"Харилцагчийг хуваах уу?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"Энэ харилцагч олон харилцагчид хуваагдах болно."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"Холбох"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Харилцагчдыг холбох"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"<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="7208148163607047389">"Харилцагчид холбогдсон"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Хонхны ая суулгах"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Бүх дуудлагыг дуут шуудан руу"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"Та зөвхөн-унших акаунтаас харилцагчдыг устгаж чадахгүй, харин харилцагчдын жагсаалтаасаас нууцлаж болно."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Энэ харилцагчид олон акаунтын мэдээлэл агуулагдаж байна. Зөвхөн-унших акаунтуудын мэдээллийг харилцагчийн жагсаалтаас устгахгүйгээр нууцлах болно."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Энэ харилцагчийг устгаснаар олон акаунтаас мэдээллийг устгах болно."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"Энэ харилцагч устгагдах болно."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Өөрчлөлтүүдийг цуцлах"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Харилцагч байхгүй байна."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Харилцагчийн виджетийг Үндсэн дэлгэцэнд нэмсэн."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Шинэ харилцагч үүсгэх"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Шинэ харилцагч үүсгэх"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"Байгууллага"</item>
+    <item msgid="7196592230748086755">"Тэмдэглэл"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Таблетэнд зураг байхгүй байна."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Утсанд зураг байхгүй байна."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Харилцагчийн зураг"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Захиалгат шошгын нэр"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Дуут шуудан руу шууд дуудлага хийх"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Зургийг арилгах"</string>
+    <string name="noContacts" msgid="8579310973261953559">"Харилцагч байхгүй."</string>
+    <string name="noGroups" msgid="8614664663561385253">"Бүлгэм байхгүй байна."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Бүлгэм үүсгэхийн тулд танд акаунт хэрэгтэй."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"Энэ бүлгэмд хүн алга."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"Нэмэхийн тулд бүлгэмд өөрчлөлт оруулна уу."</string>
+    <string name="savingContact" msgid="4075751076741924939">"Харилцагчийг хадгалж байна…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"Харилцагчийг хадгалсан."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Харилцагчийн өөрчлөлтүүдийг хадгалж чадсангүй."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"Бүлгэм хадгалагдлаа."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Бүлгэмийн өөрчлөлтүүдийг хадгалж чадсангүй."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"Утасны дугаартай 1 харилцагч"</item>
+    <item quantity="other" msgid="3299954047880968205">"Утасны дугаартай <xliff:g id="COUNT">%d</xliff:g> харилцагч"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Утасны дугаартай харилцагч байхгүй"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 олдсон"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> олдсон"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Харилцагч байхгүй"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 олдсон"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> олдсон"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Бүх харилцагчид"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Дуртай"</string>
+    <string name="callBack" msgid="5498224409038809224">"Буцааж залгах"</string>
+    <string name="callAgain" msgid="3197312117049874778">"Дахин залгана уу"</string>
+    <string name="returnCall" msgid="8171961914203617813">"Буцааж залгах"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\"-г харилцагчдад нэмэх үү?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"харилцагчийн зураг"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"нэмэх"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"нийт <xliff:g id="TOTAL_NUMBER">%s</xliff:g> харилцагчдын <xliff:g id="CURRENT_NUMBER">%s</xliff:g>"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Таны харилцагчдын нэрс"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"Тус үйлдлийг гүйцэтгэх апп олдсонгүй."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Өмнөх дэлгэц рүү буцахын тулд товших"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Утасны дугаар нэмэх"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Имэйл нэмэх"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Тус үйлдлийг гүйцэтгэх апп олдсонгүй."</string>
+    <string name="menu_share" msgid="943789700636542260">"Хуваалцах"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Харилцагчдад нэмэх"</string>
+    <string name="share_via" msgid="563121028023030093">"Харилцагчийг дараахаар хуваалцах"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"Акаунт дотор бүлгэм үүсгэх"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Дуут чат"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Видео чат"</string>
+    <string name="connections" msgid="8098440723172028350">"Холболтууд"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"Холболт нэмэх"</string>
+    <string name="recent" msgid="2659189233141493004">"Саяхны"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"Саяхны шинэчлэлтүүд"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> харилцагч"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"Энэ зургийг ашиглах"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"Тус апп-с засварлах боломжгүй."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"Энэ төхөөрөмж дээр засах боломжгүй."</string>
+    <string name="take_photo" msgid="7496128293167402354">"Зураг авах"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Шинэ зураг авах"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Зураг сонгох"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Шинэ зураг сонгох"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"Хэлний өөрчлөлтийг тусгахын тулд харилцагчдын жагсаалтыг шинэчилж байна."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"Харилцагчдын жагсаалтыг шинэчилж байна."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Харилцагчдын жагсаалтыг сайжруулж байна. \n\nСайжруулах явцад ойролцоогоор <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB хэмжээтэй дотоод сан шаардагдана.\n\nДараах сонголтуудаас нэгийг нь сонгоно уу:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Зарим аппликешнүүдийг устгана уу"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Сайжруулахыг дахин эхлүүлэх"</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_field" msgid="2384260056674995230">"Өөр талбар нэмэх"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Шинийг нэмэх"</string>
+    <string name="add_organization" msgid="7311893231158291197">"Байгууллага нэмэх"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Огноо"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Бүлгэмийн нэр"</string>
+    <string name="description_star" msgid="2605854427360036550">"дуртай"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"Харилцагчийг засварлах"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"нэгтгэгдээгүй"</item>
+    <item quantity="other" msgid="425683718017380845">"<xliff:g id="COUNT">%0$d</xliff:g> эх үүсвэрээс нийлүүлсэн"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"Энэ харилцагчийг сонгосон харилцагчтай холбох уу?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Сонгосон харилцагчийг засварлах руу шилжих үү? Таны оруулсан мэдээллүүд хуулагдах болно."</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"Миний Харилцагчид руу хуулах"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"Миний харилцагчдад нэмэх"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Директор <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"Тохируулсан"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Тохиргоо"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Тохиргоо"</string>
+    <string name="menu_help" msgid="5123887102216637725">"Тусламж"</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="7356532842767854606">"Жилийг оруулах"</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="7911101713860139754">"Акаунт руу нэвтрэн орох"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Харилцагчид импорт хийх"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"Шинэ бүлгэм үүсгэх"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"Шинэ бүлгэм үүсгэх"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 бүлгэм"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> бүлгэм"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" бүлгэмийг устгах уу? (Доторх харилцагчид нь устахгүй.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>-с <xliff:g id="COUNT_0">%1$d</xliff:g> хүн"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>-с <xliff:g id="COUNT_0">%1$d</xliff:g> хүн"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> хүн"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> хүн"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Өөр харилцагчтай холбохын өмнө харилцагчийн нэрийг оруулна уу."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Түр санах ойд хуулах"</string>
+    <string name="set_default" msgid="4417505153468300351">"Үндсэн болгох"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Үндсэнээс хасах"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Текст хуулагдав"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Өөрчлөлтүүдээ цуцлах уу?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"Миний профайлийн тохиргоо"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"Хүний нэрийг бичнэ үү"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"Бүлгэмийн Нэр"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Миний дотоод профайл"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Миний <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> профайл"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Бүх харилцагчийг харуулж байна"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Харилцагчид нь Google акаунттай сайн тохирдог.\n\n• Дурын веб хөтчөөс хандах боломжтой.\n• Өөрийн харилцагчдыг найдвартай нөөшлөнө."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Утсаа гээсэн ч харилцагчдаа найдвартай хадгалаарай: онлайн үйлчилгээгээр синк хийгээрэй."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Акаунт нэмэх"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Таны шинэ харилцагч нөөцлөгдөхгүй. Харилцагчдыг онлайнаар нөөцөлдөг акаунтыг нэмэх үү?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Таны шинэ харилцагч <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>-тай синк хийгдэх болно."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Та өөрийн шинэ харилцагчийг дараах акаунтуудын нэгтэй нь синк хийж болно. Алийг нь ашиглах вэ?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Шинэ харилцагч нэмэх"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Харилцагчийг засварлах"</string>
+    <string name="keep_local" msgid="1258761699192993322">"Төхөөрөмжид хадгалах"</string>
+    <string name="add_account" msgid="8201790677994503186">"Акаунт нэмэх"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Шинэ акаунт нэмэх"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Өгөгдлийн сангийн файлуудыг экспорт хийх"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"шинэ харилцагч нэмэх"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Дэлгэрэнгүй үзэх"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Цөөнийг харах"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Бүгдийг харах"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Саяхны"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Тухай"</string>
+    <string name="send_message" msgid="8938418965550543196">"Зурвас илгээх"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Хувийн хуулбар үүсгэж байна..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Өчигдөр"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Маргааш"</string>
+    <string name="today" msgid="8041090779381781781">"Өнөөдөр"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Өнөөдөр <xliff:g id="TIME_INTERVAL">%s</xliff:g>-д"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Маргааш <xliff:g id="TIME_INTERVAL">%s</xliff:g>-д"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Гарчиггүй үйл явдал)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Тохируулах"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Байгууллага"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Хоч"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Тэмдэглэл"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Вебсайт"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Үйл явдал"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Хамаарал"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"байршил руу очих чиглэл"</string>
+</resources>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
new file mode 100644
index 0000000..2811e45
--- /dev/null
+++ b/res/values-mr-rIN/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"संपर्क"</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="contactPickerActivityTitle" msgid="4301062192337417640">"संपर्क निवडा"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"नवीन संपर्क निवडा"</string>
+    <string name="starredList" msgid="4817256136413959463">"तारांकित"</string>
+    <string name="frequentList" msgid="7154768136473953056">"वारंवार"</string>
+    <string name="strequentList" msgid="5640192862059373511">"आवडते"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"संपर्क तपशील"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"संपर्क संपादित करा"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"संपर्क तयार करा"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"गट संपादित करा"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"गट तयार करा"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"विषयी"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"अद्यतने"</string>
+    <string name="searchHint" msgid="8482945356247760701">"संपर्क शोधा"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"संपर्क पहा"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"आवडीमध्ये जोडा"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"आवडी मधून काढा"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"आवडींमधून काढले"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"आवडींमध्ये जोडले"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"संपादित करा"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"हटवा"</string>
+    <string name="menu_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="8368636463748691868">"वेगळे"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"संपादित करा"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"हटवा"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"संपर्क जोडा"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"गट जोडा"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"संपर्क विभाजित करायचा?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"हा संपर्क एकाधिक संपर्कांमध्‍ये विभाजित केला जाईल."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"सामील व्हा"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"संपर्कांमध्‍ये सामील व्हा"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"आपण <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="7208148163607047389">"संपर्क सामील झाले"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"रिंगटोन सेट करा"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"व्हॉइसमेलवरील सर्व कॉल"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"आपण केवळ-वाचनीय खात्‍यांमधून संपर्क हटवू शकत नाही परंतु आपण ते आपल्‍या संपर्क सूचींमध्‍ये लपवू शकता."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"या संपर्कात एकाधिक खात्‍यांमधील माहिती आहे. केवळ-वाचनीय खात्यांमधील माहिती आपल्‍या संपर्क सूचींमध्‍ये लपविली जाईल, हटविली जाणार नाही."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"हा संपर्क हटविल्याने एकाधिक खात्‍यांमधून माहिती हटवली जाईल."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"हा संपर्क हटविला जाईल."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"बदल टाकून द्या"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"संपर्क अस्तित्वात नाही."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"मुख्‍यपृष्‍ठ स्‍क्रीनवर संपर्क विजेट जोडले."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"नवीन संपर्क तयार करा"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"नवीन संपर्क तयार करा"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"संस्था"</item>
+    <item msgid="7196592230748086755">"टीप"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"टॅब्‍लेटवर कोणतीही चित्रे उपलब्ध नाहीत."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"फोनवर कोणतीही चित्रे उपलब्ध नाहीत."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"संपर्क फोटो"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"लेबल नाव सानुकूलित करा"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"कॉल थेट व्हॉइसमेलवर पाठवा"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"फोटो काढा"</string>
+    <string name="noContacts" msgid="8579310973261953559">"कोणतेही संपर्क नाहीत."</string>
+    <string name="noGroups" msgid="8614664663561385253">"कोणतेही गट नाहीत."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"गट तयार करण्‍यासाठी आपल्‍याला खात्‍याची आवश्‍यकता अाहे."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"या गटात कोणतेही लोक नाहीत."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"काही जोडण्‍यासाठी, गट संपादित करा."</string>
+    <string name="savingContact" msgid="4075751076741924939">"संपर्क जतन करीत आहे..."</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"संपर्क जतन केला."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"संपर्क बदल जतन करू शकलो नाही."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"गट जतन केला."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"गट बदल जतन करू शकलो नाही."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"फोन नंबरसह 1 संपर्क"</item>
+    <item quantity="other" msgid="3299954047880968205">"फोन नंबरसह <xliff:g id="COUNT">%d</xliff:g> संपर्क"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"फोन नंबरसह कोणतेही संपर्क नाहीत"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 आढळला"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> आढळले"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"कोणतेही संपर्क नाहीत"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 आढळला"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> आढळले"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"सर्व संपर्क"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"मनपसंत"</string>
+    <string name="callBack" msgid="5498224409038809224">"पुन्हा कॉल करा"</string>
+    <string name="callAgain" msgid="3197312117049874778">"पुन्हा कॉल करा"</string>
+    <string name="returnCall" msgid="8171961914203617813">"उलट कॉल करा"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"संपर्कांमध्ये \"<xliff:g id="EMAIL">%s</xliff:g>\" जोडायचे?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"संपर्क फोटो"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"अधिक"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="TOTAL_NUMBER">%s</xliff:g> पैकी <xliff:g id="CURRENT_NUMBER">%s</xliff:g> संपर्क"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"आपल्या संपर्कांची नावे"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"ही क्रिया हाताळण्यासाठी कोणताही अ‍ॅप आढळला नाही."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"पूर्वीच्या स्क्रीनवर परत येण्यासाठी क्लिक करा"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"फोन नंबर जोडा"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ईमेल जोडा"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ही क्रिया हाताळण्यासाठी कोणताही अ‍ॅप आढळला नाही."</string>
+    <string name="menu_share" msgid="943789700636542260">"सामायिक करा"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"संपर्कांमध्ये जोडा"</string>
+    <string name="share_via" msgid="563121028023030093">"द्वारे संपर्क सामायिक करा"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"खात्याअंतर्गत गट तयार करा"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"व्हॉइस चॅट"</string>
+    <string name="video_chat" msgid="1872255818640336072">"व्हिडिओ चॅट"</string>
+    <string name="connections" msgid="8098440723172028350">"कनेक्शन"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"कनेक्शन जोडा"</string>
+    <string name="recent" msgid="2659189233141493004">"अलीकडील"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"अलीकडील अद्यतने"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> संपर्क"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"हा फोटो वापरा"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"या अ‍ॅप वरून संपादन करण्‍यायोग्‍य नाही."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"या डिव्हाइसवर संपादन करण्‍यायोग्‍य नाही."</string>
+    <string name="take_photo" msgid="7496128293167402354">"फोटो घ्‍या"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"नवीन फोटो घ्या"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"फोटो निवडा"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"नवीन फोटो निवडा"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"भाषेचा बदल प्रतिबिंबित करण्यासाठी संपर्क सूची सुधारित केली जात आहे."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"संपर्क सूची अद्यतनित केली जात आहे."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"संपर्क श्रेणीसुधारित होण्‍याच्‍या प्रक्रियेत आहेत. \n\nश्रेणीसुधारित प्रक्रियेस अंदाजे <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB अंतर्गत संचयन आवश्‍यक असते. \n\nखालील पर्यायांपैकी एक निवडा:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"काही अनुप्रयोग विस्थापित करा"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"श्रेणीसुधारित करण्‍याचा पुन्‍हा प्रयत्‍न करा"</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_field" msgid="2384260056674995230">"दुसरे फील्ड जोडा"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"नवीन जोडा"</string>
+    <string name="add_organization" msgid="7311893231158291197">"संस्‍था जोडा"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"तारीख"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"गट नाव"</string>
+    <string name="description_star" msgid="2605854427360036550">"आवडते"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"संपर्क संपादित करा"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"विलीन केले नाही"</item>
+    <item quantity="other" msgid="425683718017380845">"<xliff:g id="COUNT">%0$d</xliff:g> स्‍त्रोतांमधून विलीन केले"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"निवडलेल्‍या संपर्कासह वर्तमान संपर्कामध्‍ये सामील व्‍हायचे?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"निवडलेले संपर्क संपादित करण्‍यावर स्‍विच करायचे? आपण आत्तापर्यंत प्रविष्‍ट केलेली माहिती कॉपी केली जाईल."</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"माझे संपर्क वर कॉपी करा"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"माझे संपर्क मध्ये जोडा"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"निर्देशिका <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"सानुकूल"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"सेटिंग्ज"</string>
+    <string name="menu_settings" msgid="377929915873428211">"सेटिंग्ज"</string>
+    <string name="menu_help" msgid="5123887102216637725">"मदत"</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="7356532842767854606">"वर्ष प्रदान करा"</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="7911101713860139754">"खात्यामध्ये साइन इन करा"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"संपर्क आयात करा"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"नवीन गट तयार करा"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"नवीन गट तयार करा"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 गट"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> गट"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" गट हटवायचा? (संपर्क आपणहून हटविले जाणार नाहीत.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> प्रकारामधील <xliff:g id="COUNT_0">%1$d</xliff:g> व्‍यक्ती"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> मधील <xliff:g id="COUNT_0">%1$d</xliff:g> लोक"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> व्‍यक्‍ती"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> लोक"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"दुसर्‍यासह सामील होण्‍यापूर्वी संपर्क नाव टाईप करा."</string>
+    <string name="copy_text" msgid="3257145021583508761">"क्लिपबोर्डवर कॉपी करा"</string>
+    <string name="set_default" msgid="4417505153468300351">"डीफॉल्ट म्हणून सेट करा"</string>
+    <string name="clear_default" msgid="7193185801596678067">"डीफॉल्ट साफ करा"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"मजकूर कॉपी केला"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"आपले बदल टाकून द्यायचे?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"माझे प्रोफाईल सेट करा"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"व्‍यक्तीचे नाव टाईप करा"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"गटाचे नाव"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"माझे स्थानिक प्रोफाइल"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"माझे <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> प्रोफाईल"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"सर्व संपर्क प्रदर्शित करीत आहे"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"संपर्क Google खात्‍यासह अधिक चांगले कार्य करतात.\n\n• कोणत्‍याही वेब ब्राउझर वरून प्रवेश करा.\n• आपल्‍या संपर्कांचा सुरक्षितपणे बॅक अप घ्‍या."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"आपण आपला फोन गमावला तरीही आपले संपर्क सुरक्षित ठेवा: ऑनलाइन सेवेसह संकालित करा."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"खाते जोडा"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"आपल्‍या नवीन संपर्काचा बॅकअप घेतला जाणार नाही. संपर्कांचे ऑनलाइन बॅकअप घेणारे खाते जोडायचे?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"आपला नवीन संपर्क <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> सह संकालित केला जाईल."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"आपण आपला नवीन संपर्क खालीलपैकी एका खात्‍यासह संकालित करू शकता. आपण कोणते वापरू इच्‍छिता?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"नवीन संपर्क जोडा"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"संपर्क संपादित करा"</string>
+    <string name="keep_local" msgid="1258761699192993322">"स्थानिक ठेवा"</string>
+    <string name="add_account" msgid="8201790677994503186">"खाते जोडा"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"नवीन खाते जोडा"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"डेटाबेस फाईल निर्यात करा"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"नवीन संपर्क जोडा"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"अधिक पहा"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"कमी पहा"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"सर्व पहा"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"अलीकडील"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"विषयी"</string>
+    <string name="send_message" msgid="8938418965550543196">"संदेश पाठवा"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"वैयक्तिक प्रत तयार करीत आहे..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"काल"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"उद्या"</string>
+    <string name="today" msgid="8041090779381781781">"आज"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"आज <xliff:g id="TIME_INTERVAL">%s</xliff:g> वाजता"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"उद्या <xliff:g id="TIME_INTERVAL">%s</xliff:g> वाजता"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(अशीर्षकांकित इव्‍हेंट)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"सेट करा"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"संस्था"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"टोपणनाव"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"टीप"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"वेबसाइट"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"इव्‍हेंट"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"संबंध"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"स्थानाचे दिशानिर्देश"</string>
+</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms-rMY/strings.xml
similarity index 82%
rename from res/values-ms/strings.xml
rename to res/values-ms-rMY/strings.xml
index 953b0c7..d46abfa 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Orang"</string>
+    <string name="people" msgid="1190841469952343354">"Kenalan"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kenalan"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kenalan"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Dail terus"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Pilih nombor untuk memanggil"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Pilih nombor untuk menghantar mesej"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Pilih kenalan"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Pilih 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="viewContactDesription" msgid="214186610887547860">"Papar kenalan"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Edit kenalan"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Wujudkan kenalan"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Edit kumpulan"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Letakkan pada skrin Utama"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Kenalan ini mengandungi maklumat daripada berbilang akaun. Maklumat daripada akaun baca sahaja akan disembunyikan dalam senarai kenalan anda, dan bukannya dipadamkan."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Pemadaman kenalan ini akan turut memadamkan maklumat daripada berbilang akaun."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Kenalan ini akan dipadamkan."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Buang"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Buang perubahan"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kenalan tidak wujud."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Widget kenalan telah ditambahkan ke skrin Utama."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Wujudkan kenalan baru"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> kenalan dengan nombor telefon"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Tiada kenalan dengan nombor telefon"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 kenalan"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> kenalan"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 ditemui"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> ditemui"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 ditemui"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> ditemui"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Semua kenalan"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Kumpulan"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Semua kenalan"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Kegemaran"</string>
     <string name="callBack" msgid="5498224409038809224">"Panggil balik"</string>
     <string name="callAgain" msgid="3197312117049874778">"Panggil semula"</string>
     <string name="returnCall" msgid="8171961914203617813">"Balas panggilan"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> daripada <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kenalan"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Nama kenalan anda"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Tiada aplikasi ditemui untuk mengendalikan tindakan ini."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klik untuk kembali ke skrin sebelumnya"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Tambah nombor telefon"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Tambah e-mel"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Tiada apl ditemui untuk mengendalikan tindakan ini."</string>
     <string name="menu_share" msgid="943789700636542260">"Kongsi"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Tambahkan pada kenalan"</string>
     <string name="share_via" msgid="563121028023030093">"Kongsi gambar melalui"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Buat kumpulan di bawah akaun"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Sembang suara"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Gunakan foto ini"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Tidak boleh diedit dari aplikasi ini."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Tiada maklumat tambahan untuk kenalan ini."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Tidak boleh diedit pada peranti ini."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Isih senarai mengikut"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Nama berian"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Nama keluarga"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Lihat nama kenalan"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Nama berian dahulu"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Nama keluarga dahulu"</string>
     <string name="take_photo" msgid="7496128293167402354">"Ambil foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Ambil foto baru"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Pilih foto dari Galeri"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Pilih foto baru dari Galeri"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Pilih foto"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Pilih foto baharu"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Senarai kenalan sedang dikemas kini untuk menggambarkan penukaran bahasa."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Senarai kenalan sedang dikemas kini."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Kenalan sedang dalam proses peningkatan. \n\nProses peningkatan memerlukan lebih kurang <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB storan dalaman.\n\nPilih satu daripada pilihan yang berikut:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Tambah organisasi"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Tarikh"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nama kumpulan"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"melalui <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> melalui <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"kegemaran"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Edit kenalan"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Membuat salinan peribadi..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Peribadi"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Tetapan"</string>
     <string name="menu_settings" msgid="377929915873428211">"Tetapan"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Profil setempat saya"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> saya"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Memaparkan semua kenalan"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Orang berfungsi lebih baik dengan Akaun Google. \n \n• Akses dari mana-mana penyemak imbas \n• Buat sandaran untuk kenalan anda secara selamat."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Kenalan berfungsi lebih baik dengan Akaun Google.\n\n• Akses dari mana-mana penyemak imbas web.\n• Buat sandaran untuk kenalan anda secara selamat."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Pastikan kenalan anda selamat walaupun jika anda kehilangan telefon anda: segerakkan dengan perkhidmatan dalam talian."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Tambah akaun"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Kenalan baharu anda tidak akan dibuat sandaran. Tambahkan akaun yang membuat sandaran kenalan dalam talian?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Kenalan baharu anda akan disegerakkan dengan <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Anda boleh menyegerakkan kenalan baharu anda dengan salah satu akaun berikut. Mana satu yang anda mahu gunakan?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Tambah kenalan baru"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Edit kenalan"</string>
     <string name="keep_local" msgid="1258761699192993322">"Simpan setempat"</string>
     <string name="add_account" msgid="8201790677994503186">"Tambah akaun"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Tambah akaun baharu"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Eksport fail pangkalan data"</string>
-    <string name="contact_detail_picture_description" msgid="6083230522651287030">"Gambar. Pilih untuk menukar"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"tambah kenalan baharu"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Lihat lagi"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Lihat kurang"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Lihat semua"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Terbaharu"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Mengenai"</string>
+    <string name="send_message" msgid="8938418965550543196">"Hantar mesej"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Membuat salinan peribadi..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Semalam"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Esok"</string>
+    <string name="today" msgid="8041090779381781781">"Hari ini"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Hari ini pada <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Esok pada <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Acara tidak bertajuk)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Tetapkan"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisasi"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Nama panggilan"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Nota"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Tapak web"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Acara"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Hubungan"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"arah ke lokasi"</string>
 </resources>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
new file mode 100644
index 0000000..8991c89
--- /dev/null
+++ b/res/values-my-rMM/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"အဆက်အသွယ်များ"</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="contactPickerActivityTitle" msgid="4301062192337417640">"လိပ်စာတစ်ခုရွေးပါ"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"အဆက်အသွယ် အသစ်ကို ရွေးရန်"</string>
+    <string name="starredList" msgid="4817256136413959463">"စတားပေးထားသော အရာ"</string>
+    <string name="frequentList" msgid="7154768136473953056">"မကြာခဏ"</string>
+    <string name="strequentList" msgid="5640192862059373511">"အနှစ်သက်ဆုံးများ"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"အဆက်အသွယ် အသေးစိတ်"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"အဆက်အသွယ်အား ပြင်ရန်"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"အဆက်အသွယ်တစ်ခု ပြုလုပ်ရန်"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"အုပ်စုအားပြင်ရန်"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"အုပ်စုသစ်ပြုလုပ်ရန်"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"အကြောင်း"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"အဆင့်မြှင့်မှု"</string>
+    <string name="searchHint" msgid="8482945356247760701">"အဆက်အသွယ်များရှာပါ"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"အဆက်အသွယ်အား ကြည့်ရန်"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"အနှစ်သက်ဆုံးများထဲ ထည့်ပါ"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"အနှစ်သက်ဆုံးများမှ ထုတ်ပါ"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"အကြိုက်ဆုံးများထဲမှ ထုတ်လိုက်ပါပြီ"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"အကြိုက်ဆုံးများ ထဲကို ထည့်ပြီး"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"ပြင်ဆင်ရန်"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"ဖျက်ရန်"</string>
+    <string name="menu_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="8368636463748691868">"ခွဲခြားခြင်း"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"ပြင်ဆင်ရန်"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"ဖျက်ရန်"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"လိပ်စာထပ်ထည့်ပါ"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"အုပ်စု ထပ်ထည့်ပါ"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"အဆက်အသွယ်ခွဲမည်လား?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"ဒီအဆက်အသွယ်အား အဆက်အသွယ်အများအပြားအဖြစ် ခွဲပစ်လိုက်မည်ဖြစ်ပါသည်"</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"ပူးပေါင်းသည်"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"အဆက်အသွယ်များကို ပူးပေါင်းလိုက်သည်"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"<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="7208148163607047389">"အဆက်အသွယ်များ ပူးပေါင်းပြီး"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ဖုန်းမြည်သံသတ်မှတ်ရန်"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ဖုန်းအားလုံးအသံစာပို့စနစ်သို့"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"ဖတ်ရန်အတွက်သာ အကောင့်များမှ အဆက်အသွယ်များကို ဖျက်ပစ်လို့ မရပါ၊ ဒါပေမယ့် အဆက်အသွယ်များစာရင်းမှ ဖျောက်ထားလို့ ရပါသည်"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"ဒီအဆက်အသွယ်မှာ အကောင့်အများအပြား၏ အချက်အလက်များ ပါဝင်ပါသည်။ ဖတ်ရန်အတွက်သာ အကောင့်များမှ အချက်အလက်များကို ဖျောက်ထားမှာဖြစ်ပြီး ဖျက်ပစ်ထားတာ မဟုတ်ပါ"</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"ဤအဆက်အသွယ်အားဖျက်ခြင်းကြောင့် တခြားအကောင့်များမှ အချက်အလက်များလည်း ပျက်ပါလိမ့်မည်"</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"ဒီလိပ်စာကို ဖျက်ပစ်ပါလိမ့်မည်"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"အပြောင်းအလဲများ စွန့်ပစ်ရန်"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"လိပ်စာ မရှိပါ"</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"အဆက်အသွယ်ပြ ဝဒ်ဂျက်ကို ပင်မစာမျက်နှာသို့ ထည့်ပြီးပါပြီ"</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"အဆက်အသွယ်သစ်တစ်ခု ပြုလုပ်ရန်"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"အဆက်အသွယ်သစ်တစ်ခု ပြုလုပ်ရန်"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"အဖွဲ့အစည်း"</item>
+    <item msgid="7196592230748086755">"မှတ်စု"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"တက်ဘလက်ထဲတွင် ပုံများ မရှိပါ"</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ဖုန်းထဲတွင် ပုံများ မရှိပါ"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"လိပ်စာရဲ့ဓာတ်ပုံ"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"စိတ်ကြိုက် လေဘယ်လ်နာမည်"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"ဖုန်းများအား အသံစာပို့စနစ်သို့ ပို့လိုက်ပါ"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ပုံအားဖယ်ရှားပါ"</string>
+    <string name="noContacts" msgid="8579310973261953559">"အဆက်အသွယ်များမရှိပါ"</string>
+    <string name="noGroups" msgid="8614664663561385253">"အုပ်စုများမရှိပါ"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"အုပ်စုများ ပြုလုပ်ရန် အကောင့်တစ်ခု လိုအပ်ပါသည်"</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"ဒီအုပ်စုထဲမှာ လူတစ်ယောက်မှမရှိပါ"</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"တချို့ကိုထည့်ရန်, အုပ်စုကိုပြင်ပါ"</string>
+    <string name="savingContact" msgid="4075751076741924939">"အဆက်အသွယ်အား သိမ်းဆည်းနေစဉ်…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"လိပ်စာအား သိမ်းဆည်းထားလိုက်ပြီ"</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"လိပ်စာပြောင်းလဲမှုအား သိမ်းဆည်းလို့မရပါ"</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"အုပ်စုသိမ်းဆည်ပြီးပါပြီ"</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"အုပ်စုအတွက် ထပ်ပြင်မှုများဟာ သိမ်းဆည်းလို့မရပါ"</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"ဖုန်းနံပါတ်ပါသော လိပ်စာ၁ခု"</item>
+    <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> ဖုန်းနံပါတ်ပါသော လိပ်စာများ"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ဖုန်းနံပါတ်ပါသော လိပ်စာများမရှိပါ"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"၁ခုတွေ့ရှိ"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> ခု တွေ့ရှိ"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"အဆက်အသွယ်များမရှိ"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"၁ခုတွေ့ရှိ"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> ခု တွေ့ရှိ"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"ဆက်သွယ်အားလုံး"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"အကြိုက်ဆုံး"</string>
+    <string name="callBack" msgid="5498224409038809224">"ပြန်ခေါ်ပါ"</string>
+    <string name="callAgain" msgid="3197312117049874778">"ပြန်လည်ခေါ်ဆိုရန်"</string>
+    <string name="returnCall" msgid="8171961914203617813">"ဖုန်းပြန်ခေါ်ရန်"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" ကို လိပ်စာထဲ ထည့်မလား?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"လိပ်စာမှ ဓာတ်ပုံ"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"အပေါင်း"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> ၏ <xliff:g id="TOTAL_NUMBER">%s</xliff:g> လိပ်စာ"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"အဆက်အသွယ်များ၏နာမည်များ"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"ဤလုပ်ဆောင်ချက်ကို ပြုလုပ်ပေးမည့် အပလီကေးရှင်း မရှိပါ။"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ယခင် မျက်နှာပြင်သို့ ပြန်ရန် ကလစ်ပါ"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ဖုန်း နံပါတ် ထည့်ရန်"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"အီးမေးလ် ထည့်ရန်"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ဤလုပ်ဆောင်ချက်ကို ပြုလုပ်မည့် အပလီကေးရှင်း မရှိပါ။"</string>
+    <string name="menu_share" msgid="943789700636542260">"မျှဝေခြင်း"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"အဆက်အသွယ်များ ထဲသို့ ထည့်ရန်"</string>
+    <string name="share_via" msgid="563121028023030093">"မှ အဆယ်အသွယ်အား မျှဝေခြင်း"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"အကောင့်အောက်မှာ အုပ်စုပြုလုပ်ပါ"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"အသံဖြင့် ချက်တင်း"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ဗီဒီယိုဖြင့်စကားပြောခြင်း"</string>
+    <string name="connections" msgid="8098440723172028350">"အဆက်အသွယ်များ"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"လူမှုဆက်သွယ်မှုထည့်ရန်"</string>
+    <string name="recent" msgid="2659189233141493004">"လတ်တလော"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"လတ်တလောအဆင့်မြင့်ခြင်းများ"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> လိပ်စာ"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"ဒီပုံကို သုံးရန်"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"ဤအပ်ပလီကေးရှင်းမှ ပြင်ခွင့်မရှိပါ"</string>
+    <string name="group_read_only" msgid="1061762906115697637">"ဒီစက်ပေါ်မှာ ပြင်လို့ မရနိုင်ပါ"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ဓာတ်ပုံရိုက်ရန်"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"ဓာတ်ပုံအသစ်ရိုက်ပါ"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ပုံရွေးရန်"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"ပုံသစ်ရွေးရန်"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"ဘာသာစကားပြောင်းမှုနဲ့ ကိုက်ညီအောင် အဆက်အသွယ်စာရင်းအား ပြင်ဆင်နေပါသည်"</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"အဆက်အသွယ်စာရင်းအား ပြုပြင်နေစဉ်"</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"အဆက်အသွယ်များမှာ အဆင့်မြင့်တင်ခြင်း လုပ်ဆောင်ခံရဖို့ ပြုလုပ်နေစဉ် ဖြစ်ပါသည်။\n\nအဆင့်မြင့်ခြင်း အလုပ်ဟာ ယေဘုယျ ဖုန်းထဲမှ သိုလှောင်မှုနေရာ <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB လိုအပ်ပါသည်။\n\nအောက်ပါများထဲမှ တစ်ခုကိုရွေးပါ:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"တချို့အပ်ပလီကေးရှင်းများအား ထုတ်ပစ်ရန်"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"အဆင့်မြှင့်ခြင်းအား ပြန်ကြိုးစားရန်"</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_field" msgid="2384260056674995230">"နောက်နေရာတစ်ခုထည့်ပါ"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"အသစ်ထည့်ရန်"</string>
+    <string name="add_organization" msgid="7311893231158291197">"အဖွဲ့အစည်းထည့်ရန်"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"ရက်စွဲ"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"အုပ်စုနာမည်"</string>
+    <string name="description_star" msgid="2605854427360036550">"အနှစ်သက်ဆုံး"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"အဆက်အသွယ်အားပြင်ရန်"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"မပူးပေါင်းရသေး"</item>
+    <item quantity="other" msgid="425683718017380845">"<xliff:g id="COUNT">%0$d</xliff:g> မူရင်းများမှ ပေါင်းစပ်ထား"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"လက်ရှိလိပ်စာအား ရွေးထားသောလိပ်စာနှင့် ပေါင်းမည်လား"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ရွေးထားသော လိပ်စာအား ပြင်ဆင်ခြင်းသို့ပြောင်းမလား? သင် အခုထိ ရိုက်ထားသော စာများအားလုံး ကူးယူပြီးဖြစ်ပါလိမ့်မည်"</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"ကျွန်ုပ်၏လိပ်စာများထဲ ထည့်ပါ"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"ကျွန်ုပ်၏လိပ်စာများထဲ ထည့်ပါ"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"အကန့် <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"မိမိစိတ်ကြိုက်"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"အပြင်အဆင်များ"</string>
+    <string name="menu_settings" msgid="377929915873428211">"အပြင်အဆင်များ"</string>
+    <string name="menu_help" msgid="5123887102216637725">"အကူအညီ"</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="7356532842767854606">"နှစ် တစ်ခုဖြည့်ပါ"</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="7911101713860139754">"အကောင့်တစ်ခုထဲသို့ ဝင်ပါ"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"လိပ်စားများ ထည့်ပါ"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"အုပ်စုသစ်ပြုလုပ်ရန်"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"အုပ်စုအသစ်ပြုလုပ်ရန်"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"၁ အုပ်စု"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> အုပ်စု"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" အုပ်စုကို ဖျက်ပစ်ပါမလား? (လိပ်စာများ ကိုယ်တိုင်တော့ ပျက်သွားမည်မဟုတ်ပါ)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>မှ <xliff:g id="COUNT_0">%1$d</xliff:g> ယောက်"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>မှ <xliff:g id="COUNT_0">%1$d</xliff:g> ယောက်"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> ယောက်"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> ယောက်"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"တခြားတစ်ခုနှင့် မပေါင်းခင် အဆက်အသွယ်နာမည်ကို အရင်ရိုက်ပါ"</string>
+    <string name="copy_text" msgid="3257145021583508761">"ခဏကူးယူထားပါ"</string>
+    <string name="set_default" msgid="4417505153468300351">"ပုံသေအဖြစ် သတ်မှတ်ခြင်း"</string>
+    <string name="clear_default" msgid="7193185801596678067">"မူရင်းများကို ရှင်းလင်းခြင်း"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"စာသားကူးယူပြီး"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"ပြင်မှုများအား စွန့်ပစ်မလား"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"မိမိကိုယ်ရေးအကောင့်အား ပြုလုပ်ရန်"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"လူနာမည်ရိုက်ထည့်ပါ"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"အုပ်စု၏နာမည်"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"မိမိ၏ဖုန်းမှပရိုဖိုင်လ်"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"ကျွန်ုပ်၏ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ကိုယ်ရေးအကောင့်"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"အဆက်အသွယ်အားလုံးအားပြနေစဉ်"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"အဆက်အသွယ်များ၏ အလုပ်မှာ Google အကောင့်နှင့် ပိုအဆင်ပြေသည်။\n\n• မည်သည့် ဝက်ဘ် ဘရောင်ဇာဖြင့် မဆို ချဉ်းကပ်ပါ။\n• သင်၏ အဆက်အသွယ်များကို စိတ်ချရစွာ ဘက်အာပ် လုပ်ထားပါ။"</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"အွန်လိုင်း ဝန်ဆောင်မှုဖြင့် ထပ်တူကျအောင် ပြုလုပ်ထားခြင်းအားဖြင့် ဖုန်းပျောက်သွားသည့်တိုင်အောင် အဆက်အသွယ်များအား လုံခြုံစွာ သိမ်းထားနိုင်ပါသည်"</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"အကောင့် ထပ်ဖြည့်ပါ"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"သင့် အဆက်အသွယ်အသစ်ကို အရံသိမ်းဆည်းထားခြင်း မရှိပါ။ အဆယ်အသွယ်များကို အွန်လိုင်းပေါ်မှာ အရံသိမ်းဆည်းပေးရန် အကောင့်သစ် ထပ်ထည့်ချင်ပါသလား"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"သင့်ရဲ့ အဆက်အသွယ်အသစ်ကို <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> နှင့် ထပ်တူဖြစ်အောင် ပြုလုပ်ပါမည်"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"သင်ရဲ့အဆက်အသွယ် အသစ်ကို အောက်ပါ အကောင့်တွေထဲက တစ်ခုခုဖြင့် ထပ်တူဖြစ်အောင် ပြုလုပ်နိုင်ပါသည်။ ဘယ်တစ်ခုကို သုံးချင်ပါသလဲ?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"လိပ်စာအသစ် ပေါင်းမည်"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"အဆက်အသွယ်အားပြင်ရန်"</string>
+    <string name="keep_local" msgid="1258761699192993322">"ဖုန်းထဲတွင်သာသိမ်းပါ"</string>
+    <string name="add_account" msgid="8201790677994503186">"အကောင့်ထပ်ထည့်ရန်"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"အကောင့်အသစ်ထည့်ပါ"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"ဒေ့ဘာဘေ့စ်ဖိုင်များကို အပြင်သို့ထုတ်ပါ"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"အဆက်အသွယ် အသစ်ကို ထည့်ရန်"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"ပိုပြီး ကြည့်ရန်"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"လျှော့ပြီး ကြည့်ရန်"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"အားလုံးကို ကြည့်ရန်"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"မကြာမီတုန်းက"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"အကြောင်း"</string>
+    <string name="send_message" msgid="8938418965550543196">"စာတို ပို့ရန်"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"ကိုယ်ပိုင် ကော်ပီကို ဖန်တီးနေ..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"မနေ့က"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"နက်ဖြန်"</string>
+    <string name="today" msgid="8041090779381781781">"ယနေ့"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"ယနေ့ <xliff:g id="TIME_INTERVAL">%s</xliff:g> တွင်"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"နက်ဖြန်<xliff:g id="TIME_INTERVAL">%s</xliff:g>တွင်"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(ခေါင်းစဉ်မဲ့ ဖြစ်ရပ်)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"လက်ခံရန်"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"အဖွဲ့အစည်း"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"နာမည်ပြောင်"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"မှတ်ချက်"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"ဝက်ဘ်ဆိုက်"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ဖြစ်ရပ်"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"တော်စပ်ပုံ"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"တည်နေရာများသို့ လမ်းညွှန်ချက်"</string>
+</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 98f6e83..e599e0d 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Personer"</string>
+    <string name="people" msgid="1190841469952343354">"Kontakter"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakter"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Ring"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Velg et nummer å ringe"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Velg et nummer å sende melding til"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Velg en kontakt"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Velg en 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="viewContactDesription" msgid="214186610887547860">"Se på kontakt"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Rediger kontakt"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Opprett kontakt"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Rediger gruppe"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Plassér på startsiden"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Denne kontakten inneholder informasjon fra flere kontoer. Informasjon fra skrivebeskyttede kontoer vil bli skjult i kontaktlistene, ikke slettet."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Sletter du denne kontakten, vil du slette informasjon fra flere kontoer."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Denne kontakten vil bli slettet."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Forkast"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Forkast endringene"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakten finnes ikke."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Kontaktmodulen ble lagt til på startsiden."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Opprett ny kontakt"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> kontakter med telefonnumre"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ingen kontakter med telefonnummer"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 kontakt"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> kontakter"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 funnet"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> funnet"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 funnet"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> funnet"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Alle kontakter"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grupper"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Alle kontaktene"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritter"</string>
     <string name="callBack" msgid="5498224409038809224">"Ring tilbake"</string>
     <string name="callAgain" msgid="3197312117049874778">"Ring på nytt"</string>
     <string name="returnCall" msgid="8171961914203617813">"Ring tilbake"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> av <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontakter"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Navn på kontakter"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Det ble ikke funnet noen app som kan håndtere denne handlingen."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klikk for å gå tilbake til den forrige skjermen"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Legg til telefonnummer"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Legg til e-post"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Kunne ikke finne noen app som kan håndtere denne handlingen."</string>
     <string name="menu_share" msgid="943789700636542260">"Del"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Legg til i kontakter"</string>
     <string name="share_via" msgid="563121028023030093">"Del kontakt via"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Opprett gruppe under konto"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Taleprat"</string>
@@ -133,22 +136,15 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Bruk dette bildet"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Kan ikke redigeres fra denne appen."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Ingen utfyllende informasjon for denne kontakten."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Kan ikke redigeres på denne enheten."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Sorter listen etter"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Fornavn"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Etternavn"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Se kontaktnavn"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Fornavn først"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Etternavn først"</string>
     <string name="take_photo" msgid="7496128293167402354">"Ta bilde"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Ta nytt bilde"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Velg bilde fra galleriet"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Velg nytt bilde fra galleriet"</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="locale_change_in_progress" msgid="7583992153091537467">"Kontaktlisten er oppdatert med nytt språk."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Kontaktlisten er under oppdatering."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Oppgradering av kontakter pågår.\n\nOppgraderingsprosessen krever omtrent <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB intern lagringsplass.\n\nVelg ett av følgende alternativer:"</string>
-    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Avinstaller noen applikasjoner"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Avinstaller noen apper"</string>
     <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Prøv å oppgradere på nytt"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Søker …"</string>
     <string name="menu_display_selected" msgid="6470001164297969034">"Vis valgte"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Legg til organisasjon"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Dato"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Gruppenavn"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"favoritt"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Rediger kontakt"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Oppretter personlig kopi …"</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Egendefinert"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Innstillinger"</string>
     <string name="menu_settings" msgid="377929915873428211">"Innstillinger"</string>
@@ -189,7 +182,7 @@
     <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="7911101713860139754">"Logg deg på en konto"</string>
+    <string name="contacts_unavailable_add_account" msgid="7911101713860139754">"Logg på en konto"</string>
     <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importer kontakter"</string>
     <string name="create_group_dialog_title" msgid="6874527142828424475">"Opprett ny gruppe"</string>
     <string name="create_group_item_label" msgid="4411981763169654825">"Opprett en ny gruppe"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Min lokale profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Min profil for <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Viser alle kontakter"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"People fungerer bedre med en Google-konto.\n\n• Tilgang fra hvilken som helst nettleser.\n• Ta trygge sikkerhetskopier av kontaktene dine."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Kontakter fungerer bedre med en Google-konto.\n\n• Tilgang fra hvilken som helst nettleser.\n• Sikkerhetskopiér kontaktene dine på en trygg måte."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Hold kontaktene dine trygge selv om du mister telefonen: synkroniser med en nettbasert tjeneste."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Legg til en konto"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Den nye kontakten din blir ikke sikkerhetskopiert. Vil du legge til en konto som sikkerhetskopierer kontakter på nettet?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Den nye kontakten din blir synkronisert med <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Du kan synkronisere den nye kontakten din med én av de følgende kontoene. Hvilken vil du bruke?"</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 kontakten"</string>
     <string name="keep_local" msgid="1258761699192993322">"Behold lokalt"</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="contact_detail_picture_description" msgid="6083230522651287030">"Bilde. Velg for å endre"</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="6137651078366797938">"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">"Still inn"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"Direktemelding"</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="content_description_directions" msgid="2686791825798189335">"veibeskrivelse til posisjon"</string>
 </resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
new file mode 100644
index 0000000..301746a
--- /dev/null
+++ b/res/values-ne-rNP/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"सम्पर्कहरू"</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="contactPickerActivityTitle" msgid="4301062192337417640">"एउटा सम्पर्क छान्नुहोस्"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"नयाँ सम्पर्क छान्नुहोस्"</string>
+    <string name="starredList" msgid="4817256136413959463">"ताराङ्कित"</string>
+    <string name="frequentList" msgid="7154768136473953056">"कहिले कहीँ"</string>
+    <string name="strequentList" msgid="5640192862059373511">"मनपर्नेहरू"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"विवरणहरूलाई सम्पर्क गर्नुहोस्"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"सम्पर्क सम्पादन गर्नुहोस्"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"ठेगाना बनाउनुहोस्"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"समूह सम्पादन गर्नुहोस्"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"समूह सिर्जना गर्नुहोस्"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"बारेमा"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"अद्यावधिकहरू"</string>
+    <string name="searchHint" msgid="8482945356247760701">"सम्पर्कहरू खोज्नुहोस्"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"सम्पर्क हेर्नुहोस्"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"मनपर्नेहरूमा थप्नुहोस्"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"मनपर्नेहरूबाट हटाउनुहोस्"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"मनपर्नेहरूबाट हटाइयो"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"मनपर्नेमा थपियो"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"सम्पादन गर्नुहोस्"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"मेट्नुहोस्"</string>
+    <string name="menu_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="8368636463748691868">"छुट्याउनुहोस्"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"सम्पादन गर्नुहोस्"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"मेट्नुहोस्"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"सम्पर्क थप्नुहोस्"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"समूह थप्नुहोस्"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"सम्पर्क अलग गर्ने हो?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"यो सम्पर्क अनेक सम्पर्कहरूमा अलग गरिने छ।"</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"सामेल हुनुहोस्"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"सम्पर्कहरू जोड्नुहोस्"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"तपाईँले सहभागी हुन चाहनु भएको सम्पर्क <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="7208148163607047389">"सहभागी भएका सम्पर्कहरू"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"रिङ्टोन मिलाउनुहोस्"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"भ्वाइसमेलमा सम्पूर्ण कल"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"तपाईँले पढ्ने-मात्र खाताबाट सम्पर्कहरू हटाउन सक्नु हुन्न, तर तपाईँको सम्पर्क सूचीहरूबाट लुकाउन सक्नु हुन्छ।"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"यो सम्पर्कमा जानकारीहरू धेरै खाताहरूबाट उपलब्ध छन्। पढ्ने-मात्र खातामा भएका जानकारीहरू तपाईँको सम्पर्क सूचीमा लुकेका हुने छन्, हटाइने छैन।"</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"यो सम्पर्कलाइ हटाउनाले धेरै खाताहरूबाट जानकारीहरू नष्ट गर्ने छ।"</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"यो सम्पर्क हटाइने छ।"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"परिवर्तनहरू रद्द गर्नुहोस्"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"सम्पर्क उपलब्ध छैन।"</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"सम्पर्क विजेट होम स्क्रिनमा थपियो।"</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"नयाँ सम्पर्क सिर्जना गर्नुहोस्"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"नयाँ सम्पर्क सिर्जना गर्नुहोस्"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"संगठन"</item>
+    <item msgid="7196592230748086755">"नोट"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ट्याब्लेटमा कुनै पनि तस्वीरहरू उपलव्ध छैनन्।"</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"कुनै पनि चित्रहरू फोनमा उपलब्ध छैनन्।"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"सम्पर्क फोटो"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"कस्टम लेबल नाम"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"कलहरू सिधै भ्वाइसमेलमा पठाउनुहोस्"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"फोटो मेट्नुहोस्"</string>
+    <string name="noContacts" msgid="8579310973261953559">"कुनै सम्पर्क छैन।"</string>
+    <string name="noGroups" msgid="8614664663561385253">"कुनै समूहहरू छैनन्।"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"समूह बनाउनका लागि एउटा खाताको आवश्यक्ता हुन्छ।"</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"यो समूहमा कोही छैन।"</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"केही थपनका लागि, समुह सम्पादन गर्नुहोस्।"</string>
+    <string name="savingContact" msgid="4075751076741924939">"सम्पर्क बचत गर्दै..."</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"सम्पर्क बचत गरियो।"</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"सम्पर्क परिवर्तनहरू सुरक्षित गर्न सकेन।"</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"समूह बचत गरियो।"</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"समूह परिवर्तनहरू बचत गर्न सकेन।"</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"फोन नम्बरसहित १ सम्पर्क"</item>
+    <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> फोन नम्बरसहित सम्पर्कहरू"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"फोन नम्बर भएका कुनै सम्पर्कहरू छैनन्"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"१ भेटियो"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> भेट्टियो"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"कुनै सम्पर्कहरू छैनन्।"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"१ भेट्टाइयो"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> भेटाइयो"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"सबै सम्पर्कहरू"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"मनपर्ने"</string>
+    <string name="callBack" msgid="5498224409038809224">"कल ब्याक"</string>
+    <string name="callAgain" msgid="3197312117049874778">"फेरि कल गर्नुहोस्"</string>
+    <string name="returnCall" msgid="8171961914203617813">"कल फर्काउनुहोस्"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" लाई सम्पर्कमा थप्ने?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"फोटो सम्पर्क गर्नुहोस्"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"जोड"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g>को <xliff:g id="TOTAL_NUMBER">%s</xliff:g> सम्पर्क"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"तपाईँका सम्पर्कहरूका नामहरू"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"यो कार्य सम्हाल्न कुनै पनि अनुप्रयोग पाइएन।"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"अघिल्लो पर्दामा फर्कनको लागि क्लिक गर्नुहोस्"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"फोन नम्बर थप्नुहोस्"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"इमेल थप्नुहोस्"</string>
+    <string name="missing_app" msgid="1466111003546611387">"यो कार्य सम्हाल्न कुनै पनि अनुप्रयोग पाइएन।"</string>
+    <string name="menu_share" msgid="943789700636542260">"साझेदारी गर्नुहोस्"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"सम्पर्कहरूमा थप्नुहोस्"</string>
+    <string name="share_via" msgid="563121028023030093">"मार्फत सम्पर्क ‍साझेदारी गर्नुहोस्"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"खाता अन्तर्गत समूह बनाउनुहोस्"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"भ्वाइस च्याट"</string>
+    <string name="video_chat" msgid="1872255818640336072">"भिडियो च्याट"</string>
+    <string name="connections" msgid="8098440723172028350">"जडानहरू"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"जडान थप्नुहोस्"</string>
+    <string name="recent" msgid="2659189233141493004">"हालैको"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"हालसालैका अद्यावधिकहरू"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> सम्पर्क"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"यो फोटाको प्रयोग गर्नुहोस्"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"यो अनुप्रयोगबाट सम्पादन गर्न नमिल्ने।"</string>
+    <string name="group_read_only" msgid="1061762906115697637">"यस उपकरणमा सम्पादनयोग्य छैन।"</string>
+    <string name="take_photo" msgid="7496128293167402354">"तस्वीर लिनुहोस्"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"नयाँ फोटो खिच्नुहोस्"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"फोटो छान्नुहोस्"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"नयाँ तस्बिर चयन गर्नुहोस्"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"भाषा परिवर्तन प्रतिबिम्बित गर्नका लागि सम्पर्क सूची अद्यावधिक गरिदैं छ।"</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"सम्पर्क सूची अद्यावधिक हुदै छ।"</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"सम्पर्कहरू अद्यावधिक हुने प्रक्रियामा छन्।  \n \n अद्यावधिक प्रक्रिया लगभग  <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> आन्तरिक भण्डारण  MB आवश्यकता पर्छ ।  \n \n निम्न विकल्पहरू मध्ये कुनै छान्नुहोस्:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"केही अनुप्रयोगहरू हटाउनुहोस्"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"अद्यावधिक गर्न पुनःप्रयास गर्नुहोस्"</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_field" msgid="2384260056674995230">"अर्को फिल्ड थप्नुहोस्"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"नयाँ खाता थप्नुहोस्"</string>
+    <string name="add_organization" msgid="7311893231158291197">"संगठन थप्नुहोस्"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"मिति"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"समूह नाम"</string>
+    <string name="description_star" msgid="2605854427360036550">"मनपर्ने"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"सम्पर्क सम्पादन गर्नुहोस्"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"मर्ज गरिएको छैन"</item>
+    <item quantity="other" msgid="425683718017380845">"<xliff:g id="COUNT">%0$d</xliff:g> स्रोतबाट मिसाइएको"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"हालको सम्पर्कलाई चयनित सम्पर्कसँग जोड्ने हो?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"चयनित सम्पर्कको सम्पादन गर्नका लागि स्विच गर्ने हो? तपाईँले अहिलेसम्म प्रविष्टि गरिएका जानकारीहरू प्रतिलिप हुने छन्।"</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"मेरा सम्पर्कहरूमा प्रतिलिपि गर्नुहोस्"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"मेरो सम्पर्कहरूमा थप्नुहोस्"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"निर्देशिका<xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"अनुकूलन"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"सेटिङहरू"</string>
+    <string name="menu_settings" msgid="377929915873428211">"सेटिङहरू"</string>
+    <string name="menu_help" msgid="5123887102216637725">"मद्दत"</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="7356532842767854606">"एउटा वर्ष प्रदान गर्नुहोस्"</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="7911101713860139754">"एउटा खातामा साइन इन गर्नुहोस्"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"सम्पर्क आयात गर्नुहोस्"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"नयाँ समूह बनाउनुहोस्"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"नयाँ समूह बनाउनुहोस्"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"१ समूह"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> समूहहरू"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" समूह हटाउने हो? (सम्पर्कहरू आफैँ हट्दैनन्।)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="COUNT_0">%1$d</xliff:g> व्यक्ति <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> बाट"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="COUNT_0">%1$d</xliff:g> मानिसहरू <xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> बाट"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> व्यक्ति"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> मानिसहरू"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"अर्कोसँग सामेल हुनुअघि सम्पर्क नाम टाइप गर्नुहोस्।"</string>
+    <string name="copy_text" msgid="3257145021583508761">"क्लिपबोर्डमा प्रतिलिपि गर्नुहोस्"</string>
+    <string name="set_default" msgid="4417505153468300351">"पूर्वनिर्धारित मिलाउनुहोस्"</string>
+    <string name="clear_default" msgid="7193185801596678067">"पूर्वनिर्धारित हटाउनुहोस्"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"पाठको प्रतिलिपि  गरियो"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"तपाईँका परिवर्तनहरू रद्द गर्ने?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"मेरो प्रोफाइल मिलाउनुहोस्"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"व्यक्तिको नाम टाइप गर्नुहोस्"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"समूहको नाम"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"मेरो स्थानीय प्रोफाइल"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"मेरो <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> प्रोफाइल"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"सबै सम्पर्कहरू प्रदर्शन गरिदै"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Google खाता साथमा सम्पर्कले राम्रो काम गर्छ।\n\n• कुनै पनि वेब ब्राउजरबाट पहुँच गर्न सकिन्छ।\n• तपाईँका सम्पर्कहरू सुरक्षित रूपमा जगेडा गर्नुहोस्।"</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"तपाईँले फोन नै हराउनु भएको अवस्थामा पनि आफ्ना सम्पर्कहरूलाई सुरक्षित राख्नुहोस्: कुनै अनलाइन सेवासँग सिन्क्रोनाइज गर्नुहोस्।"</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"एउटा खाता थप्नुहोस्"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"तपाईँको नयाँ सम्पर्क अद्यावधि गरिने छैन। अनलाइन अद्यावधिक गर्ने एउटा खाता थप्ने हो?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"<xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>सँग तपाईँको नयाँ सम्पर्क सिन्क्रोनाइज गरिने छ।"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"तपाईँले आफ्ना सम्पर्कहरू निम्न मध्ये कुनै एउटा खातासँग सिन्क्रोनाइज गर्न सक्नु हुन्छ। कुन चाहिँ प्रयोग गर्न चाहनु हुन्छ ?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"नयाँ सम्पर्क थप्ने"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"सम्पर्क सम्पादन"</string>
+    <string name="keep_local" msgid="1258761699192993322">"स्थानीय राख्नुहोस्"</string>
+    <string name="add_account" msgid="8201790677994503186">"खाता थप गर्नुहोस्"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"नयाँ खाता थप्नुहोस्"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"डेटाबेस फाइलहरू निर्यात गर्नुहोस्"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"नयाँ सम्पर्क थप्नुहोस्"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"थप हेर्नुहोस्"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"कम हेर्नुहोस्"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"सबै हेर्नुहोस्"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"हालैको"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"बारेमा"</string>
+    <string name="send_message" msgid="8938418965550543196">"सन्देश पठाउनुहोस्"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"व्यक्तिगत प्रतिलिपि बनाउँदै..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"हिजो"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"भोली"</string>
+    <string name="today" msgid="8041090779381781781">"आज"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"<xliff:g id="TIME_INTERVAL">%s</xliff:g>मा आज"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"<xliff:g id="TIME_INTERVAL">%s</xliff:g>मा भोली"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(शीर्षकविहीन घटना)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"सेट गर्नुहोस्"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"संगठन"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"उपनाम"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"टिप्पणी"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"वेबसाइट"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"घटना"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"सम्बन्ध"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"स्थानको लागि निर्देशनहरू"</string>
+</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 0386ca7..e2484d3 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Personen"</string>
+    <string name="people" msgid="1190841469952343354">"Contacten"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contacten"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contacten"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direct bellen"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Een contact kiezen"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Nieuw contact selecteren"</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="viewContactDesription" msgid="214186610887547860">"Contact weergeven"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Contact bewerken"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Contact maken"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Groep bewerken"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Op startscherm plaatsen"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Dit contact bevat gegevens uit meerdere accounts. Gegevens uit alleen-lezen accounts worden verborgen in uw contactenlijst, maar niet verwijderd."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Als u dit contact verwijdert, worden gegevens van meerdere accounts verwijderd."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Dit contact wordt verwijderd."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Annuleren"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Wijzigingen annuleren"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Het contact bestaat niet."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Widget voor contacten toegevoegd aan het startscherm."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Nieuw contact maken"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> contacten met telefoonnummers"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Geen contacten met telefoonnummers"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 contact"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> contacten"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 gevonden"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> gevonden"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 gevonden"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> gevonden"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Alle contacten"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Groepen"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Alle contacten"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoriet"</string>
     <string name="callBack" msgid="5498224409038809224">"Terugbellen"</string>
     <string name="callAgain" msgid="3197312117049874778">"Opnieuw bellen"</string>
     <string name="returnCall" msgid="8171961914203617813">"Terugbellen"</string>
@@ -119,7 +117,12 @@
     <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 uw contacten"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Er is geen app gevonden om deze actie uit te voeren."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klik om terug te keren naar het vorige scherm"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Telefoonnummer toevoegen"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"E-mailadres toevoegen"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Er is geen app gevonden om deze actie uit te voeren."</string>
     <string name="menu_share" msgid="943789700636542260">"Delen"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Toevoegen aan contacten"</string>
     <string name="share_via" msgid="563121028023030093">"Contact delen via"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Groep in account maken"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Voicechat"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Deze foto gebruiken"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Kan niet worden bewerkt vanuit deze app."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Geen aanvullende gegevens voor dit contact."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Kan niet worden bewerkt op dit apparaat."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Lijst sorteren op"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Roepnaam"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Achternaam"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Contactnamen weergeven"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Roepnaam eerst"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Achternaam eerst"</string>
     <string name="take_photo" msgid="7496128293167402354">"Foto maken"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Nieuwe foto nemen"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Foto kiezen in Galerij"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Nieuwe foto selecteren in Galerij"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Foto kiezen"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Nieuwe foto selecteren"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Lijst met contacten wordt bijgewerkt om de gewijzigde taal te weerspiegelen."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Lijst met contactpersonen wordt bijgewerkt."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Contacten worden bijgewerkt. \n\nVoor het upgradeproces is ongeveer <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB interne opslagruimte vereist.\n\nKies een van de volgende opties:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Organisatie toevoegen"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Groepsnaam"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"favoriet"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Contact bewerken"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Een persoonlijke kopie maken..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Aangepast"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Instellingen"</string>
     <string name="menu_settings" msgid="377929915873428211">"Instellingen"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Mijn lokale profiel"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mijn <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>-profiel"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Alle contacten worden weergegeven"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Personen werkt beter met een Google-account.\n\n• Toegang via elke webbrowser.\n• Maak beveiligde back-ups van uw contacten."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Contacten werkt beter met een Google-account.\n\n• Toegang via elke webbrowser.\n• Veilig een back-up van uw contacten maken."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Zorg dat uw contacten veilig zijn, zelfs wanneer u uw telefoon verliest: synchroniseer met een online service."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Account toevoegen"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Er wordt geen back-up van uw nieuwe contact gemaakt. Een account toevoegen waarmee online een back-up van contacten wordt gemaakt?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Uw nieuwe contact wordt gesynchroniseerd met <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"U kunt uw nieuwe contact synchroniseren met een van de volgende accounts. Welk account wilt u gebruiken?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Nw contact toevoegen"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Contact bewerken"</string>
     <string name="keep_local" msgid="1258761699192993322">"Lokaal opslaan"</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="contact_detail_picture_description" msgid="6083230522651287030">"Foto. Selecteer om te wijzigen"</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="6137651078366797938">"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="content_description_directions" msgid="2686791825798189335">"routebeschrijving naar locatie"</string>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index e978a6a..93debd6 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Osoby"</string>
+    <string name="people" msgid="1190841469952343354">"Kontakty"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakty"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Telefon do osoby"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Wybierz kontakt"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Wybierz 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="viewContactDesription" msgid="214186610887547860">"Wyświetl kontakt"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Edytuj kontakt"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Utwórz kontakt"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Edytuj grupę"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Umieść na ekranie głównym"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Ten kontakt zawiera informacje pochodzące z wielu kont. Informacje z kont przeznaczonych tylko do odczytu zostaną na listach kontaktów ukryte, a nie usunięte."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Usunięcie tego kontaktu spowoduje usunięcie informacji z wielu kont."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Ten kontakt zostanie usunięty."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Odrzuć"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Odrzuć zmiany"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt nie istnieje."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Widżet kontaktu dodany do ekranu głównego."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Utwórz nowy kontakt"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"Liczba kontaktów z numerami telefonów: <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Brak kontaktów z numerami telefonów"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"Liczba kontaktów: 1"</item>
-    <item quantity="other" msgid="3578469907265375314">"Liczba kontaktów: <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"Znaleziono: 1"</item>
     <item quantity="other" msgid="3852668542926965042">"Znaleziono: <xliff:g id="COUNT">%d</xliff:g>"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"Znaleziono: 1"</item>
     <item quantity="other" msgid="7988132539476575389">"Znaleziono: <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Wszystkie kontakty"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grupy"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Wszys. kontakty"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Ulubione"</string>
     <string name="callBack" msgid="5498224409038809224">"Oddzwoń"</string>
     <string name="callAgain" msgid="3197312117049874778">"Zadzwoń ponownie"</string>
     <string name="returnCall" msgid="8171961914203617813">"Połączenie zwrotne"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"Kontakt <xliff:g id="CURRENT_NUMBER">%s</xliff:g> z <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Imiona i nazwiska oraz nazwy w Twoich kontaktach"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Nie znaleziono aplikacji do obsługi tego działania."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliknij, by wrócić do poprzedniego ekranu"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Dodaj numer telefonu"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Dodaj adres e-mail"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Nie znaleziono aplikacji do obsługi tego działania."</string>
     <string name="menu_share" msgid="943789700636542260">"Udostępnij"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Dodaj do kontaktów"</string>
     <string name="share_via" msgid="563121028023030093">"Udostępnij kontakt przez"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Utwórz grupę na koncie"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Czat głosowy"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Użyj tego zdjęcia"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Nie można edytować w tej aplikacji."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Brak dodatkowych informacji dla tego kontaktu"</string>
     <string name="group_read_only" msgid="1061762906115697637">"Nie można edytować na tym urządzeniu."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Sortuj listę według"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Imię"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Nazwisko"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Wyświetl nazwy kontaktów"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Najpierw imię"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Najpierw nazwisko"</string>
     <string name="take_photo" msgid="7496128293167402354">"Zrób zdjęcie"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Zrób nowe zdjęcie"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Wybierz zdjęcie z galerii"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Wybierz nowe zdjęcie z galerii"</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="locale_change_in_progress" msgid="7583992153091537467">"Lista kontaktów jest aktualizowana, aby odzwierciedlić zmianę języka."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Lista kontaktów jest aktualizowana."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Trwa proces uaktualniania kontaktów. \n\nProces uaktualniania wymaga w przybliżeniu <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB pamięci wewnętrznej.\n\nWybierz jedną z następujących opcji:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Dodaj organizację"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nazwa grupy"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"przez: <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g>, przez: <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"ulubione"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Edytuj kontakt"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Tworzenie kopii osobistej…"</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Niestandardowy"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Ustawienia"</string>
     <string name="menu_settings" msgid="377929915873428211">"Ustawienia"</string>
@@ -206,7 +199,7 @@
     <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> osoba"</item>
     <item quantity="other" msgid="6251996206137048525">"Osoby: <xliff:g id="COUNT">%1$d</xliff:g>"</item>
   </plurals>
-    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Wpisz w kontakcie imię i nazwisko, zanim połączysz go z innym kontaktem."</string>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Wpisz imię i nazwisko, zanim połączysz ten kontakt z innym."</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>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Mój profil lokalny"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mój profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Wyświetlanie wszystkich kontaktów"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Aplikacja Ludzie działa lepiej z kontem Google.\n\n• Używaj jej w dowolnej przeglądarce.\n• Twórz kopie zapasowe kontaktów."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Kontakty działają lepiej, kiedy masz konto Google.\n\n• Dostęp w dowolnej przeglądarce internetowej.\n• Bezpieczne tworzenie kopii zapasowych kontaktów."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Zapewnij bezpieczeństwo swoich kontaktów nawet w przypadku utraty telefonu: włącz synchronizację z usługą online."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Dodaj konto"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Kopia zapasowa nowego kontaktu nie zostanie utworzona. Dodać konto, na którym kopie zapasowe kontaktów będą tworzone online?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Nowy kontakt zostanie zsynchronizowany z kontem <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Nowy kontakt możesz zsynchronizować z dowolnym kontem. Którego chcesz użyć?"</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="keep_local" msgid="1258761699192993322">"Przechowuj lokalnie"</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="contact_detail_picture_description" msgid="6083230522651287030">"Zdjęcie. Wybierz, aby je zmienić"</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="6137651078366797938">"Kopiuję do osobistych..."</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="content_description_directions" msgid="2686791825798189335">"trasa do lokalizacji"</string>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 1842cf3..091f790 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Pessoas"</string>
+    <string name="people" msgid="1190841469952343354">"Contactos"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contactos"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contacto"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Marcação directa"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Escolher um contacto"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Selecionar 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="viewContactDesription" msgid="214186610887547860">"Visualizar contacto"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Editar contacto"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Criar contacto"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Editar grupo"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Colocar no Ecrã principal"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Este contacto contém informações de várias contas. As informações de contas só de leitura serão ocultadas nas suas listas de contactos, mas não eliminadas."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"A eliminação deste contacto eliminará informações de várias contas."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Este contacto será eliminado."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Rejeitar"</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" msgid="7874133287558150877">"Widget de contacto adicionado ao seu Ecrã principal."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Criar novo contacto"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> contactos com números de telefone"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Sem contactos com números de telefone"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 contacto"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> contactos"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 encontrado"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> encontrado(s)"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 encontrado"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> encontrado(s)"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Todos os contactos"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grupos"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Todos os cont."</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritos"</string>
     <string name="callBack" msgid="5498224409038809224">"Chamada de retorno"</string>
     <string name="callAgain" msgid="3197312117049874778">"Ligar novamente"</string>
     <string name="returnCall" msgid="8171961914203617813">"Devolver chamada"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contactos"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Nomes dos contactos"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Não foram encontradas aplicações para executar esta ação"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Clique para regressar ao ecrã anterior"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Adicionar número de telefone"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Adicionar email"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Não foram encontradas aplicações para executar esta ação."</string>
     <string name="menu_share" msgid="943789700636542260">"Partilhar"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Adicionar aos contactos"</string>
     <string name="share_via" msgid="563121028023030093">"Partilhar contacto através de"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Criar grupo na conta"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Chat de voz"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Utilizar esta fotografia"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Não editável a partir desta aplicação."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Não há informações adicionais para este contacto"</string>
     <string name="group_read_only" msgid="1061762906115697637">"Não editável neste aparelho"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Ordenar lista por"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Nome próprio"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Apelido"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Ver nomes de contactos"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Nome próprio em primeiro lugar"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Apelido em primeiro lugar"</string>
     <string name="take_photo" msgid="7496128293167402354">"Tirar fotografia"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Tirar nova fotografia"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Escolher fotografia da Galeria"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Selecionar nova fotografia da Galeria"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Escolher fotografia"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Selecionar nova fotografia"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"A lista de contactos está a ser atualizada para reflectir a alteração do idioma."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"A lista de contactos está a ser atualizada."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Os contactos estão em processo de atualização. \n\nO processo de atualização requer aproximadamente <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB de armazenamento interno.\n\nEscolha uma das seguintes opções:"</string>
@@ -153,15 +149,13 @@
     <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">"Seleccionar 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_field" msgid="2384260056674995230">"Adicionar outro campo"</string>
     <string name="add_new_entry_for_section" msgid="5223080690667565044">"Adicionar novo"</string>
     <string name="add_organization" msgid="7311893231158291197">"Adicionar entidade"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nome do grupo"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"através do <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> através do <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"favorito"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Editar contacto"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"A criar uma cópia pessoal"</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Personalizado"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Definições"</string>
     <string name="menu_settings" msgid="377929915873428211">"Definições"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"O meu perfil local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"O meu perfil do <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"A apresentar todos os contactos"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"A aplicação Pessoas funciona melhor com uma Conta Google.\n\n• Aceda à Conta Google a partir de qualquer navegador de Internet.\n• Faça uma cópia de segurança dos seus contactos de forma segura."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"A aplicação Contactos funciona melhor com uma Conta Google.\n\n• Aceda a partir de qualquer navegador de Internet.\n• Faça uma cópia de segurança dos seus contactos de forma segura."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mantenha os seus contactos em segurança, mesmo em caso de perda do telemóvel: sincronize com um serviço on-line."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Adicionar uma conta"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Não será efetuada cópia de segurança do novo contacto. Adicionar uma conta que efetua a cópia de segurança dos contactos on-line?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"O novo contacto será sincronizado com <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Pode sincronizar o novo contacto com uma das seguintes contas. Qual a conta que deseja utilizar?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Adic. novo contacto"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editar contacto"</string>
     <string name="keep_local" msgid="1258761699192993322">"Manter localmente"</string>
     <string name="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="contact_detail_picture_description" msgid="6083230522651287030">"Imagem. Selecione para alterar"</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="6137651078366797938">"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="content_description_directions" msgid="2686791825798189335">"direções para a localização"</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 74ccaf9..0a1eef5 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Pessoas"</string>
+    <string name="people" msgid="1190841469952343354">"Contatos"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contatos"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contato"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Discagem direta"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Escolha um contato"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Selecionar 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="viewContactDesription" msgid="214186610887547860">"Ver contato"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Editar contato"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Criar contato"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Editar grupo"</string>
@@ -40,10 +40,12 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Colocar na tela inicial"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Chamar contato"</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="8368636463748691868">"Separar"</string>
     <string name="menu_editGroup" msgid="5062005185370983720">"Editar"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Este contato contém informações de diversas contas. As informações de contas somente de leitura ficarão ocultas nas suas listas de contatos, mas não serão excluídas."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Excluir este contato irá excluir informações de várias contas."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Este contato será excluído."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Descartar"</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" msgid="7874133287558150877">"Widget Contato adicionado à tela inicial."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Criar novo contato"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<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="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 contato"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> contatos"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"Um encontrado"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> encontrados"</item>
@@ -108,10 +106,10 @@
     <item quantity="one" msgid="4826918429708286628">"Um encontrado"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> encontrados"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Todos os contatos"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grupos"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Todos"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritos"</string>
     <string name="callBack" msgid="5498224409038809224">"Retornar chamada"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Chamar novamente"</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>
@@ -119,7 +117,12 @@
     <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 aplicativo 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 aplicativo foi encontrado para executar esta ação."</string>
     <string name="menu_share" msgid="943789700636542260">"Compartilhar"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Adicionar aos contatos"</string>
     <string name="share_via" msgid="563121028023030093">"Compartilhar contato via"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Criar grupo na conta"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Bate-papo por voz"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Usar esta foto"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Não pode ser editado neste aplicativo."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Não há informações adicionais para este contato."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Não é possível editar neste dispositivo."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Classificar lista por"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Nome"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Sobrenome"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Visualizar nomes de contatos"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Nome primeiro"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Sobrenome primeiro"</string>
     <string name="take_photo" msgid="7496128293167402354">"Tirar foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Tirar outra foto"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Escolha fotos da Galeria"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Selecionar nova foto da Galeria"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Escolher foto"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Selecionar nova foto"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"A lista de contatos está sendo atualizada para incorporar a alteração do idioma."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"A lista de contatos está sendo atualizada."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Os contatos estão sendo atualizados no momento. \n\nO processo de atualização requer aproximadamente <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB de armazenamento interno.\n\nEscolha uma das seguintes opções:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Adicionar organização"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nome do grupo"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"por meio de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"favorito"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Editar contato"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Criando uma cópia pessoal..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Personalizado"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Configurações"</string>
     <string name="menu_settings" msgid="377929915873428211">"Configurações"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Meu perfil local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Meu perfil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Exibindo todos os contatos"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"O aplicativo Pessoas funciona melhor com uma Conta do Google.\n\n• Acesse-o a partir de qualquer navegador da web.\n• Faça backup de seus contatos com segurança."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Contatos funciona melhor com uma conta do Google.\n\n• Acesse-o a partir de qualquer navegador da web.\n• Faça backup de seus contatos com segurança."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mantenha seus contatos seguros, mesmo se você perder seu telefone: sincronize com um serviço on-line."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Adicionar uma conta"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Não será possível fazer backup de seu novo contato. Deseja adicionar uma conta que faça backup de contatos on-line?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Seu novo contato será sincronizado com <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"É possível sincronizar seu novo contato com uma das seguintes contas. Qual você deseja usar?"</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="keep_local" msgid="1258761699192993322">"Manter localmente"</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="contact_detail_picture_description" msgid="6083230522651287030">"Imagem. Selecione para alterar"</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="6137651078366797938">"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="content_description_directions" msgid="2686791825798189335">"rotas até o local"</string>
 </resources>
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
deleted file mode 100644
index 5ab30f4..0000000
--- a/res/values-rm/strings.xml
+++ /dev/null
@@ -1,337 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for people (1048457247435785074) -->
-    <skip />
-    <string name="contactsList" msgid="8661624236494819731">"Contacts"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"Contact"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Cumposiziun directa"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Messadi direct"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Tscherner in contact per la scursanida"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Tscherner il numer per telefonar"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Tscherner il numer per il messadi"</string>
-    <!-- no translation found for contactPickerActivityTitle (4301062192337417640) -->
-    <skip />
-    <string name="starredList" msgid="4817256136413959463">"Cun staila"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Contacts frequents"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favurits"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Detagls dal contact"</string>
-    <string name="viewContactDesription" msgid="214186610887547860">"Mussar il contact"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Modifitgar il contact"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Crear in contact"</string>
-    <!-- no translation found for editGroupDescription (6321161304201540561) -->
-    <skip />
-    <!-- no translation found for insertGroupDescription (5658512271662210139) -->
-    <skip />
-    <!-- no translation found for contactDetailAbout (5430408883907061400) -->
-    <skip />
-    <!-- no translation found for contactDetailUpdates (3780588624763446941) -->
-    <skip />
-    <string name="searchHint" msgid="8482945356247760701">"Retschertgar ils contacts"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Mussar il contact"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Agiuntar als favurits"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Allontanar dals favurits"</string>
-    <!-- no translation found for menu_editContact (9042415603857662633) -->
-    <skip />
-    <!-- no translation found for menu_deleteContact (6788644058868189393) -->
-    <skip />
-    <!-- no translation found for menu_create_contact_shortcut (1217971915748509640) -->
-    <skip />
-    <string name="menu_call" msgid="3992595586042260618">"Telefonar al contact"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Trametter in SMS al contact"</string>
-    <string name="menu_splitAggregate" msgid="8368636463748691868">"Divider"</string>
-    <!-- no translation found for menu_editGroup (5062005185370983720) -->
-    <skip />
-    <!-- no translation found for menu_deleteGroup (3486380004411482874) -->
-    <skip />
-    <!-- no translation found for menu_new_contact_action_bar (7263362129442119188) -->
-    <skip />
-    <!-- no translation found for menu_new_group_action_bar (3520232877587377175) -->
-    <skip />
-    <!-- no translation found for splitConfirmation_title (633640935430370530) -->
-    <skip />
-    <!-- no translation found for splitConfirmation (740190210499587175) -->
-    <skip />
-    <string name="menu_joinAggregate" msgid="5027981918265667970">"Unir"</string>
-    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Unir contacts"</string>
-    <!-- no translation found for blurbJoinContactDataWith (8736488417422708236) -->
-    <skip />
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Mussar tut ils contacts"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contacts proponids"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Tut ils contacts"</string>
-    <string name="contactsJoinedMessage" msgid="7208148163607047389">"Contacts unids"</string>
-    <!-- no translation found for menu_set_ring_tone (8728345772068064946) -->
-    <skip />
-    <!-- no translation found for menu_redirect_calls_to_vm (4181789196416396656) -->
-    <skip />
-    <!-- no translation found for readOnlyContactWarning (7808825687289848259) -->
-    <skip />
-    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"\"Quest contact cuntegna infurmaziuns da plirs contos. Infurmaziuns da contos mo per lectura vegnan betg stizzadas, mabain zuppentadas en Vossas glistas da contacts.\""</string>
-    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"\"Sche Vus stizzais quest contact, vegnan infurmaziuns en plirs contos stizzads.\""</string>
-    <string name="deleteConfirmation" msgid="811706994761610640">"Quest contact vegn stizzà."</string>
-    <!-- no translation found for menu_discard (6456087569315685632) -->
-    <skip />
-    <!-- no translation found for invalidContactMessage (8215051456181842274) -->
-    <skip />
-    <!-- no translation found for createContactShortcutSuccessful (7874133287558150877) -->
-    <skip />
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Crear in nov contact"</string>
-    <!-- no translation found for pickerNewContactText (6166997164401048211) -->
-    <skip />
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Firma/Organisaziun"</item>
-    <item msgid="7196592230748086755">"Notizia"</item>
-  </string-array>
-    <!-- no translation found for photoPickerNotFoundText (6247290728908599701) -->
-    <skip />
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Nagin maletg disponibel sin il telefon."</string>
-    <!-- no translation found for attach_photo_dialog_title (5599827035558557169) -->
-    <skip />
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Num da l\'etichetta persunalisada"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Renviar ils cloms directamain sin la mailbox"</string>
-    <!-- no translation found for removePhoto (4898105274130284565) -->
-    <skip />
-    <string name="noContacts" msgid="8579310973261953559">"Nagins contacts"</string>
-    <!-- no translation found for noGroups (8614664663561385253) -->
-    <skip />
-    <!-- no translation found for noAccounts (7768267764545265909) -->
-    <skip />
-    <!-- no translation found for emptyGroup (7502116218697177370) -->
-    <skip />
-    <!-- no translation found for addPeopleToGroup (7879585947222263516) -->
-    <skip />
-    <string name="savingContact" msgid="4075751076741924939">"Il contact vegn memorisà…"</string>
-    <string name="contactSavedToast" msgid="7152589189385441091">"Contact memorisà."</string>
-    <!-- no translation found for contactSavedErrorToast (3207250533172944892) -->
-    <skip />
-    <!-- no translation found for groupSavedToast (1168756874239833756) -->
-    <skip />
-    <!-- no translation found for groupSavedErrorToast (7984466936615304740) -->
-    <skip />
-    <!-- no translation found for listTotalPhoneContacts:one (3015357862286673986) -->
-    <!-- no translation found for listTotalPhoneContacts:other (3299954047880968205) -->
-    <!-- no translation found for listTotalPhoneContactsZero (6968813857632984319) -->
-    <skip />
-    <!-- no translation found for listTotalAllContacts:one (3405747744700823280) -->
-    <!-- no translation found for listTotalAllContacts:other (3578469907265375314) -->
-  <plurals name="listFoundAllContacts">
-    <item quantity="one" msgid="5517063038754171134">"chattà 1"</item>
-    <item quantity="other" msgid="3852668542926965042">"Chattà <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
-    <!-- no translation found for listFoundAllContactsZero (922980883593159444) -->
-    <skip />
-  <plurals name="searchFoundContacts">
-    <item quantity="one" msgid="4826918429708286628">"chattà 1"</item>
-    <item quantity="other" msgid="7988132539476575389">"Chattà <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
-    <!-- no translation found for contactsAllLabel (6479708629170672169) -->
-    <skip />
-    <!-- no translation found for contactsGroupsLabel (2841971472518003524) -->
-    <skip />
-    <string name="callBack" msgid="5498224409038809224">"Telefonar enavos"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Telefonar anc ina giada"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Telefonar enavos"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Agiuntar «<xliff:g id="EMAIL">%s</xliff:g>» als contacts?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"foto dal 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> da <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contacts"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"Num da Voss contacts"</string>
-    <!-- no translation found for quickcontact_missing_app (358168575340921552) -->
-    <skip />
-    <string name="menu_share" msgid="943789700636542260">"Cundivider"</string>
-    <string name="share_via" msgid="563121028023030093">"Cundivider in contact sur"</string>
-    <!-- no translation found for dialog_new_group_account (2318032089273496830) -->
-    <skip />
-    <!-- no translation found for audio_chat (2535716629358298691) -->
-    <skip />
-    <!-- no translation found for video_chat (1872255818640336072) -->
-    <skip />
-    <!-- no translation found for connections (8098440723172028350) -->
-    <skip />
-    <!-- no translation found for add_connection_button (4861308615789601727) -->
-    <skip />
-    <!-- no translation found for recent (2659189233141493004) -->
-    <!-- no translation found for recent (2062236709538790412) -->
-    <skip />
-    <!-- no translation found for recent_updates (4267258535615860710) -->
-    <!-- no translation found for recent_updates (2018245636796411442) -->
-    <skip />
-    <string name="account_type_format" msgid="718948015590343010">"Contact <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="use_photo_as_primary" msgid="8807110122951157246">"Utilisar quest foto"</string>
-    <!-- no translation found for contact_read_only (7421346527289472273) -->
-    <skip />
-    <!-- no translation found for no_contact_details (6636856378019344497) -->
-    <skip />
-    <!-- no translation found for group_read_only (1061762906115697637) -->
-    <skip />
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Zavrar la glista tenor"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Prenum"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Num da famiglia"</string>
-    <!-- no translation found for display_options_view_names_as (4386932036180428374) -->
-    <skip />
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"L\'emprim il prenum"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"L\'emprim il num da famiglia"</string>
-    <string name="take_photo" msgid="7496128293167402354">"Far ina foto"</string>
-    <!-- no translation found for take_new_photo (7341354729436576304) -->
-    <skip />
-    <!-- no translation found for pick_photo (3746334626214970837) -->
-    <skip />
-    <!-- no translation found for pick_new_photo (7962368009197147617) -->
-    <skip />
-    <!-- no translation found for locale_change_in_progress (7583992153091537467) -->
-    <skip />
-    <!-- no translation found for upgrade_in_progress (474511436863451061) -->
-    <skip />
-    <!-- no translation found for upgrade_out_of_memory (1209994418877625940) -->
-    <skip />
-    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Deinstallar in pèr applicaziuns"</string>
-    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Empruvar anc ina giada d\'actualisar"</string>
-    <!-- no translation found for search_results_searching (3984833028938569930) -->
-    <skip />
-    <string name="menu_display_selected" msgid="6470001164297969034">"Mussar la selecziun"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Mussar tuts"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Tscherner tut"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Deselecziunar tut"</string>
-    <!-- no translation found for add_field (2384260056674995230) -->
-    <skip />
-    <!-- no translation found for add_new_entry_for_section (5223080690667565044) -->
-    <skip />
-    <!-- no translation found for add_organization (7311893231158291197) -->
-    <skip />
-    <!-- no translation found for event_edit_field_hint_text (5794424930242630477) -->
-    <skip />
-    <!-- no translation found for group_edit_field_hint_text (3966441850870457808) -->
-    <skip />
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"entras <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> entras <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
-    <string name="description_star" msgid="2605854427360036550">"favurit"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Modifitgar il contact"</string>
-  <plurals name="merge_info">
-    <item quantity="one" msgid="148365587896371969">"betg fusiunà"</item>
-    <item quantity="other" msgid="425683718017380845">"1 contact fusiunà ord <xliff:g id="COUNT">%0$d</xliff:g> funtaunas"</item>
-  </plurals>
-    <!-- no translation found for aggregation_suggestion_join_dialog_message (3842757977671434836) -->
-    <skip />
-    <!-- no translation found for aggregation_suggestion_edit_dialog_message (6549585283910518095) -->
-    <skip />
-    <!-- no translation found for menu_copyContact (1573960845106822639) -->
-    <skip />
-    <!-- no translation found for add_to_my_contacts (1068274916793627723) -->
-    <skip />
-    <!-- no translation found for contact_directory_description (683398073603909119) -->
-    <skip />
-    <!-- no translation found for toast_making_personal_copy (288549957278065542) -->
-    <skip />
-    <!-- no translation found for list_filter_custom (8910173055702057002) -->
-    <skip />
-    <!-- no translation found for activity_title_settings (5464130076132770781) -->
-    <skip />
-    <!-- no translation found for menu_settings (377929915873428211) -->
-    <!-- no translation found for menu_settings (377929915873428211) -->
-    <skip />
-    <!-- no translation found for menu_help (5123887102216637725) -->
-    <skip />
-    <!-- no translation found for preference_displayOptions (1341720270148252393) -->
-    <skip />
-    <!-- no translation found for organization_company_and_title (6718207751363732025) -->
-    <skip />
-    <!-- no translation found for non_phone_caption (1541655052330027380) -->
-    <skip />
-    <!-- no translation found for non_phone_add_to_contacts (6590985286250471169) -->
-    <skip />
-    <!-- no translation found for activity_title_confirm_add_detail (4065089866210730616) -->
-    <skip />
-    <!-- no translation found for non_phone_close (7608506439725515667) -->
-    <skip />
-    <!-- no translation found for widget_name_and_phonetic (8739586586600099979) -->
-    <skip />
-    <!-- no translation found for date_year_toggle (7356532842767854606) -->
-    <skip />
-    <!-- no translation found for social_widget_label (6378905543028924592) -->
-    <skip />
-    <!-- no translation found for social_widget_loading (5327336597364074608) -->
-    <skip />
-    <!-- no translation found for contacts_unavailable_create_contact (7014525713871959208) -->
-    <skip />
-    <!-- no translation found for contacts_unavailable_add_account (7911101713860139754) -->
-    <skip />
-    <!-- no translation found for contacts_unavailable_import_contacts (4957393255392437529) -->
-    <skip />
-    <!-- no translation found for create_group_dialog_title (6874527142828424475) -->
-    <skip />
-    <!-- no translation found for create_group_item_label (4411981763169654825) -->
-    <skip />
-    <!-- no translation found for num_groups_in_account:one (2944819210288517794) -->
-    <!-- no translation found for num_groups_in_account:other (1276758425904917367) -->
-    <!-- no translation found for delete_group_dialog_message (7586856514337560529) -->
-    <skip />
-    <!-- no translation found for num_contacts_in_group:one (1352418549951013448) -->
-    <!-- no translation found for num_contacts_in_group:other (8146027769011086349) -->
-    <!-- no translation found for group_list_num_contacts_in_group:one (3323065321661972446) -->
-    <!-- no translation found for group_list_num_contacts_in_group:other (6251996206137048525) -->
-    <!-- no translation found for toast_join_with_empty_contact (2238581529864542985) -->
-    <skip />
-    <!-- no translation found for copy_text (3257145021583508761) -->
-    <skip />
-    <!-- no translation found for set_default (4417505153468300351) -->
-    <skip />
-    <!-- no translation found for clear_default (7193185801596678067) -->
-    <skip />
-    <!-- no translation found for toast_text_copied (5143776250008541719) -->
-    <skip />
-    <!-- no translation found for cancel_confirmation_dialog_message (5885724679874403115) -->
-    <skip />
-    <!-- no translation found for call_type_and_date (747163730039311423) -->
-    <skip />
-    <!-- no translation found for profile_display_name (4127389543625918771) -->
-    <skip />
-    <!-- no translation found for enter_contact_name (1738391320566349924) -->
-    <skip />
-    <!-- no translation found for group_name_hint (238359485263401293) -->
-    <skip />
-    <!-- no translation found for local_profile_title (2021416826991393684) -->
-    <skip />
-    <!-- no translation found for external_profile_title (8034998767621359438) -->
-    <skip />
-    <!-- no translation found for toast_displaying_all_contacts (2737388783898593875) -->
-    <skip />
-    <!-- no translation found for no_account_prompt (7061052512446855192) -->
-    <skip />
-    <!-- no translation found for generic_no_account_prompt (7218827704367325460) -->
-    <skip />
-    <!-- no translation found for generic_no_account_prompt_title (753783911899054860) -->
-    <skip />
-    <!-- no translation found for contact_editor_prompt_zero_accounts (1785345895691886499) -->
-    <skip />
-    <!-- no translation found for contact_editor_prompt_one_account (8669032699767375976) -->
-    <skip />
-    <!-- no translation found for contact_editor_prompt_multiple_accounts (611828200100438242) -->
-    <skip />
-    <!-- no translation found for keep_local (1258761699192993322) -->
-    <skip />
-    <!-- no translation found for add_account (8201790677994503186) -->
-    <skip />
-    <!-- no translation found for add_new_account (5748627740680940264) -->
-    <skip />
-    <!-- no translation found for menu_export_database (2659719297530170820) -->
-    <skip />
-    <!-- no translation found for contact_detail_picture_description (6083230522651287030) -->
-    <skip />
-</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index c17b84e..59b4d48 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Persoane"</string>
+    <string name="people" msgid="1190841469952343354">"Agendă"</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>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Alegeţi o persoană de contact"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Selectați o nouă intrare"</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="viewContactDesription" msgid="214186610887547860">"Vizualizaţi persoana din agendă"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Modificaţi informaţiile despre persoana din agendă"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Creaţi persoana din agendă"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Editaţi grupul"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Plasaţi în ecranul de pornire"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Informaţiile despre această persoană din agendă provin din mai multe conturi. Informaţiile provenite din conturile numai în citire nu vor fi şterse din lista dvs., ci doar ascunse."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Ștergerea acestei persoane din agendă va elimina informaţii din mai multe conturi."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Această persoană va fi ştearsă din agendă."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Renunţaţ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" msgid="7874133287558150877">"Widgetul Agendă a fost adăugat la ecranul de pornire."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Creaţi o persoană nouă în agendă"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> (de) persoane din agendă cu numere de telefon"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nicio persoană din agendă cu numere de telefon"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 persoană din Agendă"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> (de) persoane din Agendă"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"A fost găsită 1 persoană din agendă"</item>
     <item quantity="other" msgid="3852668542926965042">"Au fost găsite <xliff:g id="COUNT">%d</xliff:g> (de) persoane din agendă"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"A fost găsită 1 persoană din agendă"</item>
     <item quantity="other" msgid="7988132539476575389">"Au fost găsite <xliff:g id="COUNT">%d</xliff:g> (de) persoane din agendă"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Toată Agenda"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grupuri"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Toată agenda"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Preferate"</string>
     <string name="callBack" msgid="5498224409038809224">"Apelaţi din nou"</string>
     <string name="callAgain" msgid="3197312117049874778">"Apelaţi din nou"</string>
     <string name="returnCall" msgid="8171961914203617813">"Apelaţi înapoi"</string>
@@ -119,7 +117,12 @@
     <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">"Distribuiţi"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Adăugați în Agendă"</string>
     <string name="share_via" msgid="563121028023030093">"Distribuiţi persoana din agendă prin"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Creaţi un grup în contul"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Chat vocal"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Utilizaţi această fotografie"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Nu se poate edita din această aplicaţie"</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Nu există informaţii suplimentare pentru acest contact."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Nu poate fi editat pe acest dispozitiv."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Sortaţi lista după"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Prenume"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Numele de familie"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Afișați numele persoanei de contact"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Întâi prenumele"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Întâi numele de familie"</string>
     <string name="take_photo" msgid="7496128293167402354">"Fotografiaţi"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Creaţi o fotografie nouă"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Alegeţi o fotografie din Galerie"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Selectaţi o fotografie nouă din Galerie"</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="locale_change_in_progress" msgid="7583992153091537467">"Se actualizează lista de persoane din agendă pentru a reflecta schimbarea limbii."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Se actualizează lista de persoane din agendă."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Agenda este în proces de trecere la o versiune superioară. \n\nAcest proces necesită aproximativ <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MO din spaţiul de stocare intern.\n\nAlegeţi una dintre următoarele opţiuni:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Adăugaţi o organizaţie"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Dată"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nume grup"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"de pe <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"La ora <xliff:g id="DATE">%1$s</xliff:g> de pe <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"preferate"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Editaţi informaţiile despre persoana din agendă"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Se creează o copie personală..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Personalizată"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Setări"</string>
     <string name="menu_settings" msgid="377929915873428211">"Setări"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Profilul meu local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Profilul meu <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Se afişează toată agenda"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Aplicaţia Persoane funcţionează mai bine cu un Cont Google.\n\n• Accesaţi aplicaţia din orice browser web.\n• Creaţi în siguranţă copii de rezervă pentru agendă."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Agenda funcționează mai bine cu un Cont Google.\n\n• O puteți accesa din orice browser web.\n• Creați în siguranță backup pentru persoanele de contact."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Păstraţi agenda dvs. în condiţii de siguranţă, chiar dacă pierdeţi telefonul, prin sincronizarea acesteia cu un serviciu online."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Adăugaţi un cont"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Pentru noul contact nu se va crea o copie de rezervă. Adăugați un cont care creează online copii de rezervă pentru contacte?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Noul dvs. contact va fi sincronizat cu <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Puteţi să sincronizaţi noul dvs. contact cu unul dintre următoarele conturi. Pe care doriţi să îl utilizaţi?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Adăugați contact nou"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editați intrarea"</string>
     <string name="keep_local" msgid="1258761699192993322">"Păstraţi local"</string>
     <string name="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="contact_detail_picture_description" msgid="6083230522651287030">"Fotografie. Selectați pentru a schimba."</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="6137651078366797938">"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 web"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Eveniment"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Relaţie"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"indicații de orientare către locație"</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index b88e546..e3827d7 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Контакты"</string>
+    <string name="people" msgid="1190841469952343354">"Контакты"</string>
     <string name="contactsList" msgid="8661624236494819731">"Контакты"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Контакт"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Быстрый звонок"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Выберите номер для вызова"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Выбрать номер для отправки сообщения"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Выбор контакта"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Выберите новый контакт"</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="viewContactDesription" msgid="214186610887547860">"Просмотреть контакт"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Изменить контакт"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Создать контакт"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Изменение группы"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Поместить на главный экран"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Этот контакт содержит информацию из различных аккаунтов. Информация из аккаунтов, доступных только для чтения, будет скрыта в ваших списках контактов, но не удалена."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Удаление этого контакта приведет к потере данных из нескольких аккаунтов."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Этот контакт будет удален."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Отменить"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Отмена"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Нет такого контакта."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Виджет \"Контакты\" добавлен на главный экран."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Создать новый контакт"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"Контакты с номерами телефонов: <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Нет контактов с номерами телефонов"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"Контактов: 1"</item>
-    <item quantity="other" msgid="3578469907265375314">"Контактов: <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"Найдено: 1"</item>
     <item quantity="other" msgid="3852668542926965042">"Найдено: <xliff:g id="COUNT">%d</xliff:g>"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"Найдено: 1"</item>
     <item quantity="other" msgid="7988132539476575389">"Найдено: <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Все контакты"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Группы"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Все"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Избранные"</string>
     <string name="callBack" msgid="5498224409038809224">"Перезвонить"</string>
     <string name="callAgain" msgid="3197312117049874778">"Позвонить снова"</string>
     <string name="returnCall" msgid="8171961914203617813">"Перезвонить"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"Контакт <xliff:g id="CURRENT_NUMBER">%s</xliff:g> из <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Имена контактов"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Действие не поддерживается ни в одном приложении."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Нажмите, чтобы вернуться на предыдущую страницу"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Добавить номер телефона"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Добавить адрес электронной почты"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Действие не поддерживается ни в одном приложении."</string>
     <string name="menu_share" msgid="943789700636542260">"Отправить"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Добавить в контакты"</string>
     <string name="share_via" msgid="563121028023030093">"Способ отправки"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Создание группы в аккаунте"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Голосовой чат"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Использовать эту фотографию"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Здесь доступно только для чтения."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Нет других данных об этом контакте."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Здесь доступно только для чтения."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Упорядочить контакты"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"По имени"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"По фамилии"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Показать контакты"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Сначала имя"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Сначала фамилию"</string>
     <string name="take_photo" msgid="7496128293167402354">"Сфотографировать"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Сфотографировать"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Выбрать из Галереи"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Выбрать из Галереи"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Выбрать фото"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Выбрать другое фото"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Список контактов обновляется после смены языка интерфейса."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Список контактов обновляется..."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Контакты обновляются.\n\nДля этого требуется около <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> МБ внутренней памяти.\n\nВыберите подходящую опцию:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Добавить организацию"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Дата"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Название группы"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"с помощью <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> с помощью <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"избранное"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Изменить контакт"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Копирование..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Пользовательские"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Настройки"</string>
     <string name="menu_settings" msgid="377929915873428211">"Настройки"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Мой профиль"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Мой профиль <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Отображаются все контакты"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Подключите Контакты к аккаунту Google, чтобы:\n\n• Всегда иметь под рукой обновленные данные – на любом устройстве.\n• Синхронизировать все контакты – вы никогда не потеряете их."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Подключите Контакты к аккаунту Google, чтобы:\n\n• Всегда иметь под рукой обновленные данные – на любом устройстве.\n• Синхронизировать все контакты – вы никогда не потеряете их."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Можно потерять телефон, но не контакты... если хранить их в Интернете!"</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Добавить аккаунт"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Резервная копия нового контакта не будет сохранена. Добавить аккаунт для сохранения контактов в Интернете?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Контакт будет добавлен в аккаунт <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Выберите аккаунт, в который следует добавить новый контакт."</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="contact_detail_picture_description" msgid="6083230522651287030">"Изображение (нажмите, чтобы изменить)"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"Добавить контакт"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ещё"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Свернуть"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Показать все"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Недавние"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"О контакте"</string>
+    <string name="send_message" msgid="8938418965550543196">"Отправить сообщение"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Копирование…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Вчера"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Завтра"</string>
+    <string name="today" msgid="8041090779381781781">"Сегодня"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Сегодня, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Завтра, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(мероприятие без названия)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Установить"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"Чат"</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="content_description_directions" msgid="2686791825798189335">"Маршруты"</string>
 </resources>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
new file mode 100644
index 0000000..4c994a8
--- /dev/null
+++ b/res/values-si-rLK/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"සම්බන්ධතා"</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="contactPickerActivityTitle" msgid="4301062192337417640">"සම්බන්ධතාවයක් තෝරාගන්න"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"අලුත් සම්බන්ධතාවයක් තෝරන්න"</string>
+    <string name="starredList" msgid="4817256136413959463">"තරුව සලකුණු කළ"</string>
+    <string name="frequentList" msgid="7154768136473953056">"නිතර"</string>
+    <string name="strequentList" msgid="5640192862059373511">"ප්‍රියතම"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"සම්බන්ධතා විස්තර"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"සම්බන්ධතාව සංස්කරණය කරන්න"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"සම්බන්ධතාවයක් සාදන්න"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"කණ්ඩායම සංස්කරණය කරන්න"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"කණ්ඩායමක් සාදන්න"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"පිළිබඳ"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"යාවත්කාලීන කිරීම්"</string>
+    <string name="searchHint" msgid="8482945356247760701">"සම්බන්ධතා සෙවීම"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"සම්බන්ධතාව පෙන්වන්න"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"ප්‍රියතම වලට එක් කරන්න"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"ප්‍රියතම වලින් ඉවත් කරන්න"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"ප්‍රියතමයන්ගෙන් ඉවත් කරන්න"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"ප්‍රියතමයන් වෙත එකතු කරන්න"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"සංස්කරණය කරන්න"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"මකන්න"</string>
+    <string name="menu_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="8368636463748691868">"වෙන් කරන්න"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"සංස්කරණය කරන්න"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"මකන්න"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"සම්බන්ධතාවය එක් කරන්න"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"කණ්ඩායමක් එක් කරන්න"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"සම්බන්ධතාව වෙන් කරන්නද?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"මෙම සම්බන්ධතාවය සම්බන්ධතා කිහිපයකට වෙන් කෙරෙනු ඇත."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"එකතු වන්න"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"සම්බන්ධතා එකතු කරන්න"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"<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="7208148163607047389">"සම්බන්ධතා එක්වුණි"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"රිංග්ටෝනය සකසන්න"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"හඬ තැපෑල වෙත සියලු ඇමතුම්"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"ඔබට සම්බන්ධතා කියවීමට-පමණයි ගිණුම් වලින් මැකිය නොහැක, නමුත් ඔබගේ සම්බන්ධතා ලැයිස්තු තුළ ඔබට ඒවා සැඟවිය හැක."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"මෙම සම්බන්ධතාවයෙහි ගිණුම් කිහිපයකින් තොරතුරු අඩංගු වේ. කියවීමට-පමණයි ගිණුම් වලින් තොරතුරු ඔබගේ සම්බන්ධතා ලැයිස්තු තුළ සඟවා දැමෙන අතර, මකා දැමීම නොකරයි."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"මෙම සම්බන්ධතාවය මකා දැමීමෙන් ගිණුම් කිහිපයකින් තොරතුරු මකා දැමෙනු ඇත."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"මෙම සම්බන්ධතාවය මකා දැමෙනු ඇත."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"වෙනස්කම් ඉවතලන්න"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"සම්බන්ධතාවය නොපවතී."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"මුල් තිරයට සම්බන්ධතා විජටය එක් කරන ලදි."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"නව සම්බන්ධතාවයක් නිර්මාණය කරන්න"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"නව සම්බන්ධතාවයක් නිර්මාණය කරන්න"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"සංවිධානය"</item>
+    <item msgid="7196592230748086755">"සටහන"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ටැබ්ලටයේ පින්තූර කිසිවක් ලද නොහැක."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"දුරකථනයේ පින්තූර කිසිවක් ලද නොහැක."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"සම්බන්ධතා ඡායාරූපය"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"අභිරුචි ලේබල නම"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"හඬ තැපෑලට ඍජුවම ඇමතුම් යවන්න"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ඡායාරූපය මකන්න"</string>
+    <string name="noContacts" msgid="8579310973261953559">"සම්බන්ධතා නැත."</string>
+    <string name="noGroups" msgid="8614664663561385253">"කණ්ඩායම් නොමැත."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"කණ්ඩායම් නිර්මාණය කිරීමට ඔබට ගිණුමක් අවශ්‍ය වේ."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"මෙම කණ්ඩායම තුළ පුද්ගලයින් නොමැත."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"කිහිපයක් එක් කිරීමට, කණ්ඩායම සංස්කරණය කරන්න."</string>
+    <string name="savingContact" msgid="4075751076741924939">"සම්බන්ධතාවය සුරකමින්…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"සම්බන්ධතාවය සුරකින ලදි."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"සම්බන්ධතා වෙනස්කම් සුරැකීමට නොහැක."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"කණ්ඩායම සුරකින ලදි."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"කණ්ඩායම් වෙනස්කම් සුරැකීමට නොහැක."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"දුරකථන අංක සහිත සම්බන්ධතා 1"</item>
+    <item quantity="other" msgid="3299954047880968205">"දුරකථන අංක සහිත සම්බන්ධතා <xliff:g id="COUNT">%d</xliff:g>"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"දුරකථන අංක සහිත සම්බන්ධතා නැත"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 ක් සොයාගන්නා ලදී"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> ක් සොයාගන්නා ලදී"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"සම්බන්ධතා නැත"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 ක් සොයාගන්නා ලදී"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> ක් සොයාගන්නා ලදී"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"සියලුම සම්බන්ධතා"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"ප්‍රියතම"</string>
+    <string name="callBack" msgid="5498224409038809224">"නැවත අමතන්න"</string>
+    <string name="callAgain" msgid="3197312117049874778">"නැවත අමතන්න"</string>
+    <string name="returnCall" msgid="8171961914203617813">"ඇමතුම නැවත ලබා දෙන්න"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"සම්බන්ධතා වලට \"<xliff:g id="EMAIL">%s</xliff:g>\" එක් කරන්නද?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"සම්බන්ධතා ඡායාරූපය"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"ධන"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"සම්බන්ධතා <xliff:g id="TOTAL_NUMBER">%s</xliff:g> කින් <xliff:g id="CURRENT_NUMBER">%s</xliff:g> ක්"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"ඔබගේ සම්බන්ධතා වල නම්"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"මෙම ක්‍රියාව හැසිරවීමට යෙදුමක් සොයාගත්තේ නැත"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"පෙර තිරයට යෑම ආපසු යෑම ක්ලික් කරන්න"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"දුරකථන අංකයක් එකතු කරන්න"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ඊ-තැපෑලක් එකතු කරන්න"</string>
+    <string name="missing_app" msgid="1466111003546611387">"මෙම ක්‍රියාව හැසිරවීමට යෙදුමක් සොයාගත්තේ නැත"</string>
+    <string name="menu_share" msgid="943789700636542260">"බෙදාගන්න"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"සම්බන්ධතා වලට එක් කරන්න"</string>
+    <string name="share_via" msgid="563121028023030093">"ඔස්සේ සම්බන්ධතාවය බෙදාගන්න"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"ගිණුම යටතේ කණ්ඩායමක් නිර්මාණය කරන්න"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"හඬ කතාබහ"</string>
+    <string name="video_chat" msgid="1872255818640336072">"වීඩියෝ කතාබස්"</string>
+    <string name="connections" msgid="8098440723172028350">"සම්බන්ධතා"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"සම්බන්ධතාවයක් එක් කරන්න"</string>
+    <string name="recent" msgid="2659189233141493004">"මෑත"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"මෑත යාවත්කාලීන"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> සම්බන්ධතාව"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"මෙම ඡායාරූපය භාවිත කරන්න"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"මෙම යෙදුමෙන් සංස්කරණය කළ නොහැක."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"මෙම උපාංගයෙහි සංස්කරණය කළ නොහැක"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ඡායාරූපය ගන්න"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"නව ඡායාරූපයක් ගන්න"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ඡායාරූපය තෝරන්න"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"අලුත් ඡායාරූපය තෝරන්න"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"භාෂා වෙනස්වීම පෙන්වීමට සම්බන්ධතා ලැයිස්තුව යාවත්කාලීන වෙමින් පවතී"</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"සම්බන්ධතා ලැයිස්තුව යාවත්කාලීන වෙමින් පවතී."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"සම්බන්ධතා උත්ශ්‍රේණි ක්‍රියාවලියක තිබේ. \n\nඋත්ශ්‍රේණි ක්‍රියාවට <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB ක අභ්‍යන්තර දුරකථන ආචයනයක් ආසන්න වශයෙන් අවශ්‍ය වේ.\n\nපහත විකල්ප වලින් එකක් තෝරාගන්න:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"සමහර යෙදුම් අස්ථාපනය කරන්න"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"උත්ශ්‍රේණි කිරීම නැවත උත්සාහ කරන්න"</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_field" msgid="2384260056674995230">"තවත් ක්ෂේත්‍රයක් එක් කරන්න"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"නව දෙයක් එක් කරන්න"</string>
+    <string name="add_organization" msgid="7311893231158291197">"සංවිධානය එක් කරන්න"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"දිනය"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"කණ්ඩායම් නම"</string>
+    <string name="description_star" msgid="2605854427360036550">"ප්‍රියතම"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"සම්බන්ධතාව සංස්කරණය කරන්න"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"ඒකාබද්ධ කර නැත"</item>
+    <item quantity="other" msgid="425683718017380845">"මූලාශ්‍ර <xliff:g id="COUNT">%0$d</xliff:g> කින් ඒකාබද්ධ කර ඇත"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"වත්මන් සම්බන්ධතාවය තෝරාගෙන ඇති සම්බන්ධතාවය සමඟ එකතු කරන්නද?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"තෝරාගෙන ඇති සම්බන්ධතාවය සංස්කරණය කිරීමට මාරු වෙන්නද? ඔබ දැනට ඇතුළු කළ තොරතුරු පිටපත් වනු ඇත."</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"මගේ සම්බන්ධතා වෙතට පිටපත් කරන්න"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"මගේ සම්බන්ධතා වලට එක් කරන්න"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> නාමාවලිය"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"අභිරුචි"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"සැකසීම්"</string>
+    <string name="menu_settings" msgid="377929915873428211">"සැකසීම්"</string>
+    <string name="menu_help" msgid="5123887102216637725">"සහාය"</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="7356532842767854606">"අවුරුද්දක් සපයන්න"</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="7911101713860139754">"ගිණුමකට පුරනය වන්න"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"සම්බන්ධතා ආයාත කරන්න"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"නව කණ්ඩායමක් නිර්මාණය කරන්න"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"නව කණ්ඩායමක් නිර්මාණය කිරීම"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"කණ්ඩායම් 1"</item>
+    <item quantity="other" msgid="1276758425904917367">"කණ්ඩායම් <xliff:g id="COUNT">%0$d</xliff:g>"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" කණ්ඩායම මකා දමන්නද? (සම්බන්ධතා මකා දමන්නේ නැත.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> වෙතින් පුද්ගලයින් <xliff:g id="COUNT_0">%1$d</xliff:g>"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> වෙතින් පුද්ගලයින් <xliff:g id="COUNT_0">%1$d</xliff:g>"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"පුද්ගලයින් <xliff:g id="COUNT">%1$d</xliff:g>"</item>
+    <item quantity="other" msgid="6251996206137048525">"පුද්ගලයින් <xliff:g id="COUNT">%1$d</xliff:g>"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"වෙනත් එකක් සමඟ එක් කිරීමට කලින් සම්බන්ධතා නම ටයිප් කරන්න."</string>
+    <string name="copy_text" msgid="3257145021583508761">"පසුරු පුවරුවට පිටපත් කරන්න"</string>
+    <string name="set_default" msgid="4417505153468300351">"සුපුරුදු ලෙස සකසන්න"</string>
+    <string name="clear_default" msgid="7193185801596678067">"සුපුරුදු හිස් කරන්න"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"පෙළ පිටපත් කරන ලදී"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"ඔබගේ වෙනස්කම් ඉවතලන්නද?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"මගේ පැතිකඩ සකසන්න"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"පුද්ගලයාගේ නම ටයිප් කරන්න"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"කණ්ඩායමේ නම"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"මගේ දේශීය පැතිකඩ"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"මගේ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> පැතිකඩ"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"සියලු සම්බන්ධතා පෙන්වමින්"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"සම්බන්ධතා Google ගිණුමක් හා වඩාත් හොඳින් වැඩ කරයි.\n\n• ඕනෑම වෙබ් බ්‍රවුසරයක් වෙතින් එයට ප්‍රවේශ වන්න\n• ඔබගේ සම්බන්ධතා ආරක්ෂිතව උපස්ථ කරන්න."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"ඔබගේ දුරකථනය නොමැති වුවත් සම්බන්ධතා සුරක්ෂිතව තබන්න: සබැඳි සේවාවක් සමඟ සමමුහුර්ත කරන්න."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ගිණුමක් එක් කරන්න"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"ඔබගේ නව සම්බන්ධතාවය උපස්ථ නොවනු ඇත. ඔබගේ සම්බන්ධතා සබැඳිව උපස්ථ කරන ගිණුමක් එක් කරන්නද?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"ඔබගේ නව සම්බන්ධතාවය <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> සමඟ සමමුහුර්ත වනු ඇත."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"ඔබගේ පහත ගිණුම් වලින් එකක් සමඟ ඔබගේ නව සම්බන්ධතාවය සමමුහුර්ත කළ හැක. ඔබට භාවිතා කිරීමට අවශ්‍ය කුමක්ද?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"නව සම්බන්ධතා එකතු කරන්න"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"සම්බන්ධතාව සංස්කරණය කරන්න"</string>
+    <string name="keep_local" msgid="1258761699192993322">"පෙදෙසිව තබාගන්න"</string>
+    <string name="add_account" msgid="8201790677994503186">"ගිණුමක් එකතු කරන්න"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"නව ගිණුමක් එක් කරන්න"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"දත්ත සමුදා ගොනු නිර්යාත කරන්න"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"නව සම්බන්ධතා එකතු කරන්න"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"තව බලන්න"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"අඩුවෙන් බලන්න"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"සියල්ල බලන්න"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"මෑත"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"පිළිබඳ"</string>
+    <string name="send_message" msgid="8938418965550543196">"පණිවිඩය යවන්න"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"පුද්ගලික පිටපතක් නිර්මාණය කරමින්..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"ඊයේ"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"හෙට"</string>
+    <string name="today" msgid="8041090779381781781">"අද"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"අද <xliff:g id="TIME_INTERVAL">%s</xliff:g> ට"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"හෙට <xliff:g id="TIME_INTERVAL">%s</xliff:g> ට"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(නම් නොකළ සිදුවීම)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"සකසන්න"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"සංවිධානය"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"අපනාමය"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"සටහන"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"වෙබ් අඩවිය"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"සිදුවීම"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"සම්බන්ධතාව"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"ස්ථානයට දිශාවන්"</string>
+</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index df86a2e..da0bed8 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Ľudia"</string>
+    <string name="people" msgid="1190841469952343354">"Kontakty"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakty"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Priame vytáčanie"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Vyberte kontakt"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Vybrať 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="viewContactDesription" msgid="214186610887547860">"Zobraziť kontakt"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Upraviť kontakt"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Vytvoriť kontakt"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Upraviť skupinu"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Umiestniť na plochu"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Tento kontakt obsahuje informácie z niekoľkých účtov. Informácie z účtov iba na čítanie budú v zoznamoch kontaktov skryté, ale nebudú odstránené."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Odstránením tohto kontaktu odstránite informácie z viacerých účtov."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Tento kontakt bude odstránený."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Zahodiť"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Zahodiť zmeny"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt neexistuje."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Miniaplikácia Kontakty bola pridaná na plochu."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Vytvoriť nový kontakt"</string>
@@ -76,7 +78,7 @@
   </string-array>
     <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"V tablete nie sú k dispozícii žiadne fotografie."</string>
     <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"V telefónne nie sú žiadne fotografie."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Fotografie kontaktu"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Fotka kontaktu"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Vlastný názov menovky"</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>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"Počet kontaktov s telefónnymi číslami: <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ku kontaktom nie sú priradené žiadne telefónne čísla"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"Počet kontaktov: 1"</item>
-    <item quantity="other" msgid="3578469907265375314">"Počet kontaktov: <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"Počet nájdených položiek: 1"</item>
     <item quantity="other" msgid="3852668542926965042">"Počet nájdených položiek: <xliff:g id="COUNT">%d</xliff:g>"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"Počet nájdených položiek: 1"</item>
     <item quantity="other" msgid="7988132539476575389">"Počet nájdených položiek: <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Všetky kontakty"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Skupiny"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Všetky"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Obľúbené"</string>
     <string name="callBack" msgid="5498224409038809224">"Zavolať späť"</string>
     <string name="callAgain" msgid="3197312117049874778">"Zavolať znova"</string>
     <string name="returnCall" msgid="8171961914203617813">"Zavolať späť"</string>
@@ -119,11 +117,16 @@
     <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-mailovú adresu"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Aplikácia potrebná na spracovanie tejto akcie sa nenašla."</string>
     <string name="menu_share" msgid="943789700636542260">"Zdieľať"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Pridať do kontaktov"</string>
     <string name="share_via" msgid="563121028023030093">"Zdieľať kontakt pomocou"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Vytvoriť skupinu v účte"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Hlasový rozhovor"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Videorozhovor"</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>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Použiť túto fotografiu"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Nemožno upraviť pomocou tejto aplikácie."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Pri tomto kontakte nie sú uvedené žiadne ďalšie informácie."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Nie je možné upraviť v tomto zariadení."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Zoradiť zoznam podľa"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Krstné meno"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Priezvisko"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Zobraziť mená kontaktov"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Najskôr krstné meno"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Najskôr priezvisko"</string>
     <string name="take_photo" msgid="7496128293167402354">"Zaznamenať fotografiu"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Urobiť novú fotografiu"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Vybrať fotografiu z Galérie"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Vybrať novú fotografiu z Galérie"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Vybrať fotku"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Vybrať novú fotku"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"V súvislosti so zmenou jazyka prebieha aktualizácia zoznamu kontaktov."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Prebieha aktualizácia zoznamu kontaktov."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Prebieha inovácia kontaktov. \n\nInovácia vyžaduje približne <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB internej pamäte. \n\nZvoľte jednu z nasledujúcich možností:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Pridať organizáciu"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Dátum"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Názov skupiny"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">", zdroj: <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g>, zdroj: <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"zaradiť medzi obľúbené"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Upraviť kontakt"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Prebieha vytváranie osobnej kópie..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Vlastné"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Nastavenia"</string>
     <string name="menu_settings" msgid="377929915873428211">"Nastavenia"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Môj miestny profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Môj profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Zobrazenie všetkých kontaktov"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Aplikácia Ľudia funguje lepšie s účtom Google.\n\n• Môžete k nej pristupovať z akéhokoľvek webového prehliadača\n• Bezpečne zálohujte svoje kontakty."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Kontakty fungujú lepšie s účtom Google.\n\n• Môžete k nim pristupovať z akéhokoľvek webového prehliadača.\n• Zálohujte svoje kontatky bezpečne."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Uchovávajte svoje kontakty v bezpečí aj v prípade straty svojho telefónu: používajte synchronizáciu so službou online."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Pridať účet"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Váš nový kontakt nebude zálohovaný. Chcete pridať účet na zálohovanie kontaktov online?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Nový kontakt bude synchronizovaný s účtom <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Nový kontakt môžete synchronizovať s jedným z nasledujúcich účtov. Ktorý z nich chcete použiť?"</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="keep_local" msgid="1258761699192993322">"Zachovať miestne"</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="contact_detail_picture_description" msgid="6083230522651287030">"Obrázok. Ak ho chcete zmeniť, vyberte ho"</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 aplikácii"</string>
+    <string name="send_message" msgid="8938418965550543196">"Odoslať správu"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Vytvára sa osobná kópia..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Včera"</string>
+    <string name="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">"Okamžité správy"</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">"Webové stránky"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Udalosť"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Vzťah"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"trasa do miesta"</string>
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index a28eaaa..6257909 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Ljudje"</string>
+    <string name="people" msgid="1190841469952343354">"Stiki"</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>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Izberite klicno številko"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Izberi številko za pošiljanje sporočila"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Izbira stika"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Izbira novega stika"</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="viewContactDesription" msgid="214186610887547860">"Ogled stika"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Urejanje stika"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Ustvari stik"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Uredi skupino"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Postavi na začetni zaslon"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Ta stik vsebuje podatke iz več računov. Podatki iz računov samo za branje ne bodo izbrisani s seznamov stikov, temveč bodo samo skriti."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Če boste izbrisali ta stik, boste izbrisali podatke iz več računov."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Ta stik bo izbrisan."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Zavrzi"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Zavrzi spremembe"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Stik ne obstaja."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Pripomoček za stik dodan na začetni zaslon."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Ustvari nov stik"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> stikov s telefonskimi številkami"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ni stikov s telefonskimi številkami"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 stik"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> stikov"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 najden"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> najdenih"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 najden"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> najdenih"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Vsi stiki"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Skupine"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Vsi stiki"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Priljubljeno"</string>
     <string name="callBack" msgid="5498224409038809224">"Povratni klic"</string>
     <string name="callAgain" msgid="3197312117049874778">"Ponovi klic"</string>
     <string name="returnCall" msgid="8171961914203617813">"Povratni klic"</string>
@@ -119,7 +117,12 @@
     <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">"Programa za obravnavo tega dejanja ni mogoče najti."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliknite za vrnitev na prejšnji zaslon"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Dodaj telefonsko številko"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Dodaj e-poštni naslov"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Za to dejanje ni mogoče najti nobene aplikacije."</string>
     <string name="menu_share" msgid="943789700636542260">"Skupna raba"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Dodaj med stike"</string>
     <string name="share_via" msgid="563121028023030093">"Deli stik z drugimi prek"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Ustvari skupino v računu"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Glasovni klepet"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Uporabi to fotografijo"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"S tem programom urejanje ni mogoče."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Za ta stik ni nobenih drugih podatkov"</string>
     <string name="group_read_only" msgid="1061762906115697637">"V tej napravi ni mogoče urejati skupine."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Razvrsti seznam po"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Ime"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Priimek"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Prikaži imena stikov"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Najprej ime"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Najprej priimek"</string>
     <string name="take_photo" msgid="7496128293167402354">"Posnemi fotografijo"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Posnemi novo fotografijo"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Izberite fotografijo iz galerije"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Izberi novo fotografijo iz Galerije"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Izberite fotografijo"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Izberite novo fotografijo"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Seznam stikov se posodablja glede na izbrani jezik."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Seznam stikov se posodablja."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Stiki se nadgrajujejo.\n\nZa nadgradnjo je potrebno približno <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB notranjega pomnilnika telefona.\n\nIzberite eno od teh možnosti:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Dodaj organizacijo"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Ime skupine"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"prek <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> prek <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"priljubljeno"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Uredi stik"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Ustvarjanje osebne kopije ..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Po meri"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Nastavitve"</string>
     <string name="menu_settings" msgid="377929915873428211">"Nastavitve"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Moj lokalni profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Moj profil za <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Prikaz vseh stikov"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Program Ljudje deluje bolje z Google Računom.\n\n• Do njega lahko dostopate v katerem koli spletnem brskalniku.\n• Varno varnostno kopiranje stikov."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Stiki delujejo bolje z Google Računom.\n\n• Dostop iz poljubnega brskalnika.\n• Varno varnostno kopiranje stikov."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Naj bodo vaš stiki na varnem, tudi če izgubite telefon: sinhronizirajte s spletno storitvijo."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Dodajanje računa"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Nov stik ne bo varnostno kopiran. Želite dodati račun za varnostno kopiranje stikov v internetu?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Nov stik bo sinhroniziran z računom <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Nov stik lahko sinhronizirate z enim od teh računov. Katerega želite uporabiti?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Dodaj. novega stika"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Urejanje stika"</string>
     <string name="keep_local" msgid="1258761699192993322">"Ohrani lokalno"</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="contact_detail_picture_description" msgid="6083230522651287030">"Slika. Izberite, da spremenite"</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="6137651078366797938">"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="content_description_directions" msgid="2686791825798189335">"navodila do mesta"</string>
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 2ae4f2e..5012f06 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Особе"</string>
+    <string name="people" msgid="1190841469952343354">"Контакти"</string>
     <string name="contactsList" msgid="8661624236494819731">"Контакти"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Контакт"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Директно бирање"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Одаберите број за позив"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Одаберите број за слање порука"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Изаберите контакт"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Изаберите нови контакт"</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="viewContactDesription" msgid="214186610887547860">"Прикажи контакт"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Измени контакт"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Направи контакт"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Измени групу"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Постави на Почетни екран"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Овај контакт садржи информације из више налога. Информације из налога који су само за читање неће бити избрисане са листе контаката, него скривене."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Ако избришете овај контакт, биће избрисане информације са више налога."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Овај контакт ће бити избрисан."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Одбаци"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Одбаци промене"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Контакт не постоји."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Виџет за контакте је додат на Почетни екран."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Направите нови контакт"</string>
@@ -87,18 +89,14 @@
     <string name="addPeopleToGroup" msgid="7879585947222263516">"Да бисте додали неке, измените групу."</string>
     <string name="savingContact" msgid="4075751076741924939">"Чување контакта је у току..."</string>
     <string name="contactSavedToast" msgid="7152589189385441091">"Контакт је сачуван."</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Није било могуће сачувати измене контаката."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Није могуће сачувати измене контаката."</string>
     <string name="groupSavedToast" msgid="1168756874239833756">"Група је сачувана."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Није било могуће сачувати измене група."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Није могуће сачувати измене група."</string>
   <plurals name="listTotalPhoneContacts">
     <item quantity="one" msgid="3015357862286673986">"1 контакт са бројем телефона"</item>
     <item quantity="other" msgid="3299954047880968205">"Бр. контаката са бројевима телефона: <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Нема контаката са бројевима телефона"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 контакт"</item>
-    <item quantity="other" msgid="3578469907265375314">"Kонтаката: <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 пронађен"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> пронађено"</item>
@@ -108,18 +106,23 @@
     <item quantity="one" msgid="4826918429708286628">"1 пронађен"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> пронађено"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Сви контакти"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Групе"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Сви контакти"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Омиљено"</string>
     <string name="callBack" msgid="5498224409038809224">"Узврати позив"</string>
     <string name="callAgain" msgid="3197312117049874778">"Позови поново"</string>
     <string name="returnCall" msgid="8171961914203617813">"Узврати позив"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Желите ли да додате адресу е-поште „<xliff:g id="EMAIL">%s</xliff:g>“ у контакте?"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Желите ли да додате имејл адресу „<xliff:g id="EMAIL">%s</xliff:g>“ у контакте?"</string>
     <string name="description_contact_photo" msgid="3387458082667894062">"фотографија контакта"</string>
     <string name="description_plus_button" msgid="515164827856229880">"плус"</string>
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> од <xliff:g id="TOTAL_NUMBER">%s</xliff:g> контак(а)та"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Имена контаката"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Није пронађена ниједна апликација која би могла да изврши ову радњу."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Кликните да бисте се вратили на претходни екран"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Додајте број телефона"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Додајте имејл"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Није пронађена ниједна апликација која би могла да обави ову радњу."</string>
     <string name="menu_share" msgid="943789700636542260">"Дели"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Додај у контакте"</string>
     <string name="share_via" msgid="563121028023030093">"Дели контакт преко"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Прављење групе на налогу"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Аудио ћаскање"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Користи ову фотографију"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Не може да се измени из ове апликације."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Нема додатних информацијa за овај контакт."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Не може да се мења на овом уређају."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Сортирај листу према"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Име"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Презиме"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Прикажи имена контаката"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Најпре име"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Прво презиме"</string>
     <string name="take_photo" msgid="7496128293167402354">"Сними фотографију"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Направи нову фотографију"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Изаберите фотографију из Галерије"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Изаберите нову фотографију из галерије"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Изаберите слику"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Изаберите нову слику"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Контакт листа се ажурира у складу са променом језика."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Контакт листа се ажурира."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"У току је надоградња контаката. \n\nПроцес надоградње захтева око <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB интерне меморије.\n\nИзаберите једну од следећих опција:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Додај организацију"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Датум"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Назив групе"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"преко <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> преко <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"омиљено"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Измени контакт"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Прављење личне копије..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Прилагођено"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Подешавања"</string>
     <string name="menu_settings" msgid="377929915873428211">"Подешавања"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Мој локални профил"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Мој <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> профил"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Приказани су сви контакти"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Апликација Људи боље функционише са Google налогом.\n\n• Приступајте из било ког веб прегледача.\n• Безбедно направите резервне копије контаката."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Контакти боље функционишу са Google налогом.\n\n• Приступајте из било ког веб-прегледача.\n• Безбедно направите резервне копије контаката."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Очувајте безбедност контаката чак и ако изгубите телефон – синхронизујте са услугом на мрежи."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Додавање налога"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Неће бити направљена резервна копија новог контакта. Желите ли да додате налог који прави резервну копију контаката на мрежи?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Нови контакт ће бити синхронизован са налогом <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Можете да синхронизујете нови контакт са једним од следећих налога. Који желите да користите?"</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="contact_detail_picture_description" msgid="6083230522651287030">"Слика. Додирните да бисте променили"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"додавање новог контакта"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Прикажи више"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Прикажи мање"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Прикажи све"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Недавно"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Основни подаци"</string>
+    <string name="send_message" msgid="8938418965550543196">"Пошаљи поруку"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Прављење личне копије..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"Јуче"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Сутра"</string>
+    <string name="today" msgid="8041090779381781781">"Данас"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Данас у <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Сутра у <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Ненасловљени догађај)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Подеси"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"Размена тренутних порука"</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="content_description_directions" msgid="2686791825798189335">"упутства до локације"</string>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index d69091a..9dbdc12 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Personer"</string>
+    <string name="people" msgid="1190841469952343354">"Kontakter"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakter"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direktval"</string>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Välj en kontakt"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Välj 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="viewContactDesription" msgid="214186610887547860">"Visa kontakt"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Redigera kontakt"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Skapa kontakt"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Redigera grupp"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Placera på startskärmen"</string>
@@ -58,14 +60,14 @@
     <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="7208148163607047389">"Deltagande kontakter"</string>
+    <string name="contactsJoinedMessage" msgid="7208148163607047389">"Kontakterna har slagits ihop"</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="7808825687289848259">"Du kan inte ta bort kontakter från skrivskyddade konton, men du kan dölja dem i kontaktlistorna."</string>
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Den här kontakten har information från flera konton. Information från skrivskyddade konton döljs i kontaktlistan, men tas inte bort."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Om du tar bort den här kontakten tar du bort information från flera konton."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Kontakten kommer att tas bort."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Ignorera"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Ignorera ändringar"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakten finns inte."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Widget för kontakt har lagts till på startskärmen."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Skapa ny kontakt"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> kontakter med telefonnummer"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Inga kontakter med telefonnummer"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 kontakt"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> kontakter"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 hittades"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> hittades"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 hittades"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> hittades"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Alla kontakter"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Grupper"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Alla kontakter"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoriter"</string>
     <string name="callBack" msgid="5498224409038809224">"Ring upp"</string>
     <string name="callAgain" msgid="3197312117049874778">"Ring igen"</string>
     <string name="returnCall" msgid="8171961914203617813">"Ring upp"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> av <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontakter"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Dina kontakters namn"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Ingen app som kan hantera åtgärden hittades."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klicka om du vill återvända till föregående skärm"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Lägg till telefonnummer"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Lägg till e-post"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Ingen app som kan hantera åtgärden hittades"</string>
     <string name="menu_share" msgid="943789700636542260">"Dela"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Lägg till i Kontakter"</string>
     <string name="share_via" msgid="563121028023030093">"Dela kontakt via"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Skapa grupp under konto"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Röstchatt"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Använd det här fotot"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Kan inte redigeras från den här appen."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Det finns ingen mer information för kontakten."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Kan inte redigeras i den här enheten."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Sortera lista efter"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Förnamn"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Efternamn"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Visa kontaktnamn"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Förnamn först"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Efternamn först"</string>
     <string name="take_photo" msgid="7496128293167402354">"Ta en bild"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Ta ny bild"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Välj ett foto från galleriet"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Välj nytt foto från galleriet"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Välj foto"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Välj ett nytt foto"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Kontaktlistan uppdateras så att språkändringen visas."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Kontaktlistan uppdateras."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Kontakterna håller på att uppgraderas. \n\nUppgraderingen kräver ungefär <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB av det interna minnet.\n\nVälj något av följande alternativ:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Lägg till organisation"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Gruppnamn"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"favorit"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Redigera kontakt"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"En personlig kopia skapas ..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Anpassad"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Inställningar"</string>
     <string name="menu_settings" msgid="377929915873428211">"Inställningar"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Min lokala profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Min <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>-profil"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Visar alla kontakter"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Appen People fungerar bättre med ett Google-konto.\n\n• Öppna den i valfri webbläsare.\n• Säkerhetskopiera dina kontakter säkert."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Kontakter fungerar bättre med ett Google-konto.\n\n• Åtkomst från alla webbläsare.\n• Säkerhetskopiera dina kontakter på ett säkert sätt."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Skydda dina kontakter även om du förlorar mobilen. Synkronisera med en onlinetjänst."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Lägg till ett konto"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Din nya kontakt kommer inte att säkerhetskopieras. Vill du lägga till ett konto så att kontakterna säkerhetskopieras online?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Din nya kontakt kommer att synkroniseras med <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Du kan synkronisera din nya kontakt med något av följande konton. Vilket konto vill du använda?"</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="keep_local" msgid="1258761699192993322">"Spara lokalt"</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="contact_detail_picture_description" msgid="6083230522651287030">"Bild. Välj om du vill ändra"</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="6137651078366797938">"Skapar en personlig kopia ..."</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="content_description_directions" msgid="2686791825798189335">"vägbeskrivning till plats"</string>
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 70d2f0f..dc6cb7b 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Watu"</string>
+    <string name="people" msgid="1190841469952343354">"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>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Chagua nambari ya kupiga"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Chagua nambari ya kutumia ujumbe"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Chagua mwasiliani"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Chagua 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="viewContactDesription" msgid="214186610887547860">"Angalia anwani"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Hariri anwani"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Unda anwani"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Hariri kikundi"</string>
@@ -39,14 +39,16 @@
     <string name="searchHint" msgid="8482945356247760701">"Tafuta anwani"</string>
     <string name="menu_viewContact" msgid="2795575601596468581">"Tazama anwani"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Ongeza kwa vipendwa"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Ondoa kutoka kwa vipendwa vyako"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Hariri"</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_create_contact_shortcut" msgid="1217971915748509640">"Weka kwenye skrini ya Kwanza"</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="8368636463748691868">"Kando"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Hariri"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"Badilisha"</string>
     <string name="menu_deleteGroup" msgid="3486380004411482874">"Futa"</string>
     <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Ongeza Anwani"</string>
     <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Ongeza Kikundi"</string>
@@ -60,16 +62,16 @@
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Anwani zote"</string>
     <string name="contactsJoinedMessage" msgid="7208148163607047389">"Anwani zimeunganishwa"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Weka mlio wa simu"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Simu zote ziwekewe ujumbe wa sauti"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Simu zijibiwe kwa ujumbe-sauti"</string>
     <string name="readOnlyContactWarning" msgid="7808825687289848259">"Huwezi kufuta anwani kutoka kwa akaunti ya kusoma-tu, lakini unaweza kuzificha katika orodha zako za anwani."</string>
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Anwani hii ina maelezo kutoka kwa akaunti nyingi. Maelezo kutoka kwa akaunti za soma-tu zitafichwa katika orodha zako za anwani, sio kufutwa."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Kufuta anwani hii kutafuta maelezo kutoka kwa akaunti nyingi."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Mwasiliani huyu atafutwa."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Tupa"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Usihifadhi mabadiliko"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Mwasiliani hayupo."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Wijeti ya mawasiliano imeongezwa kwenye skrini ya Nyumbani."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Weka anwani mpya"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Anzisha mwasiliani mpya"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Ongeza anwani mpya"</string>
   <string-array name="otherLabels">
     <item msgid="8287841928119937597">"Shirika"</item>
     <item msgid="7196592230748086755">"Hati"</item>
@@ -78,7 +80,7 @@
     <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 kwa barua ya sauti"</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="8579310973261953559">"Hakuna anwani."</string>
     <string name="noGroups" msgid="8614664663561385253">"Hakuna vikundi."</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"Anwani <xliff:g id="COUNT">%d</xliff:g> zilizo na nambari ya simu"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Hakuna anwani zilizo na nambari za simu"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"Anwani 1"</item>
-    <item quantity="other" msgid="3578469907265375314">"Anwani <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"Imepatikana 1"</item>
     <item quantity="other" msgid="3852668542926965042">"Patikana <xliff:g id="COUNT">%d</xliff:g>"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"Patikana 1"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> zimepatikana"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Anwani zote"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Vikundi"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Anwani zote"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Vipendwa"</string>
     <string name="callBack" msgid="5498224409038809224">"Mpigie"</string>
     <string name="callAgain" msgid="3197312117049874778">"Piga simu tena"</string>
     <string name="returnCall" msgid="8171961914203617813">"Mpigie"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> ya anwani <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Majina ya anwani zako"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Hakuna programu iliyopatikana ya kushughulikia tendo hili."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Bofya ili urudi kwenye skrini iliyotangulia"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Ongeza nambari ya simu"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Ongeza anwani ya barua pepe"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Hakuna programu iliyopatikana ya kushughulikia tendo hili."</string>
     <string name="menu_share" msgid="943789700636542260">"Shiriki"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Ongeza kwenye anwani"</string>
     <string name="share_via" msgid="563121028023030093">"Shiriki anwani kupitia"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Buni kikundi chini ya akaunti"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Gumzo la sauti"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Tumia picha hii"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Haiwezi kuhaririwa kutoka kwa programu hii."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Hakuna maelezo ya ziada ya mwasiliani huyu."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Haiwezi kuhaririwa kwenye kifaa hiki"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Panga orodha kwa"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Jina la kwanza"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Jila la familia"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Angalia majina ya anwani"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Jina ulilopewa kwanza"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Jina la familia kwanza"</string>
     <string name="take_photo" msgid="7496128293167402354">"Piga picha"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Piga picha mpya"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Chagua picha kutoka kwa Ghala"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Chagua picha mpya kutoka kwa Matunzio"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Chagua picha"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Chagua picha mpya"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Orodha ya anwani inasasishwa ili kuangazia mabadiliko ya lugha."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Orodha ya anwani inasasishwa."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Anwani ziko katika harakati ya kupandishwa gredi. \n\nMchakato wa kupandisha gredi unahitaji takriban MB <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> za hifadhi ya ndani.\n\nChagua mojawapo ya chaguo zifwatazo:"</string>
@@ -157,11 +153,9 @@
     <string name="menu_select_none" msgid="7093222469852132345">"Usichague zozote"</string>
     <string name="add_field" msgid="2384260056674995230">"Ongeza sehemu nyingine"</string>
     <string name="add_new_entry_for_section" msgid="5223080690667565044">"Ongeza mpya"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Ongeza shirikisho"</string>
+    <string name="add_organization" msgid="7311893231158291197">"Ongeza shirika"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Tarehe"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Jina la kikundi"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"kupitia <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> kupitia <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"kipendwa"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Hariri anwani"</string>
   <plurals name="merge_info">
@@ -169,11 +163,10 @@
     <item quantity="other" msgid="425683718017380845">"Zimeunganishwa kutoka kwa nyenzo <xliff:g id="COUNT">%0$d</xliff:g>"</item>
   </plurals>
     <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"Unganisha anwani ya sasa na anwani iliyochaguliwa?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Badilisha kwa hariri anwani iliyochaguliwa? Maelezo uliyoyaingiza hadi sasa yatanakiliwa."</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="toast_making_personal_copy" msgid="288549957278065542">"Inaunda nakala ya kibinafsi..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Maalum"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Mipangilio"</string>
     <string name="menu_settings" msgid="377929915873428211">"Mipangilio"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Wasifu wangu wa ndani."</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Wasifu wangu wa <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Inaonyesha anwani zote"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Watu wanafanya kazi vizuri wakiwa na Akaunti ya Google. \n \n • Iangalie kwa kutumia kivinjari chochote. \n • Tunza mawasiliano yako kwa usalama."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Anwani hufanya kazi vizuri pamoja na Akaunti ya Google. \n \n • Zifikie kwa kutumia kivinjari chochote. \n • Hifadhi nakala rudufu ya anwani zako kwa usalama."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Weka anwani za unaowasiliana nao salama hata ukipoteza simu yako: sawazisha kwa huduma iliyo mtandaoni."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Ongeza akaunti"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Anwani yako mpya haitahifadhiwa. Je, ungetaka kuongeza akaunti ambayo inahifadhi nakala ya anwani katika mtandao?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Anwani yako mpya haitakuwa na nakala rudufu. Je, ungependa kuongeza akaunti ambayo inahifadhi nakala rudufu ya anwani katika mtandao?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Mtu utakayemwongeza atasawazishwa na <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Unaweza kusawazisha anwani yako mpya na mojawapo ya akaunti zifuatazo. Unataka kutumia gani?"</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="keep_local" msgid="1258761699192993322">"Weka karibu"</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="contact_detail_picture_description" msgid="6083230522651287030">"Picha. Chagua ili ubadilishe"</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="6137651078366797938">"Inaunda nakala binafsi..."</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="content_description_directions" msgid="2686791825798189335">"maelekezo ya kwenda mahali"</string>
 </resources>
diff --git a/res/values-sw600dp/colors.xml b/res/values-sw600dp-land/bools.xml
similarity index 77%
copy from res/values-sw600dp/colors.xml
copy to res/values-sw600dp-land/bools.xml
index 0f8f8de..2ef703c 100644
--- a/res/values-sw600dp/colors.xml
+++ b/res/values-sw600dp-land/bools.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
+<!-- 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.
@@ -13,10 +13,8 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-
 <resources>
 
-    <!-- Color used for the letter in the A-Z section header -->
-    <color name="section_header_text_color">#ff000000</color>
+    <bool name="contact_all_list_show_card_frame">true</bool>
 
 </resources>
diff --git a/res/values-sw600dp/colors.xml b/res/values-sw600dp-land/colors.xml
similarity index 77%
rename from res/values-sw600dp/colors.xml
rename to res/values-sw600dp-land/colors.xml
index 0f8f8de..e36bfa6 100644
--- a/res/values-sw600dp/colors.xml
+++ b/res/values-sw600dp-land/colors.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
+<!-- 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.
@@ -13,10 +13,6 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-
 <resources>
-
-    <!-- Color used for the letter in the A-Z section header -->
-    <color name="section_header_text_color">#ff000000</color>
-
+    <color name="list_item_pinned_header_color">#FFFFFF</color>
 </resources>
diff --git a/res/values-sw600dp-land/donottranslate_config.xml b/res/values-sw600dp-land/donottranslate_config.xml
deleted file mode 100644
index fe09771..0000000
--- a/res/values-sw600dp-land/donottranslate_config.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2011, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<resources>
-    <bool name="config_browse_list_show_images">true</bool>
-    <bool name="config_use_two_panes_in_favorites">true</bool>
-    <bool name="config_browse_list_reverse_images">false</bool>
-</resources>
diff --git a/res/values-sw600dp-land/integers.xml b/res/values-sw600dp-land/integers.xml
index 8ce96de..4bf44c0 100644
--- a/res/values-sw600dp-land/integers.xml
+++ b/res/values-sw600dp-land/integers.xml
@@ -14,6 +14,15 @@
      limitations under the License.
 -->
 <resources>
+    <!--  Determines the number of columns in a ContactTileRow in the favorites tab -->
+    <integer name="contact_tile_column_count_in_favorites">4</integer>
+
     <integer name="contact_tile_column_count">3</integer>
-    <integer name="updates_tab_snippet_max_lines">7</integer>
+
+    <!-- Layout weight of space elements in PeopleActivity for favorites list and all
+        contacts list-->
+    <integer name="people_activity_space_layout_weight">1</integer>
+    <!-- Layout weight of ListViews in PeopleActivityfor tile favorites list and all
+         contacts list in PeopleActivity -->
+    <integer name="people_activity_list_view_layout_weight">3</integer>
 </resources>
diff --git a/res/values-sw600dp-land/styles.xml b/res/values-sw600dp-land/styles.xml
deleted file mode 100644
index 01116d7..0000000
--- a/res/values-sw600dp-land/styles.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-    <style name="PeopleTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
-        <item name="android:actionBarStyle">@style/ContactsActionBarStyle</item>
-        <item name="android:actionBarWidgetTheme">@style/ContactsActionBarTheme</item>
-        <item name="android:actionOverflowButtonStyle">@style/ContactsActionBarOverflow</item>
-        <item name="android:actionBarItemBackground">@drawable/action_bar_item_background</item>
-        <item name="android:actionBarTabStyle">@style/ContactsActionBarTabView</item>
-        <item name="android:actionDropDownStyle">@style/ContactsActionBarDropDownStyle</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="list_item_height">?android:attr/listPreferredItemHeight</item>
-        <item name="activated_background">@drawable/list_item_activated_background</item>
-        <item name="section_header_background">@drawable/list_title_holo</item>
-        <item name="list_item_divider">?android:attr/listDivider</item>
-        <item name="list_item_padding_top">0dip</item>
-        <item name="list_item_padding_right">24dip</item>
-        <item name="list_item_padding_bottom">0dip</item>
-        <item name="list_item_padding_left">0dip</item>
-        <item name="list_item_gap_between_image_and_text">8dip</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">64dip</item>
-        <item name="list_item_profile_photo_size">80dip</item>
-        <item name="list_item_prefix_highlight_color">@color/people_app_theme_color</item>
-        <item name="list_item_header_text_indent">8dip</item>
-        <item name="list_item_header_text_size">14sp</item>
-        <item name="list_item_header_text_color">@color/people_app_theme_color</item>
-        <item name="list_item_header_height">32dip</item>
-        <item name="list_item_header_underline_height">1dip</item>
-        <item name="list_item_header_underline_color">@color/main_header_separator_color</item>
-        <item name="list_item_data_width_weight">5</item>
-        <item name="list_item_label_width_weight">3</item>
-        <item name="list_item_contacts_count_text_color">@color/people_app_theme_color</item>
-        <item name="list_item_contacts_count_text_size">12sp</item>
-        <item name="contact_browser_list_padding_left">0dip</item>
-        <item name="contact_browser_list_padding_right">0dip</item>
-        <item name="contact_browser_background">@android:color/transparent</item>
-        <item name="list_item_text_indent">@dimen/contact_browser_list_item_text_indent</item>
-        <!-- Favorites -->
-        <item name="favorites_padding_bottom">0dip</item>
-    </style>
-
-</resources>
diff --git a/res/values-sw600dp/colors.xml b/res/values-sw600dp/bools.xml
similarity index 77%
copy from res/values-sw600dp/colors.xml
copy to res/values-sw600dp/bools.xml
index 0f8f8de..2ef703c 100644
--- a/res/values-sw600dp/colors.xml
+++ b/res/values-sw600dp/bools.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
+<!-- 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.
@@ -13,10 +13,8 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-
 <resources>
 
-    <!-- Color used for the letter in the A-Z section header -->
-    <color name="section_header_text_color">#ff000000</color>
+    <bool name="contact_all_list_show_card_frame">true</bool>
 
 </resources>
diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
index 3e55240..e99dccf 100644
--- a/res/values-sw600dp/dimens.xml
+++ b/res/values-sw600dp/dimens.xml
@@ -24,13 +24,8 @@
     <dimen name="shortcut_icon_size">64dip</dimen>
     <dimen name="list_section_height">37dip</dimen>
     <dimen name="group_detail_border_padding">16dip</dimen>
-    <dimen name="detail_update_section_side_padding">0dip</dimen>
-    <dimen name="detail_update_section_item_horizontal_padding">8dip</dimen>
-    <dimen name="detail_update_section_item_vertical_padding">16dip</dimen>
     <dimen name="search_view_width">400dip</dimen>
     <dimen name="contact_tile_list_padding_top">16dip</dimen>
-    <!-- Center vertically -->
-    <dimen name="quick_contact_top_position">-1px</dimen>
     <!-- Contact list (vertical scroll bar comes left) -->
     <dimen name="list_visible_scrollbar_padding">32dip</dimen>
     <dimen name="list_header_extra_top_padding">@dimen/contact_browser_list_top_margin</dimen>
diff --git a/res/values-sw600dp/donottranslate_config.xml b/res/values-sw600dp/donottranslate_config.xml
deleted file mode 100644
index a8d428c..0000000
--- a/res/values-sw600dp/donottranslate_config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2011, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<resources>
-    <bool name="config_use_two_panes">true</bool>
-    <bool name="config_use_two_panes_in_favorites">false</bool>
-    <bool name="show_home_icon">true</bool>
-    <bool name="config_browse_list_show_images">false</bool>
-    <bool name="config_browse_list_reverse_images">false</bool>
-    <item name="tab_width_screen_width_percentage" type="fraction">66.67%</item>
-    <item name="tab_height_screen_width_percentage" type="fraction">66.67%</item>
-</resources>
diff --git a/res/values-sw600dp/integers.xml b/res/values-sw600dp/integers.xml
index a62fa14..ab2a52d 100644
--- a/res/values-sw600dp/integers.xml
+++ b/res/values-sw600dp/integers.xml
@@ -15,5 +15,10 @@
 -->
 <resources>
     <integer name="contact_tile_column_count">2</integer>
-    <integer name="updates_tab_snippet_max_lines">4</integer>
+    <!-- Layout weight of space elements in PeopleActivity for favorites list and all
+       contacts list-->
+    <integer name="people_activity_space_layout_weight">1</integer>
+    <!-- Layout weight of ListViews in PeopleActivityfor tile favorites list and all
+         contacts list in PeopleActivity -->
+    <integer name="people_activity_list_view_layout_weight">5</integer>
 </resources>
diff --git a/res/values-sw600dp/styles.xml b/res/values-sw600dp/styles.xml
index 7ab909e..17b1f69 100644
--- a/res/values-sw600dp/styles.xml
+++ b/res/values-sw600dp/styles.xml
@@ -14,91 +14,11 @@
      limitations under the License.
 -->
 <resources>
-    <style name="PeopleTheme" parent="@android:style/Theme.Holo.Light">
-        <item name="android:actionBarStyle">@style/ContactsActionBarStyle</item>
-        <item name="android:homeAsUpIndicator">@drawable/ic_menu_back</item>
-        <item name="android:actionOverflowButtonStyle">@style/ContactsActionBarOverflow</item>
-        <item name="android:actionBarWidgetTheme">@style/ContactsActionBarTheme</item>
-        <item name="android:actionBarItemBackground">@drawable/action_bar_item_background</item>
-        <item name="android:actionBarTabStyle">@style/ContactsActionBarTabView</item>
-        <item name="android:actionDropDownStyle">@style/ContactsActionBarDropDownStyle</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="list_item_height">?android:attr/listPreferredItemHeight</item>
-        <item name="activated_background">@drawable/list_item_activated_background</item>
-        <item name="section_header_background">@drawable/list_title_holo</item>
-        <item name="list_item_divider">?android:attr/listDivider</item>
-        <item name="list_item_padding_top">8dip</item>
-        <item name="list_item_padding_right">12dip</item>
-        <item name="list_item_padding_bottom">8dip</item>
-        <item name="list_item_padding_left">0dip</item>
-        <item name="list_item_gap_between_image_and_text">8dip</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">64dip</item>
-        <item name="list_item_profile_photo_size">80dip</item>
-        <item name="list_item_prefix_highlight_color">@color/people_app_theme_color</item>
-        <item name="list_item_header_text_indent">8dip</item>
-        <item name="list_item_header_text_size">14sp</item>
-        <item name="list_item_header_text_color">@color/people_app_theme_color</item>
-        <item name="list_item_header_height">30dip</item>
-        <item name="list_item_header_underline_height">1dip</item>
-        <item name="list_item_header_underline_color">@color/secondary_header_separator_color</item>
-        <item name="list_item_data_width_weight">5</item>
-        <item name="list_item_label_width_weight">3</item>
-        <item name="list_item_contacts_count_text_color">@color/people_app_theme_color</item>
-        <item name="list_item_contacts_count_text_size">12sp</item>
-        <item name="contact_browser_list_padding_left">0dip</item>
-        <item name="contact_browser_list_padding_right">0dip</item>
-        <item name="contact_browser_background">@android:color/transparent</item>
-        <item name="list_item_text_indent">@dimen/contact_browser_list_item_text_indent</item>
-        <!-- Favorites -->
-        <item name="favorites_padding_bottom">0dip</item>
-    </style>
-
-    <style name="ContactPickerTheme" parent="@android:Theme.Holo.Light.Dialog">
-        <item name="android:windowSoftInputMode">adjustResize</item>
-        <item name="android:listViewStyle">@style/ListViewStyle</item>
-        <item name="list_item_height">?android:attr/listPreferredItemHeight</item>
-        <item name="section_header_background">@drawable/list_title_holo</item>
-        <item name="list_item_divider">?android:attr/listDivider</item>
-        <item name="list_item_padding_top">8dip</item>
-        <item name="list_item_padding_right">0dip</item>
-        <item name="list_item_padding_bottom">8dip</item>
-        <item name="list_item_padding_left">0dip</item>
-        <item name="list_item_gap_between_image_and_text">8dip</item>
-        <item name="list_item_gap_between_label_and_data">5dip</item>
-        <item name="list_item_presence_icon_margin">18dip</item>
-        <item name="list_item_photo_size">64dip</item>
-        <item name="list_item_profile_photo_size">80dip</item>
-        <item name="list_item_header_text_indent">8dip</item>
-        <item name="list_item_header_text_size">14sp</item>
-        <item name="list_item_header_text_color">@color/dialtacts_secondary_text_color</item>
-        <item name="list_item_header_height">30dip</item>
-        <item name="list_item_header_underline_height">2dip</item>
-        <item name="list_item_header_underline_color">@color/secondary_header_separator_color</item>
-        <item name="list_item_data_width_weight">5</item>
-        <item name="list_item_label_width_weight">3</item>
-        <item name="list_item_contacts_count_text_color">@color/people_app_theme_color</item>
-        <item name="list_item_contacts_count_text_size">20sp</item>
-        <item name="contact_browser_list_padding_left">24dip</item>
-        <item name="contact_browser_list_padding_right">0dip</item>
-        <item name="contact_browser_background">@android:color/transparent</item>
-        <item name="list_item_text_indent">@dimen/contact_browser_list_item_text_indent</item>
-    </style>
 
     <style name="ContactPickerLayout" parent="ContactPickerTheme">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">match_parent</item>
     </style>
-    <style name="JoinContactActivityTheme" parent="ContactPickerTheme" >
-        <item name="android:layout_width">match_parent</item>
-        <item name="android:layout_height">match_parent</item>
-        <!-- In the contact picker screen we're using adjustResize but we don't want it here. -->
-        <item name="android:windowSoftInputMode">adjustUnspecified</item>
-    </style>
 
     <style name="DetailActivityTheme" parent="@android:Theme.Dialog">
         <item name="android:windowContentOverlay">@null</item>
@@ -110,7 +30,7 @@
         <item name="android:background">@android:color/transparent</item>
     </style>
 
-    <style name="NonPhoneDialogTheme" parent="@android:Theme.Holo.Light.Dialog">
+    <style name="NonPhoneDialogTheme" parent="@android:Theme.Material.Light.Dialog">
         <item name="android:windowBackground">@android:color/transparent</item>
         <item name="android:windowContentOverlay">@null</item>
     </style>
diff --git a/res/values-sw720dp/dimens.xml b/res/values-sw720dp/dimens.xml
index 495526d..827c71b 100644
--- a/res/values-sw720dp/dimens.xml
+++ b/res/values-sw720dp/dimens.xml
@@ -21,4 +21,9 @@
     <dimen name="quick_contact_photo_container_height">360dip</dimen>
     <dimen name="contact_picker_contact_list_min_height">650dip</dimen>
     <dimen name="list_visible_scrollbar_padding">48dip</dimen>
+
+    <!-- When QC is uncollapsed, the title has this much margin on its left, right and bottom -->
+    <dimen name="quickcontact_title_initial_margin">32dp</dimen>
+    <!-- Initial size of QuickContact's title size -->
+    <dimen name="quickcontact_maximum_title_size">64dp</dimen>
 </resources>
diff --git a/res/values-sw720dp/integers.xml b/res/values-sw720dp/integers.xml
index eaf5971..7c94a14 100644
--- a/res/values-sw720dp/integers.xml
+++ b/res/values-sw720dp/integers.xml
@@ -14,6 +14,8 @@
      limitations under the License.
 -->
 <resources>
+    <!--  Determines the number of columns in a ContactTileRow in the favorites tab -->
+    <integer name="contact_tile_column_count_in_favorites">3</integer>
+
     <integer name="contact_tile_column_count">2</integer>
-    <integer name="updates_tab_snippet_max_lines">7</integer>
 </resources>
diff --git a/res/values-sw720dp/styles.xml b/res/values-sw720dp/styles.xml
deleted file mode 100644
index 2265373..0000000
--- a/res/values-sw720dp/styles.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-    <style name="PeopleTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
-        <item name="android:actionBarStyle">@style/ContactsActionBarStyle</item>
-        <item name="android:homeAsUpIndicator">@drawable/ic_menu_back</item>
-        <item name="android:actionOverflowButtonStyle">@style/ContactsActionBarOverflow</item>
-        <item name="android:actionBarWidgetTheme">@style/ContactsActionBarTheme</item>
-        <item name="android:actionBarItemBackground">@drawable/action_bar_item_background</item>
-        <item name="android:actionBarTabStyle">@style/ContactsActionBarTabView</item>
-        <item name="android:actionDropDownStyle">@style/ContactsActionBarDropDownStyle</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="list_item_height">?android:attr/listPreferredItemHeight</item>
-        <item name="activated_background">@drawable/list_item_activated_background</item>
-        <item name="section_header_background">@drawable/list_title_holo</item>
-        <item name="list_item_divider">?android:attr/listDivider</item>
-        <item name="list_item_padding_top">8dip</item>
-        <item name="list_item_padding_right">24dip</item>
-        <item name="list_item_padding_bottom">8dip</item>
-        <item name="list_item_padding_left">0dip</item>
-        <item name="list_item_gap_between_image_and_text">16dip</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">64dip</item>
-        <item name="list_item_profile_photo_size">80dip</item>
-        <item name="list_item_prefix_highlight_color">@color/people_app_theme_color</item>
-        <item name="list_item_header_text_indent">8dip</item>
-        <item name="list_item_header_text_color">@color/people_app_theme_color</item>
-        <item name="list_item_header_height">30dip</item>
-        <item name="list_item_header_text_size">14sp</item>
-        <item name="list_item_header_underline_color">@color/secondary_header_separator_color</item>
-        <item name="list_item_header_underline_height">1dip</item>
-        <item name="list_item_contacts_count_text_color">@color/people_app_theme_color</item>
-        <item name="list_item_contacts_count_text_size">12sp</item>
-        <item name="contact_browser_list_padding_left">0dip</item>
-        <item name="contact_browser_list_padding_right">0dip</item>
-        <item name="contact_browser_background">@android:color/transparent</item>
-        <item name="list_item_text_indent">@dimen/contact_browser_list_item_text_indent</item>
-        <!-- Favorites -->
-        <item name="favorites_padding_bottom">0dip</item>
-    </style>
-</resources>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
new file mode 100644
index 0000000..a769375
--- /dev/null
+++ b/res/values-ta-rIN/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"தொடர்புகள்"</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="contactPickerActivityTitle" msgid="4301062192337417640">"தொடர்பைத் தேர்வுசெய்யவும்"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"புதிய தொடர்பைத் தேர்ந்தெடு"</string>
+    <string name="starredList" msgid="4817256136413959463">"நட்சத்திரமிட்டது"</string>
+    <string name="frequentList" msgid="7154768136473953056">"அடிக்கடி"</string>
+    <string name="strequentList" msgid="5640192862059373511">"பிடித்தவை"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"தொடர்பு விவரங்கள்"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"தொடர்பைத் திருத்து"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"தொடர்பை உருவாக்கு"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"குழுவைத் திருத்து"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"குழுவை உருவாக்கு"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"அறிமுகம்"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"புதுப்பிப்புகள்"</string>
+    <string name="searchHint" msgid="8482945356247760701">"தொடர்புகளைத் தேடு"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"தொடர்பைக் காட்டு"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"பிடித்தவற்றில் சேர்"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"பிடித்தவற்றிலிருந்து அகற்று"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"விருப்பங்களிலிருந்து அகற்றப்பட்டது"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"விருப்பங்களில் சேர்க்கப்பட்டது"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"திருத்து"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"நீக்கு"</string>
+    <string name="menu_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="8368636463748691868">"பிரி"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"திருத்து"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"நீக்கு"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"தொடர்பைச் சேர்"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"குழுவைச் சேர்"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"தொடர்பைப் பிரிக்கவா?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"இந்தத் தொடர்பு பல தொடர்புகளாகப் பிரிக்கப்படும்."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"இணை"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"தொடர்புகளில் இணை"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"<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="7208148163607047389">"தொடர்புகள் இணைக்கப்பட்டன"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ரிங்டோனை அமை"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"எல்லா அழைப்புகளையும் குரலஞ்சலிற்கு திருப்பு"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"படிக்க மட்டுமேயான கணக்குகளின் தொடர்புகளை நீக்க முடியாது, ஆனால் தொடர்புகள் பட்டியல்களில் அவற்றை மறைக்கலாம்."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"தொடர்பில் பல கணக்குகளின் தகவல் உள்ளது. படிக்க மட்டுமேயான கணக்குகளின் தகவல் தொடர்புகள் பட்டியல்களில் மறைக்கப்படும், ஆனால் நீக்கப்படாது."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"தொடர்பை நீக்குவது பல கணக்குகளில் உள்ள தகவலை நீக்கும்."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"தொடர்பு நீக்கப்படும்."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"மாற்றங்களை நிராகரி"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"தொடர்பு இல்லை."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"முகப்புத் திரையில் தொடர்பு விட்ஜெட் சேர்க்கப்பட்டது."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"புதிய தொடர்பை உருவாக்கவும்"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"புதிய தொடர்பை உருவாக்கவும்"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"நிறுவனம்"</item>
+    <item msgid="7196592230748086755">"குறிப்பு"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"டேப்லெட்டில் படங்கள் எதுவும் இல்லை."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"மொபைலில் படங்கள் எதுவும் இல்லை."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"தொடர்பு படம்"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"தனிப்பயன் லேபிள் பெயர்"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"அழைப்புகளை நேரடியாகக் குரலஞ்சலுக்கு அனுப்பு"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"படத்தை அகற்று"</string>
+    <string name="noContacts" msgid="8579310973261953559">"தொடர்புகள் இல்லை."</string>
+    <string name="noGroups" msgid="8614664663561385253">"குழுக்கள் இல்லை."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"குழுக்களை உருவாக்க கணக்கு அவசியம்."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"குழுவில் யாரும் இல்லை."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"சிலவற்றைச் சேர்க்க, குழுவைத் திருத்தவும்."</string>
+    <string name="savingContact" msgid="4075751076741924939">"தொடர்பைச் சேமிக்கிறது…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"தொடர்பு சேமிக்கப்பட்டது."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"தொடர்பின் மாற்றங்களைச் சேமிக்க முடியவில்லை."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"குழு சேமிக்கப்பட்டது."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"குழு மாற்றங்களைச் சேமிக்க முடியவில்லை."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"மொபைல் எண்ணுடன் 1 தொடர்பு"</item>
+    <item quantity="other" msgid="3299954047880968205">"மொபைல் எண்களுடன் <xliff:g id="COUNT">%d</xliff:g> தொடர்புகள்"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"மொபைல் எண்களுடன் தொடர்புகள் இல்லை"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 கண்டறியப்பட்டது"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> கண்டறியப்பட்டன"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"தொடர்புகள் எதுவும் இல்லை"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 கண்டறியப்பட்டது"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> கண்டறியப்பட்டன"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"எல்லா தொடர்புகளும்"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"விருப்பங்கள்"</string>
+    <string name="callBack" msgid="5498224409038809224">"திருப்பி அழை"</string>
+    <string name="callAgain" msgid="3197312117049874778">"மீண்டும் அழை"</string>
+    <string name="returnCall" msgid="8171961914203617813">"திரும்பி அழை"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" ஐத் தொடர்புகளில் சேர்க்கவா?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"தொடர்பு படம்"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"சேர்"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> தொடர்புகளில் <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"உங்கள் தொடர்புகளின் பெயர்கள்"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"இந்தச் செயலைச் செய்வதற்கான பயன்பாடு எதுவுமில்லை."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"முந்தைய திரைக்குச் செல்ல கிளிக் செய்க"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ஃபோன் எண்ணைச் சேர்க்கவும்"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"மின்னஞ்சலைச் சேர்க்கவும்"</string>
+    <string name="missing_app" msgid="1466111003546611387">"இந்தச் செயலைச் செய்ய பயன்பாடு எதுவுமில்லை."</string>
+    <string name="menu_share" msgid="943789700636542260">"பகிர்"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"தொடர்புகளில் சேர்"</string>
+    <string name="share_via" msgid="563121028023030093">"இதன் வழியாக தொடர்பைப் பகிர்"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"கணக்கின் கீழ் குழுவை உருவாக்கவும்"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"குரல் அரட்டை"</string>
+    <string name="video_chat" msgid="1872255818640336072">"வீடியோ அரட்டை"</string>
+    <string name="connections" msgid="8098440723172028350">"இணைப்புகள்"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"இணைப்பைச் சேர்"</string>
+    <string name="recent" msgid="2659189233141493004">"சமீபத்தியவை"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"சமீபத்திய புதுப்பிப்புகள்"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> தொடர்பு"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"இந்தப் படத்தைப் பயன்படுத்து"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"இந்தப் பயன்பாட்டிலிருந்து திருத்த முடியாது."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"இந்தச் சாதனத்தில் திருத்தக்கூடியதல்ல."</string>
+    <string name="take_photo" msgid="7496128293167402354">"படமெடு"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"புதிய படத்தை எடு"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"படத்தைத் தேர்வுசெய்யவும்"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"புதிய படத்தைத் தேர்ந்தெடுக்கவும்"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"மொழியின் மாற்றத்தைப் பிரதிபலிக்கத் தொடர்பு பட்டியல் புதுப்பிக்கப்படுகிறது."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"தொடர்பு பட்டியல் புதுப்பிக்கப்படுகிறது."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"தொடர்புகள் மேம்படுத்தல் செயல்முறையில் உள்ளன. \n\nமேம்படுத்தல் செயல்முறைக்குத் தோராயமாக <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> மெ.பை. அகச் சேமிப்பகம் தேவை.\n\nபின்வரும் விருப்பங்களில் ஒன்றைத் தேர்வுசெய்யவும்:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"சில பயன்பாடுகளை நிறுவல் நீக்கு"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"மேம்படுத்தலை மீண்டும் முயற்சி"</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_field" msgid="2384260056674995230">"வேறொரு கலத்தைச் சேர்"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"புதியதைச் சேர்"</string>
+    <string name="add_organization" msgid="7311893231158291197">"நிறுவனத்தைச் சேர்"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"தேதி"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"குழு பெயர்"</string>
+    <string name="description_star" msgid="2605854427360036550">"பிடித்தது"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"தொடர்பைத் திருத்து"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"ஒன்றிணைக்கப்படவில்லை"</item>
+    <item quantity="other" msgid="425683718017380845">"<xliff:g id="COUNT">%0$d</xliff:g> ஆதாரங்களிலிருந்து ஒன்றிணைக்கப்பட்டது"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"தேர்ந்தெடுத்த தொடர்புடன் தற்போதைய தொடர்பை இணைக்கவா?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"தேர்ந்தெடுத்த தொடர்பைத் திருத்துதலுக்கு மாறவா? இதுவரை உள்ளிட்ட தகவல் நகலெடுக்கப்படும்."</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"எனது தொடர்புகளுக்கு நகலெடு"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"எனது தொடர்புகளில் சேர்"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"கோப்பகம் <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"தனிப்பயன்"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"அமைப்புகள்"</string>
+    <string name="menu_settings" msgid="377929915873428211">"அமைப்புகள்"</string>
+    <string name="menu_help" msgid="5123887102216637725">"உதவி"</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="7356532842767854606">"ஆண்டை வழங்கு"</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="7911101713860139754">"கணக்கில் உள்நுழைக"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"தொடர்புகளை இறக்குமதி செய்"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"புதிய குழுவை உருவாக்கு"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"புதிய குழுவை உருவாக்கு"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 குழு"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> குழுக்கள்"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" குழுவை நீக்கவா? (அதன் தொடர்புகள் நீக்கப்படாது.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> இலிருந்து <xliff:g id="COUNT_0">%1$d</xliff:g> நபர்"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> இலிருந்து <xliff:g id="COUNT_0">%1$d</xliff:g> பேர்"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> நபர்"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> பேர்"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"வேறொன்றுடன் இணைப்பதற்கு முன் தொடர்பின் பெயரை உள்ளிடவும்."</string>
+    <string name="copy_text" msgid="3257145021583508761">"கிளிப்போர்டுக்கு நகலெடு"</string>
+    <string name="set_default" msgid="4417505153468300351">"இயல்புநிலையாக அமை"</string>
+    <string name="clear_default" msgid="7193185801596678067">"இயல்பை அழி"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"உரை நகலெடுக்கப்பட்டது"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"மாற்றங்களை விலக்கவா?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"எனது சுயவிவரத்தை அமை"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"பெயரை உள்ளிடவும்"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"குழுவின் பெயர்"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"எனது சுயவிவரம்"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"எனது <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> சுயவிவரம்"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"எல்லா தொடர்புகளையும் காட்டுகிறது"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Google கணக்குடன் தொடர்புகள் அம்சம் சிறந்த முறையில் வேலை செய்கிறது.\n\n• எந்த இணைய உலாவியிலிருந்தும் அணுகலாம்.\n• தொடர்புகளைப் பாதுகாப்பாகக் காப்புப்பிரதி எடுக்கலாம்."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"மொபைலை தொலைத்தாலும் தொடர்புகளைப் பாதுகாப்புடன் வைத்திருக்கலாம்: ஆன்லைன் சேவையுடன் ஒத்திசைக்கவும்."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"கணக்கைச் சேர்"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"புதிய தொடர்பைக் காப்புப் பிரதியெடுக்க முடியாது. தொடர்புகளை ஆன்லைனில் காப்புப் பிரதியெடுக்கும் கணக்கைச் சேர்க்கவா?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"புதிய தொடர்பு <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> உடன் ஒத்திசைக்கப்படும்."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"புதிய தொடர்பை பின்வரும் கணக்குகள் ஒன்றுடன் ஒத்திசைக்கலாம். எதைப் பயன்படுத்த விரும்புகிறீர்கள்?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"புதிய தொடர்பைச் சேர்"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"தொடர்பைத் திருத்து"</string>
+    <string name="keep_local" msgid="1258761699192993322">"அகத்திலேயே சேமி"</string>
+    <string name="add_account" msgid="8201790677994503186">"கணக்கைச் சேர்"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"புதிய கணக்கைச் சேர்"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"தரவுத்தள கோப்புகளை ஏற்றுமதி செய்"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"புதிய தொடர்பைச் சேர்"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"மேலும் காட்டு"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"குறைவாகக் காட்டு"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"எல்லாம் காட்டு"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"சமீபத்தியவை"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"அறிமுகம்"</string>
+    <string name="send_message" msgid="8938418965550543196">"செய்தி அனுப்பு"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"தனிப்பட்ட நகலை உருவாக்குகிறது..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"நேற்று"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"நாளை"</string>
+    <string name="today" msgid="8041090779381781781">"இன்று"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"இன்று <xliff:g id="TIME_INTERVAL">%s</xliff:g> மணிக்கு"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"நாளை <xliff:g id="TIME_INTERVAL">%s</xliff:g> மணிக்கு"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(பெயரிடப்படாத நிகழ்வு)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"அமை"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"நிறுவனம்"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"செல்லப்பெயர்"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"குறிப்பு"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"இணையதளம்"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"நிகழ்வு"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"உறவு"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"இடத்தை நோக்கிய திசைகள்"</string>
+</resources>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
new file mode 100644
index 0000000..351c4fa
--- /dev/null
+++ b/res/values-te-rIN/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"పరిచయాలు"</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="contactPickerActivityTitle" msgid="4301062192337417640">"పరిచయాన్ని ఎంచుకోండి"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"కొత్త పరిచయాన్ని ఎంచుకోండి"</string>
+    <string name="starredList" msgid="4817256136413959463">"నక్షత్రం గుర్తు ఉన్నవి"</string>
+    <string name="frequentList" msgid="7154768136473953056">"తరచుగా"</string>
+    <string name="strequentList" msgid="5640192862059373511">"ఇష్టమైనవి"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"పరిచయ వివరాలు"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"పరిచయాన్ని సవరించు"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"పరిచయాన్ని సృష్టించండి"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"సమూహాన్ని సవరించు"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"సమూహాన్ని సృష్టించండి"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"గురించి"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"నవీకరణలు"</string>
+    <string name="searchHint" msgid="8482945356247760701">"పరిచయాలను శోధించు"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"పరిచయాన్ని వీక్షించండి"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"ఇష్టమైనవాటికి జోడించు"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"ఇష్టమైనవాటి నుండి తీసివేయి"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"ఇష్టమైనవి నుండి తీసివేయబడింది"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"ఇష్టమైనవికి జోడించబడింది"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"సవరించు"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"తొలగించు"</string>
+    <string name="menu_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="8368636463748691868">"వేరు చేయి"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"సవరించు"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"తొలగించు"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"పరిచయాన్ని జోడించు"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"సమూహాన్ని జోడించు"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"పరిచయాన్ని వేరు చేయాలా?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"ఈ పరిచయం బహుళ పరిచయాలుగా వేరు చేయబడుతుంది."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"కలుపు"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"పరిచయాలను కలపండి"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"మీరు <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="7208148163607047389">"పరిచయాలు కలపబడ్డాయి"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"రింగ్‌టో‌న్‌ను సెట్ చేయి"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"అన్ని కాల్‌లు వాయిస్ మెయిల్‌కు"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"మీరు చదవడానికి-మాత్రమే అనుమతి ఉన్న ఖాతాల నుండి పరిచయాలను తొలగించలేరు, కానీ వాటిని మీ పరిచయాల జాబితాల్లో దాచవచ్చు."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"ఈ పరిచయం బహుళ ఖాతాల నుండి సమాచారాన్ని కలిగి ఉంటుంది. చదవడానికి-మాత్రమే అనుమతి ఉన్న ఖాతాల్లోని సమాచారం మీ పరిచయాల జాబితాల్లో దాచబడుతుంది, తొలగించబడదు."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"ఈ పరిచయాన్ని తొలగించడం వలన బహుళ ఖాతాల నుండి సమాచారం తొలగించబడుతుంది."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"ఈ పరిచయం తొలగించబడుతుంది."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"మార్పులను విస్మరించు"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"పరిచయం ఉనికిలో లేదు."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"హోమ్ స్క్రీన్‌కు పరిచయ విడ్జెట్ జోడించబడింది."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"కొత్త పరిచయాన్ని సృష్టించండి"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"కొత్త పరిచయాన్ని సృష్టించండి"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"సంస్థ"</item>
+    <item msgid="7196592230748086755">"గమనిక"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"టాబ్లెట్‌లో చిత్రాలు ఏవీ అందుబాటులో లేవు."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ఫోన్‌లో చిత్రాలు ఏవీ అందుబాటులో లేవు."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"పరిచయం ఫోటో"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"అనుకూల లేబుల్ పేరు"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"కాల్‌లను నేరుగా వాయిస్ మెయిల్‌కు పంపండి"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ఫోటోను తీసివేయి"</string>
+    <string name="noContacts" msgid="8579310973261953559">"పరిచయాలు లేవు."</string>
+    <string name="noGroups" msgid="8614664663561385253">"సమూహాలు లేవు."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"సమూహాలను సృష్టించడానికి మీకు ఖాతా అవసరం."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"ఈ సమూహంలో వ్యక్తులు లేరు."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"కొంతమందిని జోడించడానికి, సమూహాన్ని సవరించండి."</string>
+    <string name="savingContact" msgid="4075751076741924939">"పరిచయాన్ని సేవ్ చేస్తోంది…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"పరిచయం సేవ్ చేయబడింది."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"పరిచయ మార్పులను సేవ్ చేయడం సాధ్యపడలేదు."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"సమూహం సేవ్ చేయబడింది."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"సమూహ మార్పులను సేవ్ చేయడం సాధ్యపడలేదు."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"ఫోన్ నంబర్ గల 1 పరిచయం"</item>
+    <item quantity="other" msgid="3299954047880968205">"ఫోన్ నంబర్‌లు గల <xliff:g id="COUNT">%d</xliff:g> పరిచయాలు"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ఫోన్ నంబర్‌లు గల పరిచయాలు లేవు"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 కనుగొనబడ్డారు"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> మంది కనుగొనబడ్డారు"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"పరిచయాలు లేవు"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 కనుగొనబడ్డారు"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> మంది కనుగొనబడ్డారు"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"అన్ని పరిచయాలు"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"ఇష్టమైనవి"</string>
+    <string name="callBack" msgid="5498224409038809224">"తిరిగి కాల్ చేయి"</string>
+    <string name="callAgain" msgid="3197312117049874778">"మళ్లీ కాల్ చేయి"</string>
+    <string name="returnCall" msgid="8171961914203617813">"కాల్‌ను తిరిగి చేయి"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\"ని పరిచయాలకు జోడించాలా?"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"పరిచయ ఫోటో"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"ప్లస్"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="TOTAL_NUMBER">%s</xliff:g> పరిచయాల్లో <xliff:g id="CURRENT_NUMBER">%s</xliff:g>"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"మీ పరిచయాల యొక్క పేర్లు"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"ఈ చర్యను నిర్వహించడానికి అనువర్తనం ఏదీ కనుగొనబడలేదు."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"మునుపటి స్క్రీన్‌కి తిరిగి రావడానికి క్లిక్ చేయండి"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ఫోన్ నంబర్‌ను జోడించండి"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ఇమెయిల్ జోడించండి"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ఈ చర్యను నిర్వహించడానికి అనువర్తనం ఏదీ కనుగొనబడలేదు."</string>
+    <string name="menu_share" msgid="943789700636542260">"భాగస్వామ్యం చేయి"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"పరిచయాలకు జోడించు"</string>
+    <string name="share_via" msgid="563121028023030093">"పరిచయాన్ని దీని ద్వారా భాగస్వామ్యం చేయండి"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"ఖాతాలో సమూహాన్ని సృష్టించండి"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"వాయిస్ చాట్"</string>
+    <string name="video_chat" msgid="1872255818640336072">"వీడియో చాట్"</string>
+    <string name="connections" msgid="8098440723172028350">"కనెక్షన్‌లు"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"కనెక్షన్‌ను జోడించు"</string>
+    <string name="recent" msgid="2659189233141493004">"ఇటీవలివి"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"ఇటీవలి నవీకరణలు"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> పరిచయం"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"ఈ ఫోటోను ఉపయోగించు"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"ఈ అనువర్తనం నుండి సవరించడం కుదరదు."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"ఈ పరికరంలో సవరించడం కుదరదు."</string>
+    <string name="take_photo" msgid="7496128293167402354">"ఫోటో తీసుకోండి"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"కొత్త ఫోటో తీసుకోండి"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ఫోటోను ఎంచుకోండి"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"కొత్త ఫోటోను ఎంచుకోండి"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"భాష మార్పును ప్రతిబింబించడానికి పరిచయ జాబితా నవీకరించబడుతోంది."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"పరిచయ జాబితా నవీకరించబడుతోంది."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"పరిచయాలు అప్‌గ్రేడ్ అయ్యే ప్రాసెస్‌లో ఉన్నాయి. \n\nఅప్‌గ్రేడ్ ప్రాసెస్‌కు సుమారుగా <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB అంతర్గత నిల్వ అవసరం.\n\nక్రింది ఎంపికల్లో ఒకదాన్ని ఎంచుకోండి:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"కొన్ని అనువర్తనాలను అన్‌ఇన్‌స్టాల్ చేయండి"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"అప్‌గ్రేడ్ చేయడాన్ని మళ్లీ ప్రయత్నించు"</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_field" msgid="2384260056674995230">"మరో ఫీల్డ్‌ను జోడించు"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"కొత్తదాన్ని జోడించు"</string>
+    <string name="add_organization" msgid="7311893231158291197">"సంస్థను జోడించు"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"తేదీ"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"సమూహం పేరు"</string>
+    <string name="description_star" msgid="2605854427360036550">"ఇష్టంగా గుర్తించు"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"పరిచయాన్ని సవరించు"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"విలీనం చేయబడలేదు"</item>
+    <item quantity="other" msgid="425683718017380845">"<xliff:g id="COUNT">%0$d</xliff:g> మూలాల నుండి విలీనం చేయబడినవి"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"ప్రస్తుత పరిచయాన్ని ఎంచుకున్న పరిచయంతో కలపాలా?"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ఎంచుకున్న పరిచయాన్ని సవరించగల స్థితికి మార్చాలా? మీరు ఇప్పటి వరకు నమోదు చేసిన సమాచారం కాపీ చేయబడుతుంది."</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"నా పరిచయాలకు కాపీ చేయి"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"నా పరిచయాలకి జోడించు"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"డైరెక్టరీ <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"అనుకూలం"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"సెట్టింగ్‌లు"</string>
+    <string name="menu_settings" msgid="377929915873428211">"సెట్టింగ్‌లు"</string>
+    <string name="menu_help" msgid="5123887102216637725">"సహాయం"</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="7356532842767854606">"సంవత్సరాన్ని అందించండి"</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="7911101713860139754">"ఖాతాకు సైన్ ఇన్ చేయి"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"పరిచయాలను దిగుమతి చేయి"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"కొత్త సమూహాన్ని సృష్టించండి"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"కొత్త సమూహాన్ని సృష్టించండి"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 సమూహం"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> సమూహాలు"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"సమూహం \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"ని తొలగించాలా? (పరిచయాలు వాటంతట అవే తొలగించబడవు.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> నుండి <xliff:g id="COUNT_0">%1$d</xliff:g> వ్యక్తి"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> నుండి <xliff:g id="COUNT_0">%1$d</xliff:g> మంది వ్యక్తులు"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> వ్యక్తి"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> మంది వ్యక్తులు"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"మరొకదానితో కలపడానికి ముందు పరిచయం పేరు టైప్ చేయండి."</string>
+    <string name="copy_text" msgid="3257145021583508761">"క్లిప్‌బోర్డ్‌కు కాపీ చేయి"</string>
+    <string name="set_default" msgid="4417505153468300351">"డిఫాల్ట్‌గా సెట్ చేయి"</string>
+    <string name="clear_default" msgid="7193185801596678067">"డిఫాల్ట్‌ను క్లియర్ చేయి"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"వచనం కాపీ చేయబడింది"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"మీ మార్పులను విస్మరించాలా?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"నా ప్రొఫైల్‌ను సెటప్ చేయి"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"వ్యక్తి పేరు టైప్ చేయండి"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"సమూహం పేరు"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"నా స్థానిక ప్రొఫైల్"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"నా <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ప్రొఫైల్"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"అన్ని పరిచయాలను ప్రదర్శిస్తోంది"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"పరిచయాలు Google ఖాతాతో మెరుగ్గా పని చేస్తాయి.\n\n• ఏదైనా వెబ్ బ్రౌజర్ నుండి ప్రాప్యత చేయండి.\n• మీ పరిచయాలను సురక్షితంగా బ్యాకప్ చేయండి."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"మీరు మీ ఫోన్‌ను పోగొట్టుకున్నప్పటికీ మీ పరిచయాలను సురక్షితంగా ఉంచుకోండి: ఆన్‌లైన్ సేవతో సమకాలీకరించండి."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ఖాతాను జోడించండి"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"మీ కొత్త పరిచయం బ్యాకప్ చేయబడదు. ఆన్‌లైన్‌లో పరిచయాలను బ్యాకప్ చేసే ఖాతాను జోడించాలా?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"మీ కొత్త పరిచయం <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>తో సమకాలీకరించబడుతుంది."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"మీరు క్రింది ఖాతాల్లో ఒకదానితో మీ కొత్త పరిచయాన్ని సమకాలీకరించవచ్చు. మీరు దేన్ని ఉపయోగించాలనుకుంటున్నారు?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"కొత్త పరిచయం చేర్చు"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"పరిచయాన్ని సవరించండి"</string>
+    <string name="keep_local" msgid="1258761699192993322">"స్థానికంగా ఉంచండి"</string>
+    <string name="add_account" msgid="8201790677994503186">"ఖాతాను జోడించు"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"కొత్త ఖాతాను జోడించు"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"డేటాబేస్ ఫైల్‌లను ఎగుమతి చేయి"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"కొత్త పరిచయాన్ని జోడించు"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"మరిన్ని చూడండి"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"తక్కువ చూడండి"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"అన్నీ చూడండి"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"ఇటీవలివి"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"పరిచయం"</string>
+    <string name="send_message" msgid="8938418965550543196">"సందేశాన్ని పంపండి"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"వ్యక్తిగత కాపీని సృష్టిస్తోంది..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"నిన్న"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"రేపు"</string>
+    <string name="today" msgid="8041090779381781781">"ఈ రోజు"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"ఈ రోజు <xliff:g id="TIME_INTERVAL">%s</xliff:g>కి"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"రేపు <xliff:g id="TIME_INTERVAL">%s</xliff:g>కి"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(శీర్షిక లేని ఈవెంట్)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"సెట్ చేయి"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"సంస్థ"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"మారుపేరు"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"గమనిక"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"వెబ్‌సైట్"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ఈవెంట్"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"సంబంధం"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"స్థానానికి వెళ్లడానికి దిశలు"</string>
+</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index e4c12c4..49436d8 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"บุคคล"</string>
+    <string name="people" msgid="1190841469952343354">"สมุดติดต่อ"</string>
     <string name="contactsList" msgid="8661624236494819731">"รายชื่อในสมุดโทรศัพท์"</string>
     <string name="shortcutContact" msgid="749243779392912958">"สมุดโทรศัพท์"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"โทรโดยตรง"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"เลือกหมายเลขที่จะโทร"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"เลือกหมายเลขที่จะส่งข้อความ"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"เลือกรายชื่อติดต่อ"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"เลือกผู้ติดต่อใหม่"</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="viewContactDesription" msgid="214186610887547860">"ดูรายชื่อในสมุดโทรศัพท์"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"แก้ไขรายชื่อในสมุดโทรศัพท์"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"สร้างรายชื่อ"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"แก้ไขกลุ่ม"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"วางบนหน้าจอหลัก"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"สมุดโทรศัพท์นี้มีข้อมูลจากหลายบัญชี ข้อมูลจากบัญชีแบบอ่านอย่างเดียวจะถูกซ่อนในรายการรายชื่อของคุณโดยไม่ถูกลบออก"</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"การลบสมุดโทรศัพท์นี้จะลบข้อมูลจากบัญชีแบบหลายรายการ"</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"รายชื่อนี้จะถูกลบ"</string>
-    <string name="menu_discard" msgid="6456087569315685632">"ยกเลิก"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"ยกเลิกการเปลี่ยนแปลง"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"ไม่มีรายชื่อติดต่อนี้"</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"เพิ่มวิดเจ็ตสมุดโทรศัพท์ในหน้าจอหลักแล้ว"</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"สร้างรายชื่อในสมุดโทรศัพท์ใหม่"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> รายชื่อติดต่อที่มีหมายเลขโทรศัพท์"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ไม่มีรายชื่อติดต่อที่มีหมายเลขโทรศัพท์"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 รายชื่อติดต่อ"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> รายชื่อติดต่อ"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"พบ 1 รายการ"</item>
     <item quantity="other" msgid="3852668542926965042">"พบ <xliff:g id="COUNT">%d</xliff:g> รายการ"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"พบ 1 รายการ"</item>
     <item quantity="other" msgid="7988132539476575389">"พบ <xliff:g id="COUNT">%d</xliff:g> รายการ"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"ที่อยู่ติดต่อทั้งหมด"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"กลุ่ม"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"รายชื่อทั้งหมด"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"รายการโปรด"</string>
     <string name="callBack" msgid="5498224409038809224">"ติดต่อกลับ"</string>
     <string name="callAgain" msgid="3197312117049874778">"โทรอีกครั้ง"</string>
     <string name="returnCall" msgid="8171961914203617813">"โทรกลับ"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"รายชื่อในสมุดโทรศัพท์ <xliff:g id="CURRENT_NUMBER">%s</xliff:g> จาก <xliff:g id="TOTAL_NUMBER">%s</xliff:g> รายการ"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"ชื่อของรายชื่อในสมุดโทรศัพท์ของคุณ"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"ไม่พบแอปพลิเคชันสำหรับการทำงานนี้"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"คลิกเพื่อกลับไปยังหน้าจอก่อนหน้า"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"เพิ่มหมายเลขโทรศัพท์"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"เพิ่มอีเมล"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ไม่พบแอปสำหรับการทำงานนี้"</string>
     <string name="menu_share" msgid="943789700636542260">"ใช้ร่วมกัน"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"เพิ่มในสมุดติดต่อ"</string>
     <string name="share_via" msgid="563121028023030093">"ใช้สมุดโทรศัพท์ร่วมกันทาง"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"สร้างกลุ่มภายในบัญชี"</string>
     <string name="audio_chat" msgid="2535716629358298691">"แชทด้วยเสียง"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"ใช้ภาพนี้"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"ไม่สามารถแก้ไขได้จากแอปพลิเคชันนี้"</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"ไม่มีข้อมูลเพิ่มเติมสำหรับรายชื่อติดต่อนี้"</string>
     <string name="group_read_only" msgid="1061762906115697637">"ไม่สามารถแก้ไขได้ในอุปกรณ์นี้"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"เรียงรายการตาม"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"ชื่อ"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"นามสกุล"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"ดูชื่อที่อยู่ติดต่อ"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"ขึ้นต้นด้วยชื่อ"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"ขึ้นต้นด้วยนามสกุล"</string>
     <string name="take_photo" msgid="7496128293167402354">"ถ่ายภาพ"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"ถ่ายภาพใหม่"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"เลือกรูปภาพจากแกลเลอรี"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"เลือกภาพใหม่จากแกลเลอรี"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"เลือกรูปภาพ"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"เลือกรูปภาพใหม่"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"กำลังอัปเดตรายการที่อยู่ติดต่อตามการเปลี่ยนภาษา"</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"กำลังอัปเดตรายการที่อยู่ติดต่อ"</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"กำลังดำเนินการอัปเกรดสมุดโทรศัพท์\n\nกระบวนการอัปเกรดจำเป็นต้องใช้พื้นที่ประมาณ <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB ของที่จัดเก็บข้อมูลภายใน\n\nเลือกหนึ่งในตัวเลือกต่อไปนี้:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"เพิ่มองค์กร"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"วันที่"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"ชื่อกลุ่ม"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"ผ่านทาง <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> ผ่านทาง <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"รายการโปรด"</string>
     <string name="edit_contact" msgid="7529281274005689512">"แก้ไขรายชื่อติดต่อ"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"กำลังสร้างสำเนาส่วนบุคคล..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"กำหนดเอง"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"การตั้งค่า"</string>
     <string name="menu_settings" msgid="377929915873428211">"การตั้งค่า"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"โปรไฟล์ในอุปกรณ์ของฉัน"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"โปรไฟล์ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ของฉัน"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"แสดงที่อยู่ติดต่อทั้งหมด"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"People ทำงานได้ดีกว่าหากมีบัญชี Google\n\n•เข้าถึงจากทุกเว็บเบราว์เซอร์\n•สำรองข้อมูลสมุดโทรศัพท์ของคุณอย่างปลอดภัย"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"คุณจะใช้งานที่อยู่ติดต่อได้ดีขึ้นโดยผ่านบัญชี Google\n\n• เข้าถึงได้จากเว็บเบราว์เซอร์ทุกชนิด\n• สำรองข้อมูลที่อยู่ติดต่อของคุณอย่างปลอดภัย"</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"เก็บที่อยู่ติดต่อของคุณไว้อย่างปลอดภัยด้วยการซิงค์กับบริการออนไลน์แม้ว่าคุณจะทำโทรศัพท์หาย"</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"เพิ่มบัญชี"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"ผู้ติดต่อใหม่ของคุณจะไม่ได้รับการสำรองข้อมูล เพิ่มบัญชีที่สำรองข้อมูลผู้ติดต่อออนไลน์หรือไม่"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"ผู้ติดต่อใหม่ของคุณจะซิงค์กับ <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>"</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"คุณสามารถซิงค์ผู้ติดต่อใหม่กับบัญชีใดบัญชีหนึ่งต่อไปนี้ได้ คุณต้องการใช้บัญชีใด"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"คุณสามารถซิงค์ผู้ติดต่อใหม่กับบัญชีใด บัญชีหนึ่งต่อไปนี้ได้ คุณต้องการใช้บัญชีใด"</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="contact_detail_picture_description" msgid="6083230522651287030">"ภาพ เลือกเพื่อเปลี่ยน"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"เพิ่มที่อยู่ติดต่อใหม่"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"ดูเพิ่มเติม"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"ดูน้อยลง"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"ดูทั้งหมด"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"ล่าสุด"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"เกี่ยวกับ"</string>
+    <string name="send_message" msgid="8938418965550543196">"ส่งข้อความ"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"กำลังสร้างสำเนาส่วนตัว..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"เมื่อวานนี้"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"พรุ่งนี้"</string>
+    <string name="today" msgid="8041090779381781781">"วันนี้"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"วันนี้เวลา <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"พรุ่งนี้เวลา <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g> <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(กิจกรรมไม่มีชื่อ)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"ตั้งค่า"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"องค์กร"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"ชื่อเล่น"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"โน้ต"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"เว็บไซต์"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"กิจกรรม"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"ความสัมพันธ์"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"เส้นทางไปยังสถานที่"</string>
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 1c81a74..25509d1 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Mga Tao"</string>
+    <string name="people" msgid="1190841469952343354">"Mga 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>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Pumili ng isang contact"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Pumili 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="viewContactDesription" msgid="214186610887547860">"Tingnan ang contact"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"I-edit ang contact"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Lumikha ng contact"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"I-edit ang pangkat"</string>
@@ -40,6 +40,8 @@
     <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">"Tanggalin"</string>
     <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Ilagay sa Home screen"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Naglalaman ang contact na ito ng impormasyon mula sa maramihang account. Itatago ang impormasyon mula sa mga account na read-only sa mga listahan ng iyong mga contact, hindi tatanggalin."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Tatanggalin ng pagtanggal sa account na ito ang impormasyon mula sa maramihang account."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Tatanggalin ang contact na ito."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Itapon"</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" msgid="7874133287558150877">"Idinagdag sa Home screen ang widget ng contact."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Lumikha ng bagong contact"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<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="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 contact"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> (na) contact"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 ang nakita"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> ang nakita"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 ang nakita"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> ang nakita"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Lahat ng contact"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Mga Pangkat"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Lahat contact"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Mga Paborito"</string>
     <string name="callBack" msgid="5498224409038809224">"Tumawag pabalik"</string>
     <string name="callAgain" msgid="3197312117049874778">"Tawagan muli"</string>
     <string name="returnCall" msgid="8171961914203617813">"Pabalik na tawag"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> ng <xliff:g id="TOTAL_NUMBER">%s</xliff:g> (na) contact"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Mga pangalan ng iyong mga contact"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Walang natagpuang app na mangangasiwa sa pagkilos na ito."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"I-click upang bumalik sa nakaraang screen"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Magdagdag ng numero ng telepono"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Magdagdag ng email"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Walang nakitang app na gagawa sa aksyong ito."</string>
     <string name="menu_share" msgid="943789700636542260">"Ibahagi"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Idagdag sa mga contact"</string>
     <string name="share_via" msgid="563121028023030093">"Ibahagi ang contact sa pamamagitan ng"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Lumikha ng pangkat sa ilalim ng account"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Voice chat"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Gamitin ang larawang ito"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Hindi maaaring i-edit mula sa app na ito."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Walang karagdagang impormasyon para sa contact na ito."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Hindi maaaring i-edit sa device na ito."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Pag-uri-uriin ang listahan ayon sa"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Pangalan"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Apelyido"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Tingnan ang mga pangalan ng contact"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Pangalan muna"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Apelyido muna"</string>
     <string name="take_photo" msgid="7496128293167402354">"Kumuha ng larawan"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Kumuha ng bagong larawan"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Pumili ng larawan mula sa Gallery"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Pumili ng bagong larawan mula sa Gallery"</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="locale_change_in_progress" msgid="7583992153091537467">"Ina-update ang listahan ng contact upang maipakita ang pagbabago ng wika."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Ina-update ang listahan ng contact."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Nasa proseso ng pag-upgrade ang mga contact. \n\nNangangailangan ng tinatayang <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB ng panloob na storage ang proseso ng pag-upgrade.\n\nPumili ng isa sa mga sumusunod na pagpipilian:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Magdagdag ng samahan"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Petsa"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Pangalan ng pangkat"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"sa pamamagitan ng <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> sa pamamagitan ng <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"paborito"</string>
     <string name="edit_contact" msgid="7529281274005689512">"I-edit ang Contact"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Lumilikha ng personal na kopya…"</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Custom"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Mga Setting"</string>
     <string name="menu_settings" msgid="377929915873428211">"Mga Setting"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Aking lokal na profile"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Aking <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> na profile"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Ipinapakita ang lahat ng contact"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Mas mahusay na nakakagawa ang mga tao gamit ang Google Account.\n\n• I-access ito mula sa anumang web browser.\n• I-back up nang secure ang iyong mga contact."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Mas mahusay na gumagana ang Mga Contact kapag may Google Account.\n\n• I-access mula sa anumang web browser.\n• Secure na i-back up ang iyong mga contact."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Panatilihing ligtas ang iyong mga contact kahit na mawala mo ang iyong telepono: mag-synchronize sa isang online na serbisyo."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Magdagdag ng account"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Hindi maba-back up ang iyong bagong contact. Magdagdag ng account na nagba-back up ng mga contact online?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Masi-synchronize ang iyong bagong contact sa <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Masi-synchronize mo ang iyong bagong contact sa isa sa iyong mga sumusunod na account. Alin ang gusto mong gamitin?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Dagdag bago contact"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"I-edit ang contact"</string>
     <string name="keep_local" msgid="1258761699192993322">"Panatilihing lokal"</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="contact_detail_picture_description" msgid="6083230522651287030">"Larawan. Piliin upang palitan"</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="6137651078366797938">"Gumagawa 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="content_description_directions" msgid="2686791825798189335">"mga direksyon sa lokasyon"</string>
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index dbe69bb..dc1eed9 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Kişiler"</string>
+    <string name="people" msgid="1190841469952343354">"Kişiler"</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>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Bir kişi seçin"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Yeni kişi seçin"</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="viewContactDesription" msgid="214186610887547860">"Kişiyi görüntüle"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Kişiyi düzenle"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Kişi oluştur"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Grubu düzenle"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Ana ekrana yerleştir"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Bu kişi birden fazla hesaptan bilgiler içeriyor. Salt okunur hesaplardaki bilgiler silinmez, kişiler listelerinizde gizlenir."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Bu kişiyi silmek, birden fazla hesaba ait bilgileri de siler."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Bu kişi silinecek."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"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" msgid="7874133287558150877">"Kişi widget\'ı Ana ekranınıza eklendi."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Yeni kişi oluştur"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"Telefon numarası olan <xliff:g id="COUNT">%d</xliff:g> kişi"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Telefon numarası olan hiçbir kişi yok"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 kişi"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> kişi"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 kişi bulundu"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> kişi bulundu"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"1 kişi bulundu"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> kişi bulundu"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Tüm kişiler"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Gruplar"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Tüm kişiler"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoriler"</string>
     <string name="callBack" msgid="5498224409038809224">"Geri ara"</string>
     <string name="callAgain" msgid="3197312117049874778">"Tekrar çağrı yap"</string>
     <string name="returnCall" msgid="8171961914203617813">"Geri ara"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"Toplam <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kişiden <xliff:g id="CURRENT_NUMBER">%s</xliff:g> kişi"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Kişilerinizin adları"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Bu işlemi gerçekleştirecek uygulama bulunamadı."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Önceki ekrana dönmek için tıklayın"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Telefon numarası ekle"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"E-posta adresi ekle"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Bu işlemi gerçekleştirecek uygulama bulunamadı."</string>
     <string name="menu_share" msgid="943789700636542260">"Paylaş"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Kişilere ekle"</string>
     <string name="share_via" msgid="563121028023030093">"Şunu kullanarak kişi paylaş:"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Grubu şu hesabın altında oluştur:"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Sesli sohbet"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Bu fotoğrafı kullan"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Bu uygulamadan düzenlenemez."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Bu kişi için ek bilgi yok."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Bu cihazda düzenlenemez."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Listeyi şu ölçüte göre sırala:"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Adı"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Soyadı"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Kişi adlarını görüntüle"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Önce adı"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Önce soyadı"</string>
     <string name="take_photo" msgid="7496128293167402354">"Fotoğraf çek"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Yeni fotoğraf çek"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Galeri\'den fotoğraf seçin"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Galeri\'den yeni fotoğraf seç"</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="locale_change_in_progress" msgid="7583992153091537467">"Kişi listesi, dil değişikliğini yansıtmak üzere güncelleniyor."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Kişi listesi güncelleniyor."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Kişiler yeni sürüme geçiriliyor. \n\nYeni sürüme geçirme işlemi yaklaşık <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB dahili depolama alanı gerektirir.\n\nAşağıdaki seçeneklerden birini belirleyin:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Kuruluş ekle"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Tarih"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Grup adı"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> aracılığıyla"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="SOURCE">%2$s</xliff:g> üzerinden şu saatte: <xliff:g id="DATE">%1$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"favori"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Kişiyi düzenle"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Kişisel kopya oluşturuluyor..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Özel"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Ayarlar"</string>
     <string name="menu_settings" msgid="377929915873428211">"Ayarlar"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Yerel profilim"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profilim"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Tüm içerik görüntüleniyor"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Kişi Arama bir Google Account hesabıyla daha iyi çalışır.\n\n• Kişi Arama\'ya Herhangi bir tarayıcıdan erişin.\n• Kişilerinizi güvenli bir şekilde yedekleyin."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Kişiler bir Google Hesabıyla daha iyi çalışır.\n\n• Herhangi bir tarayıcıdan erişin.\n• Kişilerinizi güvenli bir şekilde yedekleyin."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Telefonunuzu kaybetseniz dahi kişilerinizi güvenle saklayın: çevrimiçi bir hizmetle senkronize edin."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Hesap ekleyin"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Yeni kişiniz yedeklenmeyecek. Kişileri çevrimiçi olarak yedekleyen bir hesap eklensin mi?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Yeni kişiniz <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ile senkronize edilecek."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Yeni kişinizi aşağıdaki hesaplardan biriyle senkronize edebilirsiniz. Hangisini kullanmak istersiniz?"</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="keep_local" msgid="1258761699192993322">"Yerel olarak sakla"</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="contact_detail_picture_description" msgid="6083230522651287030">"Resim. Değiştirmek için seçin"</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="6137651078366797938">"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="content_description_directions" msgid="2686791825798189335">"konum için yol tarifleri"</string>
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 75cf635..69f4886 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Люди"</string>
+    <string name="people" msgid="1190841469952343354">"Контакти"</string>
     <string name="contactsList" msgid="8661624236494819731">"Контакти"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Контакт"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Прямий набір"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Вибір номера для виклику"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Вибір номера для надс. повід."</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Вибрати контакт"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Вибрати новий контакт"</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="viewContactDesription" msgid="214186610887547860">"Див. контакт"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Редаг. контакт"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Створити контакт"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Редагувати групу"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Місце на головному екрані"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Цей контакт містить інфор-цію з декількох обл. записів. Інф-цію із записів лише для читання буде сховано у ваших списках контактів, а не видалено."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Якщо видал. цей контакт, буде видалено інф-ю з декількох обл. записів."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Цей контакт буде видалено."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Відхилити"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Відхилити зміни"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Контакт не існує."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Віджет контакта додано на головний екран."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Створ. новий контакт"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"Контактів із номерами тел.: <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Немає контактів з номерами телефону"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 контакт"</item>
-    <item quantity="other" msgid="3578469907265375314">"Контактів: <xliff:g id="COUNT">%d</xliff:g>"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"Знайдено 1"</item>
     <item quantity="other" msgid="3852668542926965042">"Знайдено <xliff:g id="COUNT">%d</xliff:g>"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"Знайдено 1"</item>
     <item quantity="other" msgid="7988132539476575389">"Знайдено <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Усі контакти"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Групи"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Усі контакти"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Вибране"</string>
     <string name="callBack" msgid="5498224409038809224">"Передзвонити"</string>
     <string name="callAgain" msgid="3197312117049874778">"Набрати знову"</string>
     <string name="returnCall" msgid="8171961914203617813">"Зворот. виклик"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> із <xliff:g id="TOTAL_NUMBER">%s</xliff:g> контактів"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Імена ваших контактів"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Не знайдено програму для обробки цієї дії."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Натисніть, щоб повернутися на попередній екран"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Додайте номер телефону"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Додайте електронну адресу"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Не знайдено програму для обробки цієї дії."</string>
     <string name="menu_share" msgid="943789700636542260">"Надісл."</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Додати в контакти"</string>
     <string name="share_via" msgid="563121028023030093">"Надісл. контакт через"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Створити групу в обліковому записі"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Голосовий чат"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Викор. це фото"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"З цієї програми неможливо редагувати."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Немає додаткової інформації для цього контакта."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Неможливо редагувати на цьому пристрої"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Сорт. список за"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Ім\'я"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Прізвище"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Переглянути імена контактів"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Спочатку ім\'я"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Спочатку прізвище"</string>
     <string name="take_photo" msgid="7496128293167402354">"Зробити фото"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Зробити нове фото"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Вибрати фото з галереї"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Вибрати нове фото з Галереї"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Вибрати фото"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Вибрати нове фото"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Список контактів оновлено для відображення зміни мови."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Список контактів оновлюється."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Контакти проходять процес оновлення. \n\nДля процесу оновлення потрібно приблизно <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> Мб внутрішньої пам’яті.\n\nВиберіть один із поданих нижче варіантів."</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Додати організацію"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Дата"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Назва групи"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"через <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> через <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"вибране"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Редаг. контакта"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Створення особистої копії..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Спеціальні"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Налаштування"</string>
     <string name="menu_settings" msgid="377929915873428211">"Налаштування"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Мій локальний профіль"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Мій профіль на <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Відображаються всі контакти"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Програма \"Люди\" пропонує більше можливостей, якщо у вас є обліковий запис Google.\n\n•Отримуйте доступ із будь-якого веб-переглядача\n•Створюйте надійні резервні копії своїх контактів"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Додаток Контакти корисніший, якщо у вас є обліковий запис Google.\n\n• Відкривайте в будь-якому веб-переглядачі.\n• Автоматично завантажуйте контакти."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Збережіть свої контакти на випадок втрати свого телефону: синхронізуйте їх з онлайновою службою."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Додати обліковий запис"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Для вашого нового контакта не буде створено резервні копії. Додати обліковий запис, у якому буде збережено резервні копії контактів в Інтернеті?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Новий контакт буде синхронізовано з обліковим записом <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Свій новий контакт можна синхронізувати з одним з указаних нижче облікових записів. Який із них використати?"</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="contact_detail_picture_description" msgid="6083230522651287030">"Зображення. Виберіть, щоб змінити"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"додати нового контакта"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Показати більше"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Показати менше"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Показати все"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Остання підказка"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Інформація"</string>
+    <string name="send_message" msgid="8938418965550543196">"Надіслати повідомлення"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Створення особистої копії…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Учора"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Завтра"</string>
+    <string name="today" msgid="8041090779381781781">"Сьогодні"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Сьогодні о <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Завтра о <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Подія без назви)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Установити"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"Чат"</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="content_description_directions" msgid="2686791825798189335">"маршрути до місця"</string>
 </resources>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
new file mode 100644
index 0000000..3e191c0
--- /dev/null
+++ b/res/values-ur-rPK/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"رابطے"</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="contactPickerActivityTitle" msgid="4301062192337417640">"ایک رابطہ منتخب کریں"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"نیا رابطہ منتخب کریں"</string>
+    <string name="starredList" msgid="4817256136413959463">"ستارے کے نشان والے"</string>
+    <string name="frequentList" msgid="7154768136473953056">"اکثر"</string>
+    <string name="strequentList" msgid="5640192862059373511">"پسندیدہ"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"رابطہ کی تفصیلات"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"رابطہ میں ترمیم کریں"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"رابطہ بنائیں"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"گروپ میں ترمیم کریں"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"گروپ بنائیں"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"تفصیل"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"اپ ڈیٹس"</string>
+    <string name="searchHint" msgid="8482945356247760701">"رابطے تلاش کریں"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"رابطہ دیکھیں"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"پسندیدہ میں شامل کریں"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"پسندیدہ سے ہٹائیں"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"پسندیدہ سے ہٹا دیا گیا"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"پسندیدہ میں شامل کر دیا گیا"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"ترمیم کریں"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"حذف کریں"</string>
+    <string name="menu_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="8368636463748691868">"الگ کریں"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"ترمیم کریں"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"حذف کریں"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"رابطہ شامل کریں"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"گروپ شامل کریں"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"رابطہ الگ کریں؟"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"یہ رابطہ متعدد رابطوں میں الگ کیا جائے گا۔"</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"ملائیں"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"رابطوں کو ملائیں"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"<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="7208148163607047389">"رابطے ملا دیے گئے"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"رنگ ٹون طے کریں"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"صوتی میل پر سبھی کالیں"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"آپ صرف پڑھنے کے اکاؤنٹس سے رابطوں کو حذف نہیں کر سکتے ہیں لیکن آپ اپنے رابطوں کی فہرست میں انہیں چھپا سکتے ہیں۔"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"یہ رابطہ متعدد اکاؤنٹس کی معلومات پر مشتمل ہے۔ صرف پڑھنے کے اکاؤنٹس کی معلومات آپ کے رابطوں کی فہرست میں چھپا دی جائیں گی، حذف نہیں ہوں گی۔"</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"یہ رابطہ حذف کرنے سے متعدد اکاؤنٹس کی معلومات حذف ہوجائے گی۔"</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"یہ رابطہ حذف ہوجائے گا۔"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"تبدیلیاں رد کریں"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"رابطہ موجود نہیں ہے۔"</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"رابطہ کا ویجٹ ہوم اسکرین میں شامل ہوگیا۔"</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"نیا رابطہ بنائیں"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"نیا رابطہ بنائیں"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"تنظیم"</item>
+    <item msgid="7196592230748086755">"نوٹ"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ٹیبلٹ پر کوئی تصاویر دستیاب نہیں ہیں۔"</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"فون پر کوئی تصاویر دستیاب نہیں ہیں۔"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"رابطہ کی تصویر"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"حسب ضرورت لیبل کا نام"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"کالیں براہ راست صوتی میل کو بھیجیں"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"تصویر ہٹائیں"</string>
+    <string name="noContacts" msgid="8579310973261953559">"کوئی رابطے نہیں ہیں۔"</string>
+    <string name="noGroups" msgid="8614664663561385253">"کوئی گروپس نہیں ہیں۔"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"گروپس بنانے کیلئے آپ کو ایک اکاؤنٹ درکار ہے۔"</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"اس گروپ میں کوئی لوگ نہیں ہیں۔"</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"کچھ شامل کرنے کیلئے، گروپ میں ترمیم کریں۔"</string>
+    <string name="savingContact" msgid="4075751076741924939">"رابطہ محفوظ ہو رہا ہے…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"رابطہ محفوظ ہوگیا۔"</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"رابطہ میں تبدیلیاں محفوظ نہیں ہوسکیں۔"</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"گروپ محفوظ ہوگیا۔"</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"گروپ میں تبدیلیوں کو محفوظ نہیں کرسکا۔"</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"فون نمبر کے ساتھ 1 رابطہ"</item>
+    <item quantity="other" msgid="3299954047880968205">"فون نمبروں کے ساتھ <xliff:g id="COUNT">%d</xliff:g> رابطے"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"فون نمبروں کے ساتھ کوئی رابطے نہیں ہیں"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 ملا"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> ملے"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"کوئی رابطے نہیں ہیں"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 ملا"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> ملے"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"سبھی رابطے"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"پسندیدہ"</string>
+    <string name="callBack" msgid="5498224409038809224">"واپس کال کریں"</string>
+    <string name="callAgain" msgid="3197312117049874778">"دوبارہ کال کریں"</string>
+    <string name="returnCall" msgid="8171961914203617813">"کال لوٹائیں"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" کو رابطوں میں شامل کریں؟"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"رابطہ کی تصویر"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"پلس"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> از <xliff:g id="TOTAL_NUMBER">%s</xliff:g> رابطے"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"آپ کے رابطوں کے نام"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"اس کارروائی کو نمٹانے کیلئے کوئی ایپ نہیں ملا۔"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"سابقہ اسکرین پر واپس جانے کیلئے کلک کریں"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"فون نمبر شامل کریں"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ای میل شامل کریں"</string>
+    <string name="missing_app" msgid="1466111003546611387">"اس کارروائی کو نمٹانے کیلئے کوئی ایپ نہیں ملا۔"</string>
+    <string name="menu_share" msgid="943789700636542260">"اشتراک کریں"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"رابطوں میں شامل کریں"</string>
+    <string name="share_via" msgid="563121028023030093">"رابطہ کا اشتراک کریں معرفت"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"اکاؤنٹ کے تحت گروپ بنائیں"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"صوتی چیٹ"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ویڈیو چیٹ"</string>
+    <string name="connections" msgid="8098440723172028350">"کنکشنز"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"کنکشن شامل کریں"</string>
+    <string name="recent" msgid="2659189233141493004">"حالیہ"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"حالیہ اپ ڈیٹس"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> رابطہ"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"یہ تصویر استعمال کریں"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"اس ایپ سے قابل ترمیم نہیں ہے۔"</string>
+    <string name="group_read_only" msgid="1061762906115697637">"اس آلہ پر قابل ترمیم نہیں ہے۔"</string>
+    <string name="take_photo" msgid="7496128293167402354">"تصویر لیں"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"نئی تصویر لیں"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"تصویر منتخب کریں"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"نئی تصویر منتخب کریں"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"زبان کی تبدیلی کی عکاسی کرنے کیلئے رابطہ کی فہرست اپ ڈیٹ کی جا رہی ہے۔"</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"رابطہ کی فہرست اپ ڈیٹ ہو رہی ہے۔"</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"‏رابطوں کو اپ گریڈ کرنے کی کارروائی ہو رہی ہے۔ \n\nاپ گریڈ کی کارروائی کیلئے تقریبا <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB داخلی اسٹوریج درکار ہے۔\n\nدرج ذیل اختیارات میں سے ایک منتخب کریں۔"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"کچھ ایپلیکیشنز ان انسٹال کریں"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"اپ گریڈ کرنے کی دوبارہ کوشش کریں"</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_field" msgid="2384260056674995230">"دوسری فیلڈ شامل کریں"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"نیا شامل کریں"</string>
+    <string name="add_organization" msgid="7311893231158291197">"تنظیم شامل کریں"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"تاریخ"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"گروپ کا نام"</string>
+    <string name="description_star" msgid="2605854427360036550">"پسندیدہ"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"رابطہ میں ترمیم کریں"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"ضم نہیں ہے"</item>
+    <item quantity="other" msgid="425683718017380845">"<xliff:g id="COUNT">%0$d</xliff:g> مآخذ سے ضم کیا گیا"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"موجودہ رابطہ کو منتخب کردہ رابطہ کے ساتھ ملائیں؟"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"منتخب کردہ رابطہ میں ترمیم کرنے کیلئے سوئچ کریں؟ اب تک آپ کی درج کردہ معلومات کاپی ہوجائے گی۔"</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"میرے رابطے میں کاپی کریں"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"میرے رابطوں میں شامل کریں"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"ڈائریکٹری <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"حسب ضرورت"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"ترتیبات"</string>
+    <string name="menu_settings" msgid="377929915873428211">"ترتیبات"</string>
+    <string name="menu_help" msgid="5123887102216637725">"مدد"</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="7356532842767854606">"ایک سال فراہم کریں"</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="7911101713860139754">"ایک اکاؤنٹ میں سائن ان کریں"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"رابطے درآمد کریں"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"نیا گروپ بنائیں"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"نیا گروپ بنائیں"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 گروپ"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> گروپس"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"گروپ \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" کو حذف کریں؟ (رابطے بذات خود حذف نہیں ہوں گے۔)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> سے <xliff:g id="COUNT_0">%1$d</xliff:g> شخص"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> سے <xliff:g id="COUNT_0">%1$d</xliff:g> لوگ"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> شخص"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> لوگ"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"دوسرے کے ساتھ ملانے سے پہلے رابطہ کا نام ٹائپ کریں۔"</string>
+    <string name="copy_text" msgid="3257145021583508761">"کلپ بورڈ میں کاپی کریں"</string>
+    <string name="set_default" msgid="4417505153468300351">"ڈیفالٹ طے کریں"</string>
+    <string name="clear_default" msgid="7193185801596678067">"ڈیفالٹ کو صاف کریں"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"متن کاپی ہوگیا"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"اپنی تبدیلیاں مسترد کریں؟"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"میرا پروفائل ترتیب دیں"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"شخص کا نام ٹائپ کریں"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"گروپ کا نام"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"میرا مقامی پروفائل"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"میرا <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> پروفائل"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"سبھی رابطے ڈسپلے کر رہا ہے"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"‏رابطے Google اکاؤنٹ کے ساتھ بہتر کام کرتے ہیں۔\n\n• کسی بھی ویب براؤزر سے رسائی حاصل کریں۔\n• محفوظ طریقے سے اپنے رابطوں کا بیک اپ لیں۔"</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"اپنے رابطوں کو محفوظ رکھیں اگرچہ آپ کا فون کھو جائے: ایک آن لائن سروس کے ساتھ مطابقت پذیر بنائیں۔"</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ایک اکاؤنٹ شامل کریں"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"آپ کے نئے رابطے کا بیک اپ نہیں لیا جائے گا۔ ایک ایسا اکاؤنٹ شامل کریں جو رابطوں کا آن لائن بیک اپ لیتا ہے؟"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"آپ کا نیا رابطہ <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> کے ساتھ مطابق پذیر ہوجائے گا۔"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"آپ درج ذیل اکاؤنٹس میں سے ایک کے ساتھ اپنا نیا رابطہ مطابقت پذیر بنا سکتے ہیں۔ آپ کس کو استعمال کرنا چاہتے ہیں؟"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"نیا رابطہ شامل کریں"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"رابطہ میں ترمیم کریں"</string>
+    <string name="keep_local" msgid="1258761699192993322">"مقامی رکھیں"</string>
+    <string name="add_account" msgid="8201790677994503186">"اکاؤنٹ شامل کریں"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"نیا اکاؤنٹ شامل کریں"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"ڈیٹا بیس فائلیں برآمد کریں"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"نیا رابطہ شامل کریں"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"مزید دیکھیں"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"کم دیکھیں"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"سبھی دیکھیں"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"حالیہ"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"تفصیل"</string>
+    <string name="send_message" msgid="8938418965550543196">"پیغام بھیجیں"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"ایک ذاتی کاپی بنائی جا رہی ہے…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"گزشتہ کل"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"آئندہ کل"</string>
+    <string name="today" msgid="8041090779381781781">"ﺁﺝ"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"آج بوقت <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"کل بوقت <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(بلا عنوان ایونٹ)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"سیٹ کریں"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"تنظیم"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"عرفی نام"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"نوٹ"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"ویب سائٹ"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ایونٹ"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"رشتہ"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"مقام کیلئے ڈائریکشنز"</string>
+</resources>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
new file mode 100644
index 0000000..425fe35
--- /dev/null
+++ b/res/values-uz-rUZ/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"Kontaktlar"</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">"Kontakt yorlig‘ini 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="contactPickerActivityTitle" msgid="4301062192337417640">"Kontaktni tanlang"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Yangi kontakt tanlash"</string>
+    <string name="starredList" msgid="4817256136413959463">"Baho berilgan"</string>
+    <string name="frequentList" msgid="7154768136473953056">"Ko‘p gaplashilgan"</string>
+    <string name="strequentList" msgid="5640192862059373511">"Saralar"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"Kontakt tafsilotlari"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"Kontaktni tahrirlash"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"Kontakt yaratish"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"Guruhni tahrirlash"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"Guruh yaratish"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"Haqida"</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_create_contact_shortcut" msgid="1217971915748509640">"Uy ekraniga joylashtirish"</string>
+    <string name="menu_call" msgid="3992595586042260618">"Kontaktga qo‘ng‘iroq qilish"</string>
+    <string name="menu_sendSMS" msgid="5535886767547006515">"Kontaktga xabar jo‘natish"</string>
+    <string name="menu_splitAggregate" msgid="8368636463748691868">"Alohida"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"Tahrirlash"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"O‘chirish"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Kontakt qo‘shish"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Guruh qo‘shish"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"Kontakt ajratilsinmi?"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"Ushbu kontakt bir nechta kontaktlarga ajratiladi."</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"Qo‘shish"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Kontaktlarni birlashtirish"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"<xliff:g id="NAME">%s</xliff:g>ga qo‘shishni xohlagan kontaktingizni tanlang:"</string>
+    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Barcha kontaktlarni ko‘rsatish"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Tavsiya qilingan kontaktlar"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Barcha kontaktlar"</string>
+    <string name="contactsJoinedMessage" msgid="7208148163607047389">"Kontaktlar birlashtirildi"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Qo‘ng‘iroq ohangini o‘rnatish"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Barcha qo‘n-lar ovozli xabarga"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"Faqat o‘qishga ruxsat etilgan hisoblar kontaktlarini o‘chira olmaysiz, ammo ularni kontaktlaringiz ro‘yxatida ko‘rinmaydigan qila olasiz."</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Ushbu kontaktda bir nechta hisoblardan ma’lumotlar jamlangan. Faqat o‘qishga ruxsat etilgan hisoblar ma’lumoti kontaktlar ro‘yxatingizda ko‘rinmay qoladi, lekin o‘chirilmaydi."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Ushbu kontaktni o‘chirish bir nechta hisoblardagi ma’lumotlarni o‘chiradi."</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"Ushbu kontakt o‘chiriladi."</string>
+    <string name="menu_discard" msgid="6854657936970228164">"O‘zgarishlarni bekor qilish"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt mavjud emas."</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"Kontakt vidjeti \"Uy\" ekraniga qo‘shildi."</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Yangi kontakt yaratish"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"Yangi kontakt yaratish"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"Tashkilot"</item>
+    <item msgid="7196592230748086755">"Eslatma"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Planshetda rasmlar mavjud emas."</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Telefonda rasmlar mavjud emas."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontakt surati"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Maxsus belgi nomi"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Qo‘ng‘iroqlarni to‘g‘ridan to‘g‘ri ovozli xabarga jo‘natish"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Suratni o‘chirish"</string>
+    <string name="noContacts" msgid="8579310973261953559">"Kontaktlar yo‘q."</string>
+    <string name="noGroups" msgid="8614664663561385253">"Guruhlar yo‘q."</string>
+    <string name="noAccounts" msgid="7768267764545265909">"Guruh yaratish uchun hisobingiz bo‘lishi kerak."</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"Ushbu guruhda odam yo‘q."</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"Bir nechtani qo‘shish uchun guruhni tahrirlang."</string>
+    <string name="savingContact" msgid="4075751076741924939">"Kontakt saqlanmoqda…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"Kontakt saqlandi."</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Kontakt o‘zgarishlari saqlanmadi."</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"Guruh saqlandi."</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Guruh o‘zgarishlarini saqlab bo‘lmadi."</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"1 ta kontakt telefon raqami bilan"</item>
+    <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> ta kontakt telefon raqamlari bilan"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Telefon raqamlari bor kontaktlar yo‘q"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"1 ta topildi"</item>
+    <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> ta topildi"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Kontaktlar yo‘q"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"1 ta topildi"</item>
+    <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> ta topildi"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Barcha kontaktlar"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Sevimlilar"</string>
+    <string name="callBack" msgid="5498224409038809224">"Teskari 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">"Elektron pochta qo\'shish"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Ushbu amalni bajarish uchun ilova topilmadi."</string>
+    <string name="menu_share" msgid="943789700636542260">"Ulashish"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Kontaktlarga qo‘shish"</string>
+    <string name="share_via" msgid="563121028023030093">"Kontakni bu orqali ulashish:"</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"Hisob ostida guruh yaratish"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Ovozli suhbat"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Video suhbat"</string>
+    <string name="connections" msgid="8098440723172028350">"Ulanishlar"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"Aloqa qo‘shish"</string>
+    <string name="recent" msgid="2659189233141493004">"So‘nggi"</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> ta kontakt"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"Ushbu suratdan foydalaning"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"Ushbu ilova orqali tahrirlab bo‘lmaydi."</string>
+    <string name="group_read_only" msgid="1061762906115697637">"Ushbu qurilmada tahrir qilib bo‘lmaydi."</string>
+    <string name="take_photo" msgid="7496128293167402354">"Suratga olish"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Yangi surat olish"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Surat tanlang"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Yangi suratni tanlang"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"Til o‘zgarishlarini aks ettirish uchun kontakt ro‘yxati yangilanmoqda."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"Kontakt ro‘yxati yangilanmoqda."</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Kontaktlarni yangilash jarayoni boshlangan. \n\nYangilash jarayoni taxminan <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB ichki xotiradan joy talab qiladi.\n\nQuyidagilardan birini tanlang:"</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Bir nechta ilovalarni o‘chiring"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Yangilash uchun yana urinib ko‘ring"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Qidirmoqda…"</string>
+    <string name="menu_display_selected" msgid="6470001164297969034">"Tanlanganni ko‘rsatish"</string>
+    <string name="menu_display_all" msgid="8887488642609786198">"Barchasini ko‘rsatish"</string>
+    <string name="menu_select_all" msgid="621719255150713545">"Barchasini tanlash"</string>
+    <string name="menu_select_none" msgid="7093222469852132345">"Barcha tanlashlarni bekor qilish"</string>
+    <string name="add_field" msgid="2384260056674995230">"Boshqa maydon qo‘shish"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Yangisini qo‘shish"</string>
+    <string name="add_organization" msgid="7311893231158291197">"Tashkilot qo‘shish"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Sana"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Guruh nomi"</string>
+    <string name="description_star" msgid="2605854427360036550">"ajratilgan"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"Kontaktni tahrirlash"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"birlashtirilmagan"</item>
+    <item quantity="other" msgid="425683718017380845">"<xliff:g id="COUNT">%0$d</xliff:g> ta manbadan birlashtirilgan"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"Joriy kontakt tanlangan kontaktga qo‘shilsinmi?"</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 nusxa ko‘chirish"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"Kontaktlarimga qo‘shish"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Direktoriya <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"Boshqa"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Sozlamalar"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Sozlamalar"</string>
+    <string name="menu_help" msgid="5123887102216637725">"Yordam"</string>
+    <string name="preference_displayOptions" msgid="1341720270148252393">"Ko‘rsatish sozlamalari"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Telefon raqami"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Kontaktlarga qo‘shish"</string>
+    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Kontaktlarga qo‘shish"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Yopish"</string>
+    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
+    <string name="date_year_toggle" msgid="7356532842767854606">"Yilini keltirish"</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 hisob yarating"</string>
+    <string name="contacts_unavailable_add_account" msgid="7911101713860139754">"Hisobingizga kiring"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Kontaktlarni import qilish"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"Yangi guruh yaratish"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"Yangi guruh yaratish"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 ta guruh"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> ta guruh"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" guruhi o‘chirilsinmi? (Kontaktlarning o‘zi o‘chirilmaydi.)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>dan <xliff:g id="COUNT_0">%1$d</xliff:g> ta odam"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g>dan <xliff:g id="COUNT_0">%1$d</xliff:g> ta odam"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> ta odam"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> ta odam"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"Boshqasiga qo‘shishdan oldin kontakt nomini yozing."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Vaqtinchalik xotiraga nusxa ko‘chirish"</string>
+    <string name="set_default" msgid="4417505153468300351">"Standart sifatida o‘rnatish"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Standartni tozalash"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Matndan nuxsa olindi"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"O‘zgartirishlar bekor qilinsinmi?"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"Profilimni moslash"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"Shaxsning ismini yozing"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"Guruhning nomi"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Mening qurilmadagi profilim"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Mening <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profilim"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Barcha kontaktlar ko‘rsatilmoqda"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Kontaktlar Google hisobi bilan yaxshi ishlaydi.\n\n• Xohlagan veb-brauzerdan kirishingiz mumkin.\n• Kontaktlaringizni nusxasini xavfsiz joyga zaxiralang."</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Onlayn xizmat yordamida sinxronlab, telefoningiz yo‘qolganda ham kontaktlaringizni saqlab qoling."</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Hisob qo‘shish"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Yangi kontaktingiz zaxiralanmaydi. Kontaktlarni onlayn zaxiralash uchun hisob qo‘shilsinmi?"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Yangi kontaktingiz <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> bilan sinxronlanadi."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Yangi kontaktlaringizni quyidagi hisoblar bilan sinxronlashingiz mumkin. Qaysi biridan foydalanmoqchisiz?"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Kontakt qo‘shish"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Kontaktni tahrirlash"</string>
+    <string name="keep_local" msgid="1258761699192993322">"Qurilmada saqlash"</string>
+    <string name="add_account" msgid="8201790677994503186">"Hisob qo‘shish"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Yangi hisob qo‘shish"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Ma’lumotlar bazasi fayllarini eksport qilish"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"yangi kontakt qo‘shish"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ko‘proq"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Kamroq"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Barchasini ko‘rish"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"So‘nggi"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Ma’lumot"</string>
+    <string name="send_message" msgid="8938418965550543196">"Xabar yuborish"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Shaxsiy nusxasi yaratilmoqda…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"Kecha"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Ertaga"</string>
+    <string name="today" msgid="8041090779381781781">"Bugun"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Bugun <xliff:g id="TIME_INTERVAL">%s</xliff:g> da"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Ertaga <xliff:g id="TIME_INTERVAL">%s</xliff:g> da"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Nomsiz tadbir)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"O‘rnatish"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"Tezkor xabar (IM)"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Tashkilot"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Taxallus"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Qayd"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Veb-sayt"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Tadbir"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Aloqadorlik"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"manzilga yo\'nalishlar"</string>
+</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 05bd499..683a406 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Danh bạ"</string>
+    <string name="people" msgid="1190841469952343354">"Danh bạ"</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>
@@ -25,11 +25,11 @@
     <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="contactPickerActivityTitle" msgid="4301062192337417640">"Chọn địa chỉ liên hệ"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Chọn 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">"Mục ưa thích"</string>
     <string name="viewContactTitle" msgid="7989394521836644384">"Chi tiết liên hệ"</string>
-    <string name="viewContactDesription" msgid="214186610887547860">"Xem liên hệ"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Chỉnh sửa liên hệ"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Tạo liên hệ"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Chỉnh sửa nhóm"</string>
@@ -40,6 +40,8 @@
     <string name="menu_viewContact" msgid="2795575601596468581">"Xem liên hệ"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Thêm vào mục ư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_create_contact_shortcut" msgid="1217971915748509640">"Đặt trên màn hình chính"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Liên hệ này chứa thông tin từ nhiều tài khoản. Thông tin từ các tài khoản ở chế độ chỉ đọc sẽ bị ẩn trong danh sách liên hệ của bạn, chứ không bị xóa."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Xóa liên hệ này sẽ xóa thông tin khỏi nhiều tài khoản."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Liên hệ này sẽ bị xóa."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Hủy bỏ"</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" msgid="7874133287558150877">"Đã thêm tiện ích liên hệ vào Màn hình chính."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Tạo liên hệ mới"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> 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="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 địa chỉ liên hệ"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> địa chỉ liên hệ"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"Đã tìm thấy 1"</item>
     <item quantity="other" msgid="3852668542926965042">"Đã tìm thấy <xliff:g id="COUNT">%d</xliff:g>"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"Đã tìm thấy 1"</item>
     <item quantity="other" msgid="7988132539476575389">"Đã tìm thấy <xliff:g id="COUNT">%d</xliff:g>"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Tất cả liên hệ"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Nhóm"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Tất cả liên hệ"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Mục yêu thích"</string>
     <string name="callBack" msgid="5498224409038809224">"Gọi lại"</string>
     <string name="callAgain" msgid="3197312117049874778">"Gọi lại"</string>
     <string name="returnCall" msgid="8171961914203617813">"Gọi lại"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> trong tổng số <xliff:g id="TOTAL_NUMBER">%s</xliff:g> liên hệ"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Tên danh bạ của bạn"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"Không tìm thấy ứng dụng nào để xử lý tác vụ này."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Nhấp để quay lại màn hình trước đó"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Thêm số điện thoại"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Thêm email"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Không tìm thấy ứng dụng nào để xử lý tác vụ này."</string>
     <string name="menu_share" msgid="943789700636542260">"Chia sẻ"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Thêm vào danh bạ"</string>
     <string name="share_via" msgid="563121028023030093">"Chia sẻ liên hệ qua"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Tạo nhóm trong tài khoản"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Trò chuyện thoại"</string>
@@ -133,20 +136,13 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Sử dụng ảnh này"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Không chỉnh sửa được từ ứng dụng này."</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Không có thông tin bổ sung nào cho địa chỉ liên hệ này."</string>
     <string name="group_read_only" msgid="1061762906115697637">"Không chỉnh sửa được trên thiết bị này."</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Sắp xếp danh sách theo"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Tên"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Họ"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Xem tên liên hệ"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Tên trước tiên"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Họ trước tiên"</string>
     <string name="take_photo" msgid="7496128293167402354">"Chụp ảnh"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Chụp ảnh mới"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Chọn ảnh từ Thư viện"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Chọn ảnh mới từ Thư viện"</string>
-    <string name="locale_change_in_progress" msgid="7583992153091537467">"Danh sách liên hệ đang được cập nhật để phản ánh sự thay đổi ngôn ngữ."</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Danh sách liên hệ đang được cập nhật."</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="locale_change_in_progress" msgid="7583992153091537467">"Danh bạ đang được cập nhật để phản ánh sự thay đổi ngôn ngữ."</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"Danh bạ đang được cập nhật."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Danh bạ đang được nâng cấp. \n\nQuá trình nâng cấp yêu cầu khoảng <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB bộ nhớ trong.\n\nChọn một trong các tùy chọn sau:"</string>
     <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"Gỡ cài đặt một số ứng dụng"</string>
     <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"Thử lại nâng cấp"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Thêm tổ chức"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Ngày"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Tên nhóm"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">" qua <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> qua <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"Yêu thích"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Chỉnh sửa liên hệ"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Đang tạo bản sao cá nhân..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Tùy chỉnh"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Cài đặt"</string>
     <string name="menu_settings" msgid="377929915873428211">"Cài đặt"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"T.sử cục bộ của tôi"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Tiểu sử <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> của tôi"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Đang hiển thị tất cả liên hệ"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"Ứng dụng Người hoạt động tốt hơn với Tài khoản Google.\n\n• Truy cập từ bất kỳ trình duyệt web nào.\n• Sao lưu danh sách liên hệ của bạn một cách an toàn."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Danh bạ hoạt động tốt hơn với tài khoản Google.\n\n• Truy cập từ bất kỳ trình duyệt web nào.\n• Sao lưu danh bạ của bạn một cách an toàn."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Đảm bảo an toàn cho danh sách liên hệ của bạn ngay cả khi bạn mất điện thoại: hãy đồng bộ hóa với một dịch vụ trực tuyến."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Thêm tài khoản"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Địa chỉ liên hệ mới của bạn sẽ không được sao lưu. Thêm tài khoản sao lưu danh bạ trực tuyến?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Địa chỉ liên hệ mới của bạn sẽ được đồng bộ hóa với <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Bạn có thể đồng bộ hóa địa chỉ liên hệ mới của mình với một trong những tài khoản sau. Bạn muốn sử dụng tài khoản nào?"</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="keep_local" msgid="1258761699192993322">"Lưu trữ cục bộ"</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="contact_detail_picture_description" msgid="6083230522651287030">"Ảnh. Chọn để thay đổi"</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="6137651078366797938">"Đ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="content_description_directions" msgid="2686791825798189335">"chỉ đường tới địa điểm"</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-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
index 9ed84b6..cfa6e26 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"联系人"</string>
+    <string name="people" msgid="1190841469952343354">"通讯录"</string>
     <string name="contactsList" msgid="8661624236494819731">"联系人"</string>
     <string name="shortcutContact" msgid="749243779392912958">"联系人"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"直接拨打电话"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"选择一个可直接拨号的号码"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"选择一个可直接向其发送短信的号码"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"选择联系人"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"选择新联系人"</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="viewContactDesription" msgid="214186610887547860">"查看联系人"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"编辑联系人"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"创建联系人"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"修改群组"</string>
@@ -39,7 +39,9 @@
     <string name="searchHint" msgid="8482945356247760701">"搜索联系人"</string>
     <string name="menu_viewContact" msgid="2795575601596468581">"查看联系人"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"添加到收藏"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"从收藏中删除"</string>
+    <string name="menu_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_create_contact_shortcut" msgid="1217971915748509640">"放在主屏幕上"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"该联系人的信息中包含来自多个帐户的信息。来自只读帐户的信息将在您的联系人列表中隐藏，但不会删除。"</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"删除该联系人将会删除多个帐户中的信息。"</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"将会删除此联系人。"</string>
-    <string name="menu_discard" msgid="6456087569315685632">"舍弃"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"舍弃更改"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"该联系人不存在。"</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"联系人小部件已添加到主屏幕。"</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"新建联系人"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> 位联系人有电话号码"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"没有联系人拥有电话号码"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 位联系人"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> 位联系人"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"找到 1 个联系人"</item>
     <item quantity="other" msgid="3852668542926965042">"找到 <xliff:g id="COUNT">%d</xliff:g> 个联系人"</item>
@@ -108,18 +106,23 @@
     <item quantity="one" msgid="4826918429708286628">"找到 1 个联系人"</item>
     <item quantity="other" msgid="7988132539476575389">"找到 <xliff:g id="COUNT">%d</xliff:g> 个联系人"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"所有联系人"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"群组"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"所有联系人"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"收藏"</string>
     <string name="callBack" msgid="5498224409038809224">"回电"</string>
     <string name="callAgain" msgid="3197312117049874778">"重拨"</string>
     <string name="returnCall" msgid="8171961914203617813">"回拨"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"将“<xliff:g id="EMAIL">%s</xliff:g>”添加到联系人？"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"将“<xliff:g id="EMAIL">%s</xliff:g>”添加到通讯录？"</string>
     <string name="description_contact_photo" msgid="3387458082667894062">"联系人照片"</string>
     <string name="description_plus_button" msgid="515164827856229880">"添加"</string>
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"第 <xliff:g id="CURRENT_NUMBER">%s</xliff:g> 个联系人（共 <xliff:g id="TOTAL_NUMBER">%s</xliff:g> 个）"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"联系人姓名"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"未找到可处理此操作的应用。"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"点击即可返回上一屏幕"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"添加电话号码"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"添加电子邮件地址"</string>
+    <string name="missing_app" msgid="1466111003546611387">"未找到可处理此操作的应用。"</string>
     <string name="menu_share" msgid="943789700636542260">"分享"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"添加到通讯录"</string>
     <string name="share_via" msgid="563121028023030093">"联系人分享方式"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"要在哪个帐户下创建群组？"</string>
     <string name="audio_chat" msgid="2535716629358298691">"语音聊天"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"使用此照片"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"无法通过此应用修改。"</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"没有此联系人的其他信息。"</string>
     <string name="group_read_only" msgid="1061762906115697637">"无法在此设备上修改。"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"列表排序依据"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"名字"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"姓氏"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"查看联系人姓名"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"名字在前"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"姓氏在前"</string>
     <string name="take_photo" msgid="7496128293167402354">"拍照"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"拍摄新照片"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"从图库中选择照片"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"从图库中选择新照片"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"选择照片"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"选择新照片"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"正在更新联系人列表，以反映语言的变更。"</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"正在更新联系人列表。"</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"正在升级“联系人”。\n\n升级过程大约需要 <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB 的内存空间。\n\n请选择以下某个选项："</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"添加工作单位"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"日期"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"群组名称"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"来源：<xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"时间：<xliff:g id="DATE">%1$s</xliff:g>，来源：<xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"收藏"</string>
     <string name="edit_contact" msgid="7529281274005689512">"编辑联系人"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"正在创建个人副本..."</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"自定义"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"设置"</string>
     <string name="menu_settings" msgid="377929915873428211">"设置"</string>
@@ -181,7 +174,7 @@
     <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="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>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"我的本地个人资料"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"我的<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>个人资料"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"显示所有联系人"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"联系人应用与 Google 帐户结合使用效果更佳。\n\n• 通过任意网络浏览器查看您的联系人信息。\n• 安全地备份您的联系人信息。"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"登录Google帐户可获得更棒的通讯录使用体验。\n\n• 可通过任意浏览器访问。\n• 安全妥善地备份您的联系人数据。"</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"即使手机丢了，也能确保您的联系人信息的安全性：与在线服务同步。"</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"添加帐户"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"系统不会备份您的新联系人。要添加用于在线备份联系人的帐户吗？"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"系统会将您的新联系人与 <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> 同步。"</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"您可以将您的新联系人与以下某个帐户同步。请选择要使用的帐户："</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="contact_detail_picture_description" msgid="6083230522651287030">"照片（选择即可更换）"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"添加新联系人"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"查看更多"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"隐藏部分"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"查看全部"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"最近"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"简介"</string>
+    <string name="send_message" msgid="8938418965550543196">"发送短信"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"正在创建个人副本…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"昨天"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"明天"</string>
+    <string name="today" msgid="8041090779381781781">"今天"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"今天<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"明天<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>，<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"（未命名的活动）"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"设置"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"聊天工具"</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="content_description_directions" msgid="2686791825798189335">"到特定地点的路线"</string>
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..7e5133c
--- /dev/null
+++ b/res/values-zh-rHK/strings.xml
@@ -0,0 +1,251 @@
+<?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="people" msgid="1190841469952343354">"通訊錄"</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="contactPickerActivityTitle" msgid="4301062192337417640">"選擇聯絡人"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"選取新聯絡人"</string>
+    <string name="starredList" msgid="4817256136413959463">"已加星號"</string>
+    <string name="frequentList" msgid="7154768136473953056">"常用聯絡人"</string>
+    <string name="strequentList" msgid="5640192862059373511">"我的最愛"</string>
+    <string name="viewContactTitle" msgid="7989394521836644384">"聯絡人詳細資料"</string>
+    <string name="editContactDescription" msgid="2947202828256214947">"編輯聯絡人"</string>
+    <string name="insertContactDescription" msgid="4709878105452681987">"建立聯絡人"</string>
+    <string name="editGroupDescription" msgid="6321161304201540561">"編輯群組"</string>
+    <string name="insertGroupDescription" msgid="5658512271662210139">"建立群組"</string>
+    <string name="contactDetailAbout" msgid="5430408883907061400">"關於"</string>
+    <string name="contactDetailUpdates" msgid="3780588624763446941">"更新"</string>
+    <string name="searchHint" msgid="8482945356247760701">"搜尋聯絡人"</string>
+    <string name="menu_viewContact" msgid="2795575601596468581">"查看聯絡人"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"新增至我的最愛"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"從「我的最愛」中移除"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"已從我的最愛中移除"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"已加到我的最愛"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"編輯"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"刪除"</string>
+    <string name="menu_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="8368636463748691868">"分割"</string>
+    <string name="menu_editGroup" msgid="5062005185370983720">"編輯"</string>
+    <string name="menu_deleteGroup" msgid="3486380004411482874">"刪除"</string>
+    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"新增聯絡人"</string>
+    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"新增群組"</string>
+    <string name="splitConfirmation_title" msgid="633640935430370530">"要分拆聯絡人記錄嗎？"</string>
+    <string name="splitConfirmation" msgid="740190210499587175">"這個聯絡人記錄即將分拆為多個。"</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"加入"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"合併聯絡人"</string>
+    <string name="blurbJoinContactDataWith" msgid="8736488417422708236">"選擇要與<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="7208148163607047389">"已合併聯絡人"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"設定鈴聲"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"所有來電轉到留言信箱"</string>
+    <string name="readOnlyContactWarning" msgid="7808825687289848259">"您無法刪除唯讀帳戶的聯絡人，但可在聯絡人名單中隱藏這些聯絡人。"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"這個聯絡人包含來自多個帳戶的資訊。您的聯絡人清單不會顯示唯讀帳戶的資訊 (這些資訊並不會被刪除)。"</string>
+    <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"刪除這個聯絡人將刪除多個帳戶的資訊。"</string>
+    <string name="deleteConfirmation" msgid="811706994761610640">"刪除此聯絡人？"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"放棄變更"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"聯絡人不存在。"</string>
+    <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"聯絡人小工具已新增到主畫面上。"</string>
+    <string name="pickerNewContactHeader" msgid="7750705279843568147">"建立新聯絡人"</string>
+    <string name="pickerNewContactText" msgid="6166997164401048211">"建立新聯絡人"</string>
+  <string-array name="otherLabels">
+    <item msgid="8287841928119937597">"機構"</item>
+    <item msgid="7196592230748086755">"備註"</item>
+  </string-array>
+    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"平板電腦中沒有相片可供選用。"</string>
+    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"手機中沒有相片可供選用。"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"聯絡人相片"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"自訂標籤名稱"</string>
+    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"直接將來電轉到留言信箱"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"移除相片"</string>
+    <string name="noContacts" msgid="8579310973261953559">"沒有聯絡人。"</string>
+    <string name="noGroups" msgid="8614664663561385253">"沒有群組。"</string>
+    <string name="noAccounts" msgid="7768267764545265909">"如要建立群組，您需要有一個帳戶。"</string>
+    <string name="emptyGroup" msgid="7502116218697177370">"這個群組中沒有成員。"</string>
+    <string name="addPeopleToGroup" msgid="7879585947222263516">"如要新增成員，請編輯群組。"</string>
+    <string name="savingContact" msgid="4075751076741924939">"正在儲存聯絡人…"</string>
+    <string name="contactSavedToast" msgid="7152589189385441091">"聯絡人已儲存。"</string>
+    <string name="contactSavedErrorToast" msgid="3207250533172944892">"無法儲存聯絡人變更。"</string>
+    <string name="groupSavedToast" msgid="1168756874239833756">"群組已儲存。"</string>
+    <string name="groupSavedErrorToast" msgid="7984466936615304740">"無法儲存群組變更。"</string>
+  <plurals name="listTotalPhoneContacts">
+    <item quantity="one" msgid="3015357862286673986">"1 個有電話號碼的聯絡人"</item>
+    <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> 個有電話號碼的聯絡人"</item>
+  </plurals>
+    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"所有聯絡人資訊都沒有電話號碼"</string>
+  <plurals name="listFoundAllContacts">
+    <item quantity="one" msgid="5517063038754171134">"找到 1 位聯絡人"</item>
+    <item quantity="other" msgid="3852668542926965042">"找到 <xliff:g id="COUNT">%d</xliff:g> 位聯絡人"</item>
+  </plurals>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"沒有聯絡人"</string>
+  <plurals name="searchFoundContacts">
+    <item quantity="one" msgid="4826918429708286628">"找到 1 位聯絡人"</item>
+    <item quantity="other" msgid="7988132539476575389">"找到 <xliff:g id="COUNT">%d</xliff:g> 位聯絡人"</item>
+  </plurals>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"所有聯絡人"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"最愛聯絡人"</string>
+    <string name="callBack" msgid="5498224409038809224">"回撥電話"</string>
+    <string name="callAgain" msgid="3197312117049874778">"重撥"</string>
+    <string name="returnCall" msgid="8171961914203617813">"回覆來電"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"要將「<xliff:g id="EMAIL">%s</xliff:g>」加到通訊錄嗎？"</string>
+    <string name="description_contact_photo" msgid="3387458082667894062">"聯絡人相片"</string>
+    <string name="description_plus_button" msgid="515164827856229880">"加號"</string>
+    <string name="exporting_contact_list_progress" msgid="560522409559101193">"第 <xliff:g id="CURRENT_NUMBER">%s</xliff:g> 位聯絡人，共 <xliff:g id="TOTAL_NUMBER">%s</xliff:g> 位"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"您的聯絡人姓名"</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"找不到可以處理這個操作的應用程式。"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"按一下即可返回上一個畫面"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"新增電話號碼"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"新增電郵"</string>
+    <string name="missing_app" msgid="1466111003546611387">"找不到可以處理這個操作的應用程式。"</string>
+    <string name="menu_share" msgid="943789700636542260">"分享"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"加入通訊錄"</string>
+    <string name="share_via" msgid="563121028023030093">"使用下列應用程式分享聯絡人資訊："</string>
+    <string name="dialog_new_group_account" msgid="2318032089273496830">"選擇帳戶以建立群組"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"話音通訊"</string>
+    <string name="video_chat" msgid="1872255818640336072">"視像通訊"</string>
+    <string name="connections" msgid="8098440723172028350">"聯繫"</string>
+    <string name="add_connection_button" msgid="4861308615789601727">"加入聯繫"</string>
+    <string name="recent" msgid="2659189233141493004">"近況"</string>
+    <string name="recent_updates" msgid="4267258535615860710">"近期動態"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> 聯絡人"</string>
+    <!-- no translation found for from_account_format (4469138575127580203) -->
+    <skip />
+    <string name="use_photo_as_primary" msgid="8807110122951157246">"使用這張相片"</string>
+    <string name="contact_read_only" msgid="7421346527289472273">"無法以這個應用程式編輯。"</string>
+    <string name="group_read_only" msgid="1061762906115697637">"無法在這部裝置上編輯。"</string>
+    <string name="take_photo" msgid="7496128293167402354">"拍照"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"拍攝新相片"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"選擇相片"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"選取新相片"</string>
+    <string name="locale_change_in_progress" msgid="7583992153091537467">"正在更新聯絡人名單，以反映語言變更。"</string>
+    <string name="upgrade_in_progress" msgid="474511436863451061">"正在更新聯絡人清單。"</string>
+    <string name="upgrade_out_of_memory" msgid="1209994418877625940">"正在升級通訊錄。\n\n升級程序需要大約 <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB 的內部儲存空間。\n\n請選擇下列其中一個選項："</string>
+    <string name="upgrade_out_of_memory_uninstall" msgid="1721798828992091432">"解除安裝部分應用程式"</string>
+    <string name="upgrade_out_of_memory_retry" msgid="8431289830472724609">"重試升級"</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_field" msgid="2384260056674995230">"新增其他欄位"</string>
+    <string name="add_new_entry_for_section" msgid="5223080690667565044">"新增"</string>
+    <string name="add_organization" msgid="7311893231158291197">"新增機構"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"日期"</string>
+    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"群組名稱"</string>
+    <string name="description_star" msgid="2605854427360036550">"我的最愛"</string>
+    <string name="edit_contact" msgid="7529281274005689512">"編輯聯絡人"</string>
+  <plurals name="merge_info">
+    <item quantity="one" msgid="148365587896371969">"未合併"</item>
+    <item quantity="other" msgid="425683718017380845">"從 <xliff:g id="COUNT">%0$d</xliff:g> 個來源合併"</item>
+  </plurals>
+    <string name="aggregation_suggestion_join_dialog_message" msgid="3842757977671434836">"要將目前聯絡人與所選聯絡人合併嗎？"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"要切換至編輯所選聯絡人嗎？您目前已輸入的資訊將會被複製。"</string>
+    <string name="menu_copyContact" msgid="1573960845106822639">"複製到我的通訊錄"</string>
+    <string name="add_to_my_contacts" msgid="1068274916793627723">"新增至通訊錄"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"名錄 <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="list_filter_custom" msgid="8910173055702057002">"自訂"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"設定"</string>
+    <string name="menu_settings" msgid="377929915873428211">"設定"</string>
+    <string name="menu_help" msgid="5123887102216637725">"說明"</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="7356532842767854606">"提供年份"</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="7911101713860139754">"登入帳戶"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"匯入通訊錄"</string>
+    <string name="create_group_dialog_title" msgid="6874527142828424475">"建立新群組"</string>
+    <string name="create_group_item_label" msgid="4411981763169654825">"建立新群組"</string>
+  <plurals name="num_groups_in_account">
+    <item quantity="one" msgid="2944819210288517794">"1 個群組"</item>
+    <item quantity="other" msgid="1276758425904917367">"<xliff:g id="COUNT">%0$d</xliff:g> 個群組"</item>
+  </plurals>
+    <string name="delete_group_dialog_message" msgid="7586856514337560529">"要刪除「<xliff:g id="GROUP_LABEL">%1$s</xliff:g>」群組嗎？(這並不會刪除聯絡人本身。)"</string>
+  <plurals name="num_contacts_in_group">
+    <item quantity="one" msgid="1352418549951013448">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> 中有 <xliff:g id="COUNT_0">%1$d</xliff:g> 人"</item>
+    <item quantity="other" msgid="8146027769011086349">"<xliff:g id="ACCOUNT_TYPE">%2$s</xliff:g> 中有 <xliff:g id="COUNT_0">%1$d</xliff:g> 人"</item>
+  </plurals>
+  <plurals name="group_list_num_contacts_in_group">
+    <item quantity="one" msgid="3323065321661972446">"<xliff:g id="COUNT">%1$d</xliff:g> 人"</item>
+    <item quantity="other" msgid="6251996206137048525">"<xliff:g id="COUNT">%1$d</xliff:g> 人"</item>
+  </plurals>
+    <string name="toast_join_with_empty_contact" msgid="2238581529864542985">"請先輸入聯絡人姓名，然後才能與另一個聯絡人合併。"</string>
+    <string name="copy_text" msgid="3257145021583508761">"複製到剪貼簿"</string>
+    <string name="set_default" msgid="4417505153468300351">"設為預設"</string>
+    <string name="clear_default" msgid="7193185801596678067">"清除預設值"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"文字已複製"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"要丟棄更改嗎？"</string>
+    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
+    <string name="profile_display_name" msgid="4127389543625918771">"設定我的個人資料"</string>
+    <string name="enter_contact_name" msgid="1738391320566349924">"輸入聯絡人名字"</string>
+    <string name="group_name_hint" msgid="238359485263401293">"群組名稱"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"我的本機個人資料"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"我的 <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> 個人資料"</string>
+    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"顯示所有聯絡人"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"聯絡人與 Google 帳戶搭配使用的效能更卓越。\n\n• 透過任何網絡瀏覽器皆可存取。\n• 安全備份您的聯絡人。"</string>
+    <string name="generic_no_account_prompt" msgid="7218827704367325460">"即使丟失手機，也要確保通訊錄安全：與網上服務保持同步。"</string>
+    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"新增帳戶"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"您的新聯絡人資料不會備份。要新增可在網上備份聯絡人資料的帳戶嗎？"</string>
+    <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"您的新聯絡人資料將與 <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> 同步處理。"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"您可以透過下列其中一個帳戶同步處理您的新聯絡人資料。要使用哪個帳戶？"</string>
+    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"新增聯絡人"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"編輯聯絡人"</string>
+    <string name="keep_local" msgid="1258761699192993322">"保留在本機中"</string>
+    <string name="add_account" msgid="8201790677994503186">"新增帳戶"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"新增帳戶"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"匯出資料庫檔案"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"新增聯絡人"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"顯示更多"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"顯示較少"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"顯示全部"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"近期"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"關於"</string>
+    <string name="send_message" msgid="8938418965550543196">"傳送訊息"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"正在建立個人副本…"</string>
+    <string name="yesterday" msgid="6840858548955018569">"昨天"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"明天"</string>
+    <string name="today" msgid="8041090779381781781">"今天"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"今天<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"明天<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g><xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(未命名活動)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"設定"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"即時通訊"</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="content_description_directions" msgid="2686791825798189335">"規劃前往特定地點的路線"</string>
+</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 2b01fda..b0cbe25 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"使用者"</string>
+    <string name="people" msgid="1190841469952343354">"聯絡人"</string>
     <string name="contactsList" msgid="8661624236494819731">"聯絡人"</string>
     <string name="shortcutContact" msgid="749243779392912958">"聯絡人"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"直接撥號"</string>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"選擇去電號碼"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"選擇傳訊號碼"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"選擇聯絡人"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"選取新聯絡人"</string>
     <string name="starredList" msgid="4817256136413959463">"已加星號"</string>
     <string name="frequentList" msgid="7154768136473953056">"經常聯絡"</string>
-    <string name="strequentList" msgid="5640192862059373511">"我的最愛"</string>
+    <string name="strequentList" msgid="5640192862059373511">"我的收藏"</string>
     <string name="viewContactTitle" msgid="7989394521836644384">"聯絡人詳細資料"</string>
-    <string name="viewContactDesription" msgid="214186610887547860">"檢視聯絡人"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"編輯聯絡人"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"建立聯絡人"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"編輯群組"</string>
@@ -39,10 +39,12 @@
     <string name="searchHint" msgid="8482945356247760701">"搜尋聯絡人"</string>
     <string name="menu_viewContact" msgid="2795575601596468581">"檢視聯絡人"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"加到我的收藏"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"從我的最愛中移除"</string>
+    <string name="menu_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_create_contact_shortcut" msgid="1217971915748509640">"新增到主螢幕上"</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="8368636463748691868">"分割"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"此聯絡人包含來自多個帳戶的資訊。您的聯絡人清單不會顯示唯讀帳戶的資訊 (這些資訊並不會被刪除)。"</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"刪除此聯絡人將會刪除多個帳戶的資訊。"</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"刪除此聯絡人？"</string>
-    <string name="menu_discard" msgid="6456087569315685632">"捨棄"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"捨棄變更"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"聯絡人不存在。"</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"聯絡人小工具已新增到主螢幕上。"</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"建立新聯絡人"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> 位有電話號碼的聯絡人"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"所有聯絡人資訊中都沒有電話號碼"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"1 位聯絡人"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> 位聯絡人"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"找到 1 位聯絡人"</item>
     <item quantity="other" msgid="3852668542926965042">"找到 <xliff:g id="COUNT">%d</xliff:g> 位聯絡人"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"找到 1 位聯絡人"</item>
     <item quantity="other" msgid="7988132539476575389">"找到 <xliff:g id="COUNT">%d</xliff:g> 位聯絡人"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"所有聯絡人"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"群組"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"所有聯絡人"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"最愛聯絡人"</string>
     <string name="callBack" msgid="5498224409038809224">"回播電話"</string>
     <string name="callAgain" msgid="3197312117049874778">"重撥"</string>
     <string name="returnCall" msgid="8171961914203617813">"回電"</string>
@@ -119,7 +117,12 @@
     <string name="exporting_contact_list_progress" msgid="560522409559101193">"第 <xliff:g id="CURRENT_NUMBER">%s</xliff:g> 位聯絡人，共 <xliff:g id="TOTAL_NUMBER">%s</xliff:g> 位"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"您的聯絡人姓名"</string>
     <string name="quickcontact_missing_app" msgid="358168575340921552">"找不到可以處理這個動作的應用程式。"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"按一下即可返回上一個畫面"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"新增電話號碼"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"新增電子郵件地址"</string>
+    <string name="missing_app" msgid="1466111003546611387">"找不到可以處理這個動作的應用程式。"</string>
     <string name="menu_share" msgid="943789700636542260">"分享"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"新增為聯絡人"</string>
     <string name="share_via" msgid="563121028023030093">"使用下列應用程式分享聯絡人資訊："</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"選擇帳戶以建立群組"</string>
     <string name="audio_chat" msgid="2535716629358298691">"語音通訊"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"使用此相片"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"無法透過這個應用程式編輯。"</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"沒有這位聯絡人的其他資訊。"</string>
     <string name="group_read_only" msgid="1061762906115697637">"無法在這個裝置上編輯。"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"清單排序依據"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"名字"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"姓氏"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"查看聯絡人姓名"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"名字在前"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"姓氏在前"</string>
     <string name="take_photo" msgid="7496128293167402354">"拍照"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"拍攝新相片"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"從圖片庫選擇相片"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"從圖片庫選取新相片"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"選擇相片"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"選取新相片"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"正在更新聯絡人清單以反映語言變更。"</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"正在更新聯絡人清單。"</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"正在升級通訊錄。\n\n升級程序大約需要 <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB 的內部儲存空間。\n\n請選擇下列其中一個選項："</string>
@@ -160,9 +156,7 @@
     <string name="add_organization" msgid="7311893231158291197">"新增機構"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"日期"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"群組名稱"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"透過 <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> (透過 <xliff:g id="SOURCE">%2$s</xliff:g>)"</string>
-    <string name="description_star" msgid="2605854427360036550">"我的最愛"</string>
+    <string name="description_star" msgid="2605854427360036550">"我的收藏"</string>
     <string name="edit_contact" msgid="7529281274005689512">"編輯聯絡人"</string>
   <plurals name="merge_info">
     <item quantity="one" msgid="148365587896371969">"未合併"</item>
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"正在建立個人副本…"</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"自訂"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"設定"</string>
     <string name="menu_settings" msgid="377929915873428211">"設定"</string>
@@ -185,7 +178,7 @@
     <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="7356532842767854606">"提供年份"</string>
+    <string name="date_year_toggle" msgid="7356532842767854606">"輸入年份"</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>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"我的本機個人資料"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"我的 <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> 個人資料"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"顯示所有聯絡人"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"透過「Google 帳戶」使用「Google 人物搜尋」可獲得更佳的效益。\n\n• 透過任何瀏覽器都可存取。\n• 安全備份您的聯絡人。"</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"聯絡人與 Google 帳戶搭配使用的效能更優異。\n\n• 透過任何網路瀏覽器皆可存取。\n• 安全備份您的聯絡人。"</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"即使手機遺失，聯絡人資訊依然萬無一失：與線上服務保持同步。"</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"新增帳戶"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"系統不會備份您新增的聯絡人資料。您是否要新建一個帳戶，將您的聯絡人資料另存在線上？"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"您新增的聯絡人資料將會同步儲存在 <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> 的帳戶中。"</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"您可以將新增的聯絡人資料同步儲存在下列其中一個帳戶中。您要選擇哪一個帳戶？"</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="contact_detail_picture_description" msgid="6083230522651287030">"圖片 (選取即可變更)"</string>
+    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"新增聯絡人"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"顯示更多"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"顯示較少"</string>
+    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"全部顯示"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"近期"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"關於"</string>
+    <string name="send_message" msgid="8938418965550543196">"傳送簡訊"</string>
+    <string name="toast_making_personal_copy" msgid="6137651078366797938">"正在建立個人副本..."</string>
+    <string name="yesterday" msgid="6840858548955018569">"昨天"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"明天"</string>
+    <string name="today" msgid="8041090779381781781">"今天"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"今天<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"明天<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g><xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(未命名活動)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"設定"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"即時訊息"</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="content_description_directions" msgid="2686791825798189335">"規劃前往特定地點的路線"</string>
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index ba13444..c69636c 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="people" msgid="1048457247435785074">"Abantu"</string>
+    <string name="people" msgid="1190841469952343354">"Oxhumana nabo"</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>
@@ -25,11 +25,11 @@
     <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Khetha inombolo ozoyishayela"</string>
     <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Khetha inombolo kumyalezo"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Khetha oxhumana naye"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2062180422920201172">"Khetha oxhumana 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="viewContactDesription" msgid="214186610887547860">"Buka othintana naye"</string>
     <string name="editContactDescription" msgid="2947202828256214947">"Hlela othintana naye"</string>
     <string name="insertContactDescription" msgid="4709878105452681987">"Dala othintana naye"</string>
     <string name="editGroupDescription" msgid="6321161304201540561">"Hlela isigcawu"</string>
@@ -40,6 +40,8 @@
     <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_create_contact_shortcut" msgid="1217971915748509640">"Indawo esikrinini sekhaya"</string>
@@ -65,7 +67,7 @@
     <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Lona othintana naye uqukethe ulwazi olusuka ema-akhawuntini amaningi. Ulwazi olusuka ema-akhawuntini okufunda kuphela kuzofihlwa ohlwini lwakho lothintana nabo, ngeke kususwe."</string>
     <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Ukususa lona othintana naye kuzosusa ulwazi olusuka kuma-akhawuntini amaningi."</string>
     <string name="deleteConfirmation" msgid="811706994761610640">"Lo na othintana naye uzosuswa."</string>
-    <string name="menu_discard" msgid="6456087569315685632">"Lahla"</string>
+    <string name="menu_discard" msgid="6854657936970228164">"Lahla izinguquko"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Oxhumana naye akekho."</string>
     <string name="createContactShortcutSuccessful" msgid="7874133287558150877">"isinqunjwana soxhumana nabo singeziwe esikrinini sekhaya."</string>
     <string name="pickerNewContactHeader" msgid="7750705279843568147">"Dala othintana naye omusha"</string>
@@ -95,10 +97,6 @@
     <item quantity="other" msgid="3299954047880968205">"<xliff:g id="COUNT">%d</xliff:g> Othintana nabo abanezinombolo zocingo"</item>
   </plurals>
     <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Abekho othintana nabo abanezinombolo zocingo"</string>
-  <plurals name="listTotalAllContacts">
-    <item quantity="one" msgid="3405747744700823280">"Othintana naye ongu-1"</item>
-    <item quantity="other" msgid="3578469907265375314">"<xliff:g id="COUNT">%d</xliff:g> Othintana nabo"</item>
-  </plurals>
   <plurals name="listFoundAllContacts">
     <item quantity="one" msgid="5517063038754171134">"1 okutholakele"</item>
     <item quantity="other" msgid="3852668542926965042">"<xliff:g id="COUNT">%d</xliff:g> tholakele"</item>
@@ -108,8 +106,8 @@
     <item quantity="one" msgid="4826918429708286628">"otholakele ongu-1"</item>
     <item quantity="other" msgid="7988132539476575389">"<xliff:g id="COUNT">%d</xliff:g> tholakele"</item>
   </plurals>
-    <string name="contactsAllLabel" msgid="6479708629170672169">"Bonke oxhumana nabo"</string>
-    <string name="contactsGroupsLabel" msgid="2841971472518003524">"Amaqembu"</string>
+    <string name="all_contacts_tab_label" msgid="6250372293594147703">"Bonke oxhumana nabo"</string>
+    <string name="favorites_tab_label" msgid="1524869648904016414">"Izintandokazi"</string>
     <string name="callBack" msgid="5498224409038809224">"Phinda ushayele"</string>
     <string name="callAgain" msgid="3197312117049874778">"Shayela futhi"</string>
     <string name="returnCall" msgid="8171961914203617813">"Buyisela ikholi"</string>
@@ -118,8 +116,13 @@
     <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 insiza etholakele ukubhekana nalengxenye."</string>
+    <string name="quickcontact_missing_app" msgid="358168575340921552">"Ayikho uhlelo lokusebenza etholakele ukubhekana nalengxenye."</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Chofoza ukuze ubuyele kusikrini sangaphambilini"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Engeza inombolo yefoni"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Engeza i-imeyili"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Alukho uhlelo lokusebenza olutholakalele ukuphatha lesi senzo."</string>
     <string name="menu_share" msgid="943789700636542260">"Yabelana"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Engeza koxhumana nabo"</string>
     <string name="share_via" msgid="563121028023030093">"Abelana nothintana naye nge"</string>
     <string name="dialog_new_group_account" msgid="2318032089273496830">"Yenza isigcawu ngaphansi kwe-akhawunti"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Ingxoxo yezw"</string>
@@ -133,18 +136,11 @@
     <skip />
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Sebenzisa lesi sithombe"</string>
     <string name="contact_read_only" msgid="7421346527289472273">"Ayihleleki kulensiza"</string>
-    <string name="no_contact_details" msgid="6636856378019344497">"Alukho ulwazi olwengeziwe lwalona othintana naye"</string>
     <string name="group_read_only" msgid="1061762906115697637">"Ayihleleki kuledivayisi"</string>
-    <string name="display_options_sort_list_by" msgid="6080091755852211076">"Hlunga uhlu nge"</string>
-    <string name="display_options_sort_by_given_name" msgid="184916793466387067">"Igama elinikeziwe"</string>
-    <string name="display_options_sort_by_family_name" msgid="7857986975275712622">"Igama lomkhaya"</string>
-    <string name="display_options_view_names_as" msgid="4386932036180428374">"Buka amagama woxhumana nabo"</string>
-    <string name="display_options_view_given_name_first" msgid="6968288511197363292">"Igama elinikeziwe kuqala"</string>
-    <string name="display_options_view_family_name_first" msgid="1447288164951453714">"Igama lomkhaya kuqala"</string>
     <string name="take_photo" msgid="7496128293167402354">"Thatha isithombe"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Thatha isithombe esisha"</string>
-    <string name="pick_photo" msgid="3746334626214970837">"Khetha isithombe kwiGalari"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"Khetha isithombe esisha kwiGalari"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Khetha isithombe"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Khetha isithombe"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"Uhlu lothintana naye luyabuyekezwa ukubonisa ushintsho lolimi."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"Uhlu lothintana naye luyabuyekezwa."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"Othintana nabo basenqubeni yokuthuthukiswa. \n\nInqubo yokuthuthukisa idinga okungenani i-MB engu-<xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> yesitoreji sangaphakathi.\n\nKhetha okukodwa kokukhethwa kukho:"</string>
@@ -160,8 +156,6 @@
     <string name="add_organization" msgid="7311893231158291197">"Ngeza inhlangano"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Usuku"</string>
     <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Igama leqembu"</string>
-    <string name="contact_status_update_attribution" msgid="752179367353018597">"nge <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> nge- <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
     <string name="description_star" msgid="2605854427360036550">"intandokazi"</string>
     <string name="edit_contact" msgid="7529281274005689512">"Hlela othintana naye"</string>
   <plurals name="merge_info">
@@ -173,7 +167,6 @@
     <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="toast_making_personal_copy" msgid="288549957278065542">"Idala ikhophi yomuntu siqu"</string>
     <string name="list_filter_custom" msgid="8910173055702057002">"Ngokwezifiso"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Izilungiselelo"</string>
     <string name="menu_settings" msgid="377929915873428211">"Izilungiselelo"</string>
@@ -219,15 +212,40 @@
     <string name="local_profile_title" msgid="2021416826991393684">"Imininingwane yami yakuleli"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Imininingwane <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> yami"</string>
     <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Ibonisa bonke abathintwayo"</string>
-    <string name="no_account_prompt" msgid="7061052512446855192">"I-People isebenza kangcono nge-akhawunti yakwa-Google. \n\n• Finyelela kuyo nganoma iluphi uhlobo lwesiphequluli.\n• Londoloza oxhumana nabo ngokuphepha."</string>
+    <string name="no_account_prompt" msgid="6424883302325061025">"Oxhumana nabo basebenza kangcono nge-akhawunti ye-Google.\n\n• Finyelela kusuka kunoma isiphi isiphequluli sewebhu.\n• Yenza isipele oxhumana nabo ngokuvikelekile."</string>
     <string name="generic_no_account_prompt" msgid="7218827704367325460">"Gcina oxhumana nabo bephephile noma ngabe ulahlekelwa yiselula yakho: lungelanisa nensiza yokusebenzisa i-inthanethi."</string>
     <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Yengeza i-akhawunti"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Umxhumani wakho omusha akalondolozeki. Yngeza i-akhawunti ekwazi ukulondoloza abaxhumani emoyeni?"</string>
     <string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"Oxhumana naye omusha uyovumelaniswa ne <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"Ungavumelanisa umxhumani wakho ousha neyodwa yalama-akhawunti alandelayo. Iyiphi ofuna ukuyisbenzisa?"</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="keep_local" msgid="1258761699192993322">"Gcina kuseduze"</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="contact_detail_picture_description" msgid="6083230522651287030">"Isithombe. Khetha ukuze ushintshe"</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="6137651078366797938">"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="content_description_directions" msgid="2686791825798189335">"izikhombisi-ndlela eziya endaweni"</string>
 </resources>
diff --git a/res/values-sw600dp/colors.xml b/res/values/bools.xml
similarity index 77%
copy from res/values-sw600dp/colors.xml
copy to res/values/bools.xml
index 0f8f8de..b94cc85 100644
--- a/res/values-sw600dp/colors.xml
+++ b/res/values/bools.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
+<!-- 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.
@@ -13,10 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-
 <resources>
 
-    <!-- Color used for the letter in the A-Z section header -->
-    <color name="section_header_text_color">#ff000000</color>
+    <bool name="quickcontact_two_panel">false</bool>
+    <bool name="contact_all_list_show_card_frame">false</bool>
 
 </resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 362001d..2a53896 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -15,37 +15,49 @@
 -->
 <resources>
 
-    <color name="quickcontact_list_divider">#ffcdcdcd</color>
-    <color name="quickcontact_list_background">#ffe2e2e2</color>
-    <color name="quickcontact_tab_indicator">#ffc6c6c6</color>
-    <color name="quickcontact_track_background">#fff5f5f5</color>
-    <color name="quickcontact_activity_background">#fff5f5f5</color>
     <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 of the background of the contact detail and editor pages -->
     <color name="background_primary">#f5f5f5</color>
 
     <color name="background_social_updates">#ffeeeeee</color>
 
-    <!-- Color used for the letter in the A-Z section header -->
-    <color name="section_header_text_color">#363636</color>
-
-    <!-- Color of the text in the updates tab in the tab carousel on the contact detail page -->
-    <color name="detail_update_tab_text_color">#777777</color>
-
-    <!-- Color of the text of the tab carousel in the contact details  -->
-    <color name="detail_tab_carousel_tab_label_color">#EEEEEE</color>
-
-    <!-- Color of the background of the action bar -->
-    <color name="action_bar_background">#e6e6e6</color>
-
-    <!-- Color of the background of the action bar when highlighted (ie. pressed, focused) -->
+    <!-- TODO: remove these colors once we delete the group code (b/16522929) -->
+    <color name="action_bar_background">#0288d1</color>
     <color name="action_bar_background_highlight">#cecece</color>
-
-    <!-- Color of the text for buttons in the action bar  -->
     <color name="action_bar_button_text_color">#FFFFFF</color>
 
-    <!--  Color of the vertical stripe that goes on the left of a block quote inside a stream item -->
-    <color name="stream_item_stripe_color">#CCCCCC</color>
+    <color name="actionbar_background_color">@color/primary_color</color>
+    <color name="actionbar_background_color_dark">@color/primary_color_dark</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>
+
+    <!-- Color of the separator between entries in an ExpandingEntryCardView -->
+    <color name="expanding_entry_card_item_separator_color">#e4e4e4</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>
+
+    <color name="contact_all_list_background_color">#FFFFFF</color>
+    <color name="contact_favorites_list_background_color">#FFFFFF</color>
+
+    <!-- Background color of pinned header items. -->
+    <color name="list_item_pinned_header_color">#f5f5f5</color>
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 598846a..52918d5 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -16,9 +16,12 @@
 <resources>
     <dimen name="account_selector_popup_width">400dip</dimen>
 
-    <!-- Top position of quick contact. If this is -1, the vertical position is determined
-    based on the source of the request -->
-    <dimen name="quick_contact_top_position">48dip</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">36dp</dimen>
+    <!-- When QC is uncollapsed, the title has this much margin on its left, right and bottom -->
+    <dimen name="quickcontact_title_initial_margin">16dp</dimen>
 
     <!-- Top padding of the entire contact editor  -->
     <dimen name="editor_padding_top">0dip</dimen>
@@ -32,54 +35,31 @@
     <!-- Minimum height of a row in the Editor -->
     <dimen name="editor_min_line_item_height">48dip</dimen>
 
+    <!-- Top padding of an EditText in the Editor -->
+    <dimen name="editor_text_field_top_padding">8dip</dimen>
+
+    <!-- Bottom padding of an EditText in the Editor -->
+    <dimen name="editor_text_field_bottom_padding">7dip</dimen>
+
     <!-- Right padding of a field in the Editor -->
     <dimen name="editor_field_right_padding">4dip</dimen>
 
     <!-- Left padding of a field in the Editor -->
     <dimen name="editor_field_left_padding">4dip</dimen>
 
+    <!-- End padding added to spinners in the editor. This separates the spinner text from the
+        spinner graphic when Button gravity is incorrectly set in RTL mode
+        (see framework bug b/17011078. In LTR mode this shouldn't have an observable affect.
+        We set paddingEnd instead of drawablePadding since the spinner graphic is not a normal
+        drawable.  -->
+    <dimen name="editor_spinner_end_padding_workaround">24dip</dimen>
+
     <!-- Width of the Type-Label in the Editor -->
     <dimen name="editor_type_label_width">100dip</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>
 
-    <!-- Height of the shadow asset under the photo on the contact detail page -->
-    <dimen name="detail_contact_photo_shadow_height">10dip</dimen>
-
-    <!-- Height of the tab text label in the tab carousel on the contact detail page -->
-    <dimen name="detail_tab_carousel_tab_label_height">45dip</dimen>
-
-    <!-- Height of the tab text label in the tab carousel on the contact detail page -->
-    <dimen name="detail_tab_carousel_tab_label_indent">24dip</dimen>
-
-    <!-- Left and right padding of the text within the update tab in the tab carousel -->
-    <dimen name="detail_update_tab_side_padding">24dip</dimen>
-
-    <!-- Left and right padding of the update section in the contact detail card -->
-    <dimen name="detail_update_section_side_padding">16dip</dimen>
-
-    <!-- Vertical padding above and below individual stream items -->
-    <dimen name="detail_update_section_item_vertical_padding">16dip</dimen>
-
-    <!-- Vertical padding between text and images in a single stream item -->
-    <dimen name="detail_update_section_between_items_vertical_padding">8dip</dimen>
-
-    <!-- Horizontal padding for individual stream items -->
-    <dimen name="detail_update_section_item_horizontal_padding">8dip</dimen>
-
-    <!-- Padding between images in a single stream item -->
-    <dimen name="detail_update_section_between_items_padding">1dip</dimen>
-
-    <!-- Horizontal padding between attribution and comments -->
-    <dimen name="detail_update_section_attribution_comments_padding">4dip</dimen>
-
-    <!-- Margin around the contact's photo on the contact card -->
-    <dimen name="detail_contact_photo_margin">8dip</dimen>
-
-    <!-- Width and height of the contact photo on the contact detail page -->
-    <dimen name="detail_contact_photo_size">128dip</dimen>
-
     <!-- Width and height of the expanded contact photo on the contact detail page -->
     <dimen name="detail_contact_photo_expanded_size">400dip</dimen>
 
@@ -90,22 +70,12 @@
     <!-- Minimum width for the photo action popup options -->
     <dimen name="photo_action_popup_min_width">300dip</dimen>
 
-    <!-- Left and right padding for a contact detail item -->
-    <dimen name="detail_item_icon_margin">8dip</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 for the display name in header of the contact detail page -->
-    <dimen name="detail_header_name_text_size">36sp</dimen>
-
-    <!-- Vertical margin for vertical dividers existing between primary data
-         (phone number, email, etc.) and a secondary action button -->
-    <dimen name="detail_vertical_divider_vertical_margin">16dip</dimen>
-
     <!-- Font size used for the contact name in the widget -->
     <dimen name="widget_text_size_name">14sp</dimen>
 
@@ -152,9 +122,6 @@
 
     <dimen name="contact_filter_header_min_height">24dip</dimen>
 
-    <!--  Width of the lead margin on the left of a block quote inside a stream item -->
-    <dimen name="stream_item_stripe_width">8dip</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>
@@ -163,4 +130,72 @@
         wide screen devices). -->
     <dimen name="contact_picker_contact_list_min_height">550dip</dimen>
 
+
+    <!-- Margins for ExpandingEntryCardView -->
+    <dimen name="expanding_entry_card_marginStart">8dp</dimen>
+    <dimen name="expanding_entry_card_marginEnd">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 -->
+    <dimen name="expanding_entry_card_item_separator_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">20dp</dimen>
+    <dimen name="expanding_entry_card_item_padding_top">18dp</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">7dp</dimen>
+    <dimen name="expanding_entry_card_item_header_only_margin_top">6dp</dimen>
+    <dimen name="expanding_entry_card_item_alternate_icon_margin_end">0dp</dimen>
+    <dimen name="expanding_entry_card_item_alternate_icon_margin_bottom">10dp</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="people_activity_card_elevation">2dp</dimen>
+    <!-- The width the that the tabs occupy in the ActionBar when in landscape mode.
+         426dp is the height of a "small" screen. We should leave 240dp for
+         the title and menu items -->
+    <dimen name="people_activity_landscape_tabs_width">186dip</dimen>
+    <!-- The size of the text displayed in the ActionBar tabs in landscape mode.
+         Text in the tabs should must be width dependent, otherwise it won't fit in the tabs.
+         In portrait mode, the tabs look okay when overflowing their allocated space.
+         We have to be more careful in landscape. -->
+    <dimen name="people_activity_landscape_tabs_text_size">8dp</dimen>
+
+    <dimen name="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>
 </resources>
diff --git a/res/values/donottranslate_config.xml b/res/values/donottranslate_config.xml
index b74d8ce..5fc4f89 100644
--- a/res/values/donottranslate_config.xml
+++ b/res/values/donottranslate_config.xml
@@ -19,25 +19,9 @@
 
 <resources>
 
-    <!-- Flag indicating whether to show images in browse list -->
-    <bool name="config_browse_list_show_images">true</bool>
-
-    <!-- Flag indicating whether to show images in browse list -->
-    <bool name="config_browse_list_reverse_images">true</bool>
-
     <!-- If true, phonetic name is included in the contact editor by default -->
     <bool name="config_editor_include_phonetic_name">false</bool>
 
-    <!-- If true, Contacts uses two panes: List and Detail. If false, Details are
-         shown in their own screens. This flag must be in sync with the layout definitions. -->
-    <bool name="config_use_two_panes">false</bool>
-
-    <!--  If true, Contacts uses two panes in the favorites view, one for starred and one for
-          frequently contacted.  If false, only one list is shown with starred on top and frequently
-          contacted listed below. Note: This should not be true if config_use_two_panes is
-          false. -->
-    <bool name="config_use_two_panes_in_favorites">false</bool>
-
     <!-- If true, the "home" icon on the action bar will be shown. -->
     <bool name="show_home_icon">false</bool>
 
@@ -47,14 +31,6 @@
     -->
     <bool name="config_show_group_action_in_action_bar">false</bool>
 
-    <!-- Width of a tab in the tab carousel as a percentage of the current screen width on the
-         contact detail page -->
-    <item name="tab_width_screen_width_percentage" type="fraction">75%</item>
-
-    <!-- Height of the tab carousel as a percentage of the current screen width on the
-         contact detail page -->
-    <item name="tab_height_screen_width_percentage" type="fraction">50%</item>
-
     <!-- 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>
diff --git a/res/values/integers.xml b/res/values/integers.xml
index e742ba0..0de1de1 100644
--- a/res/values/integers.xml
+++ b/res/values/integers.xml
@@ -15,9 +15,13 @@
 -->
 
 <resources>
+    <!--  Determines the number of columns in a ContactTileRow in the favorites tab -->
+    <integer name="contact_tile_column_count_in_favorites">3</integer>
+
     <!-- Determines the number of columns in a ContactTileRow -->
     <integer name="contact_tile_column_count">2</integer>
 
-    <!-- Max lines to display of a contact's snippet in the "updates" tab of the contact card tab carousel  -->
-    <integer name="updates_tab_snippet_max_lines">3</integer>
+    <!-- Number of lines the QuickContact title can have -->
+    <integer name="quickcontact_title_lines">1</integer>
+
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7cd8227..5f17bcd 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -15,9 +15,9 @@
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
 
-    <!-- Title for the activity that opens the People app.  This is the name
+    <!-- Title for the activity that opens the Contacts app.  This is the name
          used in the Launcher icon. -->
-    <string name="people">People</string>
+    <string name="people">Contacts</string>
 
     <!-- Directory partition name -->
     <string name="contactsList">Contacts</string>
@@ -46,6 +46,9 @@
     <!-- Activity title when the user is selecting a contact.  [CHAR LIMIT=128] -->
     <string name="contactPickerActivityTitle">Choose a contact</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>
 
@@ -60,10 +63,6 @@
     <string name="viewContactTitle">Contact details</string>
 
     <!-- The description presented to the user in the Intent choose when there are multiple activities that allow
-         viewing a contact. This string represents the built in way to view the contact. -->
-    <string name="viewContactDesription">View contact</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>
 
@@ -97,6 +96,11 @@
     <!-- 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>
 
@@ -172,8 +176,8 @@
     <!-- Confirmation dialog contents after users selects to delete a Writable contact. -->
     <string name="deleteConfirmation">This contact will be deleted.</string>
 
-    <!-- Menu item to indicate you want to stop editing a contact and NOT save the changes you've made [CHAR LIMIT=12] -->
-    <string name="menu_discard">Discard</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]-->
@@ -258,12 +262,6 @@
     <!-- 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 visible when "Only contacts with phones" not selected -->
-    <plurals name="listTotalAllContacts">
-        <item quantity="one">1 contact</item>
-        <item quantity="other"><xliff:g id="count">%d</xliff:g> contacts</item>
-    </plurals>
-
     <!-- 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>
@@ -279,21 +277,11 @@
         <item quantity="other"><xliff:g id="count">%d</xliff:g> found</item>
     </plurals>
 
-    <!-- The content description for the "all contacts" tab.
+    <!-- The title of "all contacts" tab. [CHAR LIMIT=14] -->
+    <string name="all_contacts_tab_label">All contacts</string>
 
-         Note: AccessibilityServices use this attribute to announce what the view represents.
-         This is especially valuable for views without textual representation like ImageView.
-
-         [CHAR LIMIT=NONE] -->
-    <string name="contactsAllLabel">All contacts</string>
-
-    <!-- The content description text for the groups tab.
-
-         Note: AccessibilityServices use this attribute to announce what the view represents.
-         This is especially valuable for views without textual representation like ImageView.
-
-         [CHAR LIMIT=NONE] -->
-    <string name="contactsGroupsLabel">Groups</string>
+    <!-- The title of "favorites" tab. [CHAR LIMIT=14] -->
+    <string name="favorites_tab_label">Favorites</string>
 
     <!-- Action string for calling back a number in the call log -->
     <string name="callBack">Call back</string>
@@ -329,6 +317,14 @@
     <!-- 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 view above 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
@@ -338,6 +334,9 @@
     <!-- 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>
+
     <!-- Dialog title when picking the application to share a contact with. -->
     <string name="share_via">Share contact via</string>
 
@@ -373,30 +372,9 @@
     <!-- Text used to explain that a contact cannot be edited from the People application since the data is read only [CHAR LIMIT=40] -->
     <string name="contact_read_only">Not editable from this app.</string>
 
-    <!-- Text describing that a contact has no information available other than name and photo. [CHAR LIMIT=60] -->
-    <string name="no_contact_details">No additional information for this contact.</string>
-
     <!-- Text used to explain that a group cannot be edited since the data is read only [CHAR LIMIT=40] -->
     <string name="group_read_only">Not editable on this device.</string>
 
-    <!-- Label of the "sort list by" display option -->
-    <string name="display_options_sort_list_by">Sort list by</string>
-
-    <!-- An allowable value for the "sort list by" contact display option  -->
-    <string name="display_options_sort_by_given_name">Given name</string>
-
-    <!-- An allowable value for the "sort list by" contact display option  -->
-    <string name="display_options_sort_by_family_name">Family name</string>
-
-    <!-- Label of the "view names as" display option [CHAR LIMIT=64]-->
-    <string name="display_options_view_names_as">View contact names</string>
-
-    <!-- An allowable value for the "view names as" contact display option  -->
-    <string name="display_options_view_given_name_first">Given name first</string>
-
-    <!-- An allowable value for the "view names as" contact display option  -->
-    <string name="display_options_view_family_name_first">Family name first</string>
-
     <!-- An option in the 'Contact photo' dialog, if there is no photo yet [CHAR LIMIT=50] -->
     <string name="take_photo">Take photo</string>
 
@@ -404,10 +382,10 @@
     <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 from Gallery</string>
+    <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 from Gallery</string>
+    <string name="pick_new_photo">Select new photo</string>
 
     <!-- Text shown in the contacts app while the background process updates contacts after a locale change [CHAR LIMIT=300] -->
     <string name="locale_change_in_progress">Contact list is being updated to reflect the change of language.</string>
@@ -494,9 +472,6 @@
     <!-- 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>
 
-    <!-- Toast shown when creating a personal copy of a contact [CHAR LIMIT=100] -->
-    <string name="toast_making_personal_copy">Creating a personal copy\u2026</string>
-
     <!-- Contact list filter indicating that the list shows groups chosen by the user [CHAR LIMIT=64] -->
     <string name="list_filter_custom">Custom</string>
 
@@ -629,12 +604,12 @@
     <string name="toast_displaying_all_contacts">Displaying all contacts</string>
 
     <!-- Message in the standard "no account" prompt that encourages the user to add a Google account before continuing to use the People app [CHAR LIMIT=NONE] -->
-    <string name="no_account_prompt">People works better with a Google Account.\n\n\u2022 Access from any web browser.\n\u2022 Back up your contacts securely.</string>
+    <string name="no_account_prompt">Contacts works better with a Google Account.\n\n\u2022 Access from any web browser.\n\u2022 Back up your contacts securely.</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 People app experience [CHAR LIMIT=20] -->
+    <!-- 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] -->
@@ -646,6 +621,16 @@
     <!-- 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">You can synchronize your new contact with one of the following accounts. Which do you want to use?</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 indicate that the user wants to save the newly created contact locally (instead of backing it up online) [CHAR LIMIT=20] -->
     <string name="keep_local">Keep local</string>
 
@@ -658,6 +643,63 @@
     <!-- 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>
 
-    <!-- Description when picture in the contact detail view is selected. [CHAR LIMIT=NONE] -->
-    <string name="contact_detail_picture_description">Picture. Select to change</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...</string>
+    <!-- Timestamp string for interactions from yesterday. [CHAR LIMIT=40] -->
+    <string name="yesterday">Yesterday</string>
+    <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 directions secondary button [CHAR LIMIT=NONE] -->
+    <string name="content_description_directions">directions to location</string>
+
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 0c7c0ea..8ff6469 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -26,22 +26,15 @@
         <item name="android:listViewStyle">@style/ListViewStyle</item>
     </style>
 
-    <style name="EditorActivityTheme" parent="@android:style/Theme.Holo.Light">
-        <item name="android:actionBarStyle">@style/ContactsActionBarStyle</item>
-        <item name="android:homeAsUpIndicator">@drawable/ic_menu_back</item>
-        <item name="android:actionOverflowButtonStyle">@style/ContactsActionBarOverflow</item>
-        <item name="android:actionBarItemBackground">@drawable/action_bar_item_background</item>
-        <item name="android:actionBarWidgetTheme">@style/ContactsActionBarTheme</item>
-        <item name="android:windowContentOverlay">@null</item>
-        <item name="android:textColorPrimary">@color/primary_text_color</item>
-        <item name="android:textColorSecondary">@color/secondary_text_color</item>
+    <style name="EditorActivityTheme" parent="@style/PeopleTheme">
         <item name="android:listViewStyle">@style/ListViewStyle</item>
+        <item name="android:actionBarStyle">@style/EditorActionBarStyle</item>
     </style>
 
     <style name="Theme">
     </style>
 
-    <style name="Theme.QuickContact" parent="@android:style/Theme.Holo.Light">
+    <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>
@@ -51,49 +44,56 @@
         <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.Holo.Light">
+    <style name="PeopleTheme" parent="@android:style/Theme.Material.Light">
         <item name="android:actionBarStyle">@style/ContactsActionBarStyle</item>
-        <item name="android:homeAsUpIndicator">@drawable/ic_menu_back</item>
-        <item name="android:actionOverflowButtonStyle">@style/ContactsActionBarOverflow</item>
-        <item name="android:actionBarItemBackground">@drawable/action_bar_item_background</item>
-        <item name="android:actionBarWidgetTheme">@style/ContactsActionBarTheme</item>
-        <item name="android:actionBarTabStyle">@style/ContactsActionBarTabView</item>
-        <item name="android:actionDropDownStyle">@style/ContactsActionBarDropDownStyle</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: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="list_item_height">?android:attr/listPreferredItemHeight</item>
         <item name="activated_background">@drawable/list_item_activated_background</item>
         <item name="section_header_background">@drawable/list_title_holo</item>
         <item name="list_section_header_height">24dip</item>
-        <item name="list_item_divider">?android:attr/listDivider</item>
         <item name="list_item_padding_top">8dip</item>
-        <item name="list_item_padding_right">0dip</item>
+        <item name="list_item_padding_right">32dp</item>
         <item name="list_item_padding_bottom">8dip</item>
-        <item name="list_item_padding_left">0dip</item>
-        <item name="list_item_gap_between_image_and_text">8dip</item>
+        <item name="list_item_padding_left">16dip</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_header_underline_height">1dip</item>
-        <item name="list_item_header_underline_color">@color/secondary_header_separator_color</item>
         <item name="list_item_data_width_weight">5</item>
         <item name="list_item_label_width_weight">3</item>
-        <item name="list_item_contacts_count_text_color">@color/people_app_theme_color</item>
         <item name="list_item_header_text_indent">8dip</item>
-        <item name="contact_browser_list_padding_left">16dip</item>
+        <item name="contact_browser_list_padding_left">0dip</item>
         <item name="contact_browser_list_padding_right">0dip</item>
-        <item name="contact_browser_background">@android:color/transparent</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_contacts_count_text_size">12sp</item>
         <!-- Favorites -->
         <item name="favorites_padding_bottom">0dip</item>
     </style>
@@ -102,13 +102,59 @@
         <item name="android:src">@drawable/ic_overflow_menu</item>
     </style>
 
-    <style name="ContactsActionBarStyle" parent="@android:Widget.Holo.Light.ActionBar">
-        <item name="android:background">@drawable/action_bar_tab</item>
-        <item name="android:backgroundSplit">@drawable/action_bar_tab</item>
-        <item name="android:backgroundStacked">@drawable/action_bar_tab</item>
+    <!-- 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="EditorActionBarStyle" parent="@style/ContactsActionBarStyle">
+        <!-- Do not use a contentInsetStart, since we are setting a custom ActionBar view -->
+        <item name="android:contentInsetStart">0dp</item>
+    </style>
+
+    <!-- When this style was added, android:toolbarStyle was private. Therefore, this style
+         must be directly applied to every toolbar -->
+    <style name="ContactsToolbarStyle" parent="@android:style/Widget.Toolbar">
+        <item name="android:titleTextAppearance">@style/ContactsActionBarTitleText</item>
+    </style>
+
+    <style name="ContactsPickerActionBarStyle" parent="@style/ContactsActionBarStyle">
+        <!-- when first loading, don't show title or up button -->
         <item name="android:displayOptions"></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:textColor">@color/actionbar_text_color</item>
+    </style>
+
+    <!-- Styling for the tab bar; handles styling of the divider line. -->
+    <style name="ContactsActionBarTabBarStyle"
+           parent="@android:style/Widget.Material.ActionBar.TabBar">
+        <item name="android:showDividers">none</item>
+    </style>
+
+    <!-- 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:textStyle">bold</item>
+    </style>
+
+    <!-- Action bar overflow menu icon. -->
+    <style name="ContactsActionBarOverflowQP"
+           parent="@android:style/Widget.Material.Light.ActionButton.Overflow">
+        <item name="android:src">@drawable/ic_menu_overflow_lt</item>
+    </style>
+
     <style name="ContactsActionBarDropDownStyle" parent="@android:style/Widget.Holo.Light.Spinner">
         <item name="android:background">@drawable/ab_dropdown_navigation_item_background</item>
     </style>
@@ -120,43 +166,38 @@
         <item name="android:dropDownListViewStyle">@style/ListViewDropdownStyle</item>
     </style>
 
-    <style name="ContactsActionBarTabView" parent="@android:style/Widget.Holo.ActionBar.TabView">
-        <item name="android:background">@drawable/action_bar_tab</item>
-    </style>
-
     <style name="ListViewDropdownStyle" parent="@android:style/Widget.ListView.DropDown">
         <item name="android:listSelector">?android:attr/listChoiceBackgroundIndicator</item>
     </style>
 
-    <style name="ContactPickerTheme" parent="@style/PeopleTheme" />
+    <style name="ContactPickerTheme" parent="@style/PeopleTheme" >
+        <item name="android:actionBarStyle">@style/ContactsPickerActionBarStyle</item>
+    </style>
 
     <style name="ContactPickerLayout" parent="ContactPickerTheme">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">match_parent</item>
     </style>
 
-    <style name="JoinContactActivityTheme" parent="ContactPickerTheme" >
-    </style>
-
-    <style name="ContactsPreferencesTheme" parent="@android:Theme.Holo.Light">
+    <style name="ContactsPreferencesTheme" parent="@style/PeopleTheme">
         <item name="android:listViewStyle">@style/ListViewStyle</item>
     </style>
 
-    <style name="ContactListFilterTheme" parent="@android:Theme.Holo.Light">
+    <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.Holo.Light.Dialog">
+    <style name="NonPhoneDialogTheme" parent="@android:Theme.Material.Light.Dialog">
     </style>
 
-    <style name="ConfirmAddDetailDialogTheme" parent="@android:style/Theme.Holo.Light.Dialog.MinWidth">
+    <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.Holo.Light.Dialog.NoActionBar.MinWidth">
+    <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>
@@ -169,14 +210,6 @@
         <item name="android:layout_width">match_parent</item>
     </style>
 
-    <style name="ContactDetailItemType">
-        <item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
-        <item name="android:textColor">?android:attr/textColorSecondary</item>
-        <item name="android:singleLine">true</item>
-        <item name="android:ellipsize">marquee</item>
-        <item name="android:layout_gravity">center_vertical</item>
-    </style>
-
     <style name="ConfirmAddDetailViewStyle">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">wrap_content</item>
@@ -187,12 +220,7 @@
         <item name="android:layout_height">150dip</item>
     </style>
 
-    <style name="QuickContactListItemStyle">
-        <item name="android:layout_width">match_parent</item>
-        <item name="android:layout_height">wrap_content</item>
-        <item name="android:minHeight">?android:attr/listPreferredItemHeight</item>
-        <item name="android:orientation">horizontal</item>
-        <item name="android:gravity">center_vertical</item>
+    <style name="SelectableItem" parent="@android:style/Theme.Material.Light">
         <item name="android:background">?android:attr/selectableItemBackground</item>
     </style>
 
@@ -208,12 +236,6 @@
         <item name="android:orientation">vertical</item>
     </style>
 
-    <style name="QuickContactListBottomStyle">
-        <item name="android:layout_width">match_parent</item>
-        <item name="android:layout_height">2dip</item>
-        <item name="android:background">@color/quickcontact_tab_indicator</item>
-    </style>
-
     <style name="Theme.PhotoSelector" parent="@android:style/Theme.Holo.Light">
         <item name="android:windowBackground">@android:color/transparent</item>
         <item name="android:windowFrame">@null</item>
@@ -236,4 +258,33 @@
         <item name="android:textSize">18sp</item>
     </style>
 
+    <style name="ExpandingEntryCardStyle">
+        <item name="android:elevation">@dimen/expanding_entry_card_elevation</item>
+        <item name="android:background">@color/expanding_entry_card_background_color</item>
+        <item name="android:layout_marginBottom">@dimen/expanding_entry_card_marginBottom</item>
+        <item name="android:layout_marginEnd">@dimen/expanding_entry_card_marginEnd</item>
+        <item name="android:layout_marginStart">@dimen/expanding_entry_card_marginStart</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">
+        <!-- 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>
+    </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>
 </resources>
diff --git a/res/xml/preference_display_options.xml b/res/xml/preference_display_options.xml
deleted file mode 100644
index 4ec31b2..0000000
--- a/res/xml/preference_display_options.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
-    <com.android.contacts.preference.SortOrderPreference
-        android:key="sortOrder"
-        android:title="@string/display_options_sort_list_by"
-        android:dialogTitle="@string/display_options_sort_list_by" />
-
-    <com.android.contacts.preference.DisplayOrderPreference
-        android:key="displayOrder"
-        android:title="@string/display_options_view_names_as"
-        android:dialogTitle="@string/display_options_view_names_as" />
-</PreferenceScreen>
diff --git a/res/xml/preference_headers.xml b/res/xml/preference_headers.xml
index ed709fc..98019fd 100644
--- a/res/xml/preference_headers.xml
+++ b/res/xml/preference_headers.xml
@@ -18,7 +18,7 @@
     xmlns:android="http://schemas.android.com/apk/res/android">
 
     <header
-        android:fragment="com.android.contacts.preference.DisplayOptionsPreferenceFragment"
+        android:fragment="com.android.contacts.common.preference.DisplayOptionsPreferenceFragment"
         android:title="@string/preference_displayOptions" />
 
 </preference-headers>
diff --git a/src/com/android/contacts/ContactSaveService.java b/src/com/android/contacts/ContactSaveService.java
index 8688a47..cc687ec 100644
--- a/src/com/android/contacts/ContactSaveService.java
+++ b/src/com/android/contacts/ContactSaveService.java
@@ -829,9 +829,8 @@
 
                 // Don't bother undemoting if this contact is the user's profile.
                 if (id < Profile.MIN_ID) {
-                    values.clear();
-                    values.put(String.valueOf(id), PinnedPositions.UNDEMOTE);
-                    getContentResolver().update(PinnedPositions.UPDATE_URI, values, null, null);
+                    getContentResolver().call(ContactsContract.AUTHORITY_URI,
+                            PinnedPositions.UNDEMOTE_METHOD, String.valueOf(id), null);
                 }
             }
         } finally {
diff --git a/src/com/android/contacts/ContactsActivity.java b/src/com/android/contacts/ContactsActivity.java
index b94a237..82d1f98 100644
--- a/src/com/android/contacts/ContactsActivity.java
+++ b/src/com/android/contacts/ContactsActivity.java
@@ -26,7 +26,7 @@
 import android.view.View;
 
 import com.android.contacts.common.activity.TransactionSafeActivity;
-import com.android.contacts.common.test.InjectedServices;
+import com.android.contacts.common.testing.InjectedServices;
 
 /**
  * A common superclass for Contacts activities that handles application-wide services.
diff --git a/src/com/android/contacts/ContactsApplication.java b/src/com/android/contacts/ContactsApplication.java
index 95fad48..2d2a782 100644
--- a/src/com/android/contacts/ContactsApplication.java
+++ b/src/com/android/contacts/ContactsApplication.java
@@ -32,7 +32,7 @@
 import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.list.ContactListFilterController;
 import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.test.InjectedServices;
+import com.android.contacts.common.testing.InjectedServices;
 import com.android.contacts.common.util.Constants;
 import com.google.common.annotations.VisibleForTesting;
 
diff --git a/src/com/android/contacts/GroupMemberLoader.java b/src/com/android/contacts/GroupMemberLoader.java
index e52ddda..6001f2c 100644
--- a/src/com/android/contacts/GroupMemberLoader.java
+++ b/src/com/android/contacts/GroupMemberLoader.java
@@ -95,7 +95,7 @@
         setSelectionArgs(createSelectionArgs());
 
         ContactsPreferences prefs = new ContactsPreferences(context);
-        if (prefs.getSortOrder() == ContactsContract.Preferences.SORT_ORDER_PRIMARY) {
+        if (prefs.getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) {
             setSortOrder(Contacts.SORT_KEY_PRIMARY);
         } else {
             setSortOrder(Contacts.SORT_KEY_ALTERNATIVE);
diff --git a/src/com/android/contacts/NfcHandler.java b/src/com/android/contacts/NfcHandler.java
index 3cd4b08..07b3f06 100644
--- a/src/com/android/contacts/NfcHandler.java
+++ b/src/com/android/contacts/NfcHandler.java
@@ -18,6 +18,7 @@
 
 import android.app.Activity;
 import android.content.ContentResolver;
+import android.content.Context;
 import android.net.Uri;
 import android.nfc.NdefMessage;
 import android.nfc.NdefRecord;
@@ -27,8 +28,6 @@
 import android.provider.ContactsContract.Profile;
 import android.util.Log;
 
-import com.android.contacts.detail.ContactDetailFragment;
-
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -45,27 +44,28 @@
 
     private static final String TAG = "ContactNfcHandler";
     private static final String PROFILE_LOOKUP_KEY = "profile";
-    private final ContactDetailFragment mContactFragment;
+    private final Context mContext;
+    private final Uri mContactUri;
 
-    public static void register(Activity activity, ContactDetailFragment contactFragment) {
+    /* 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(contactFragment), activity);
+        adapter.setNdefPushMessageCallback(new NfcHandler(activity, contactUri), activity);
     }
 
-    public NfcHandler(ContactDetailFragment contactFragment) {
-        mContactFragment = contactFragment;
+    public NfcHandler(Context context, Uri contactUri) {
+        mContext = context;
+        mContactUri = contactUri;
     }
 
     @Override
     public NdefMessage createNdefMessage(NfcEvent event) {
-        // Get the current contact URI
-        Uri contactUri = mContactFragment.getUri();
-        ContentResolver resolver = mContactFragment.getActivity().getContentResolver();
-        if (contactUri != null) {
-            final String lookupKey = Uri.encode(contactUri.getPathSegments().get(2));
+        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.
diff --git a/src/com/android/contacts/activities/ActionBarAdapter.java b/src/com/android/contacts/activities/ActionBarAdapter.java
index f184d12..6a5c1cb 100644
--- a/src/com/android/contacts/activities/ActionBarAdapter.java
+++ b/src/com/android/contacts/activities/ActionBarAdapter.java
@@ -16,24 +16,25 @@
 
 package com.android.contacts.activities;
 
+import android.animation.ValueAnimator;
 import android.app.ActionBar;
-import android.app.ActionBar.LayoutParams;
-import android.app.ActionBar.Tab;
-import android.app.FragmentTransaction;
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.content.res.TypedArray;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
+import android.text.Editable;
 import android.text.TextUtils;
+import android.text.TextWatcher;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.inputmethod.InputMethodManager;
-import android.widget.ArrayAdapter;
 import android.widget.SearchView;
 import android.widget.SearchView.OnCloseListener;
-import android.widget.SearchView.OnQueryTextListener;
-import android.widget.TextView;
+import android.view.View.OnClickListener;
+import android.widget.EditText;
+import android.widget.Toolbar;
 
 import com.android.contacts.R;
 import com.android.contacts.activities.ActionBarAdapter.Listener.Action;
@@ -42,7 +43,7 @@
 /**
  * Adapter for the action bar at the top of the Contacts activity.
  */
-public class ActionBarAdapter implements OnQueryTextListener, OnCloseListener {
+public class ActionBarAdapter implements OnCloseListener {
 
     public interface Listener {
         public abstract class Action {
@@ -58,6 +59,8 @@
          * {@link #getCurrentTab}.
          */
         void onSelectedTabChanged();
+
+        void onUpButtonPressed();
     }
 
     private static final String EXTRA_KEY_SEARCH_MODE = "navBar.searchMode";
@@ -69,7 +72,15 @@
     private boolean mSearchMode;
     private String mQueryString;
 
-    private SearchView mSearchView;
+    private EditText mSearchView;
+    /** 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 int mMaxPortraitTabHeight;
+    private int mMaxToolbarContentInsetStart;
 
     private final Context mContext;
     private final SharedPreferences mPrefs;
@@ -77,154 +88,73 @@
     private Listener mListener;
 
     private final ActionBar mActionBar;
-    private final int mActionBarNavigationMode;
-    private final MyTabListener mTabListener;
-    private final MyNavigationListener mNavigationListener;
+    private final Toolbar mToolbar;
 
     private boolean mShowHomeIcon;
-    private boolean mShowTabsAsText;
 
     public interface TabState {
         public static int FAVORITES = 0;
         public static int ALL = 1;
-        public static int GROUPS = 2;
 
-        public static int COUNT = 3;
+        public static int COUNT = 2;
         public static int DEFAULT = ALL;
     }
 
     private int mCurrentTab = TabState.DEFAULT;
 
-    /**
-     * Extension of ArrayAdapter to be used for the action bar navigation drop list.  It is not
-     * possible to change the text appearance of a text item that is in the spinner header or
-     * in the drop down list using a selector xml file.  The only way to differentiate the two
-     * is if the view is gotten via {@link #getView(int, View, ViewGroup)} or
-     * {@link #getDropDownView(int, View, ViewGroup)}.
-     */
-    private class CustomArrayAdapter extends ArrayAdapter<String> {
-
-        public CustomArrayAdapter(Context context, int textResId) {
-            super(context, textResId);
-        }
-
-        public View getView (int position, View convertView, ViewGroup parent) {
-            TextView textView = (TextView) super.getView(position, convertView, parent);
-            textView.setTextAppearance(mContext,
-                    R.style.PeopleNavigationDropDownHeaderTextAppearance);
-            return textView;
-        }
-
-        public View getDropDownView (int position, View convertView, ViewGroup parent) {
-            TextView textView = (TextView) super.getDropDownView(position, convertView, parent);
-            textView.setTextAppearance(mContext,
-                    R.style.PeopleNavigationDropDownTextAppearance);
-            return textView;
-        }
-    }
-
     public ActionBarAdapter(Context context, Listener listener, ActionBar actionBar,
-            boolean isUsingTwoPanes) {
+            View portraitTabs, View landscapeTabs, Toolbar toolbar) {
         mContext = context;
         mListener = listener;
         mActionBar = actionBar;
         mPrefs = PreferenceManager.getDefaultSharedPreferences(mContext);
-
+        mPortraitTabs = portraitTabs;
+        mLandscapeTabs = landscapeTabs;
+        mToolbar = toolbar;
+        mMaxToolbarContentInsetStart = mToolbar.getContentInsetStart();
         mShowHomeIcon = mContext.getResources().getBoolean(R.bool.show_home_icon);
 
-        // On wide screens, show the tabs as text (instead of icons)
-        mShowTabsAsText = isUsingTwoPanes;
-        if (isUsingTwoPanes) {
-            mActionBarNavigationMode = ActionBar.NAVIGATION_MODE_LIST;
-            mTabListener = null;
-            mNavigationListener = new MyNavigationListener();
-        } else {
-            mActionBarNavigationMode = ActionBar.NAVIGATION_MODE_TABS;
-            mTabListener = new MyTabListener();
-            mNavigationListener = null;
-        }
-
-        // Set up search view.
-        View customSearchView = LayoutInflater.from(mActionBar.getThemedContext()).inflate(
-                R.layout.custom_action_bar, null);
-        int searchViewWidth = mContext.getResources().getDimensionPixelSize(
-                R.dimen.search_view_width);
-        if (searchViewWidth == 0) {
-            searchViewWidth = LayoutParams.MATCH_PARENT;
-        }
-        LayoutParams layoutParams = new LayoutParams(searchViewWidth, LayoutParams.WRAP_CONTENT);
-        mSearchView = (SearchView) customSearchView.findViewById(R.id.search_view);
-        // Since the {@link SearchView} in this app is "click-to-expand", set the below mode on the
-        // {@link SearchView} so that the magnifying glass icon appears inside the editable text
-        // field. (In the "click-to-expand" search pattern, the user must explicitly expand the
-        // search field and already knows a search is being conducted, so the icon is redundant
-        // and can go away once the user starts typing.)
-        mSearchView.setIconifiedByDefault(true);
-        mSearchView.setQueryHint(mContext.getString(R.string.hint_findContacts));
-        mSearchView.setOnQueryTextListener(this);
-        mSearchView.setOnCloseListener(this);
-        mSearchView.setQuery(mQueryString, false);
-        mActionBar.setCustomView(customSearchView, layoutParams);
-
-        // Set up tabs or navigation list
-        switch(mActionBarNavigationMode) {
-            case ActionBar.NAVIGATION_MODE_TABS:
-                setupTabs();
-                break;
-            case ActionBar.NAVIGATION_MODE_LIST:
-                setupNavigationList();
-                break;
-        }
+        setupSearchView();
+        setupTabs(context);
     }
 
-    private void setupTabs() {
-        addTab(TabState.FAVORITES, R.drawable.ic_tab_starred, R.string.contactsFavoritesLabel);
-        addTab(TabState.ALL, R.drawable.ic_tab_all, R.string.contactsAllLabel);
-        addTab(TabState.GROUPS, R.drawable.ic_tab_groups, R.string.contactsGroupsLabel);
+    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 setupNavigationList() {
-        ArrayAdapter<String> navAdapter = new CustomArrayAdapter(mContext,
-                R.layout.people_navigation_item);
-        navAdapter.add(mContext.getString(R.string.contactsFavoritesLabel));
-        navAdapter.add(mContext.getString(R.string.contactsAllLabel));
-        navAdapter.add(mContext.getString(R.string.contactsGroupsLabel));
-        mActionBar.setListNavigationCallbacks(navAdapter, mNavigationListener);
-    }
+    private void setupSearchView() {
+        final LayoutInflater inflater = (LayoutInflater) mToolbar.getContext().getSystemService(
+                Context.LAYOUT_INFLATER_SERVICE);
+        mSearchContainer = inflater.inflate(R.layout.search_bar_expanded, mToolbar,
+                /* attachToRoot = */ false);
+        mSearchContainer.setVisibility(View.VISIBLE);
+        mToolbar.addView(mSearchContainer);
 
-    /**
-     * Because the navigation list items are in a different order than tab items, this returns
-     * the appropriate tab from the navigation item position.
-     */
-    private int getTabPositionFromNavigationItemPosition(int navItemPos) {
-        switch(navItemPos) {
-            case 0:
-                return TabState.FAVORITES;
-            case 1:
-                return TabState.ALL;
-            case 2:
-                return TabState.GROUPS;
-        }
-        throw new IllegalArgumentException(
-                "Parameter must be between 0 and " + Integer.toString(TabState.COUNT-1)
-                + " inclusive.");
-    }
-
-    /**
-     * This is the inverse of {@link getTabPositionFromNavigationItemPosition}.
-     */
-    private int getNavigationItemPositionFromTabPosition(int tabPos) {
-        switch(tabPos) {
-            case TabState.FAVORITES:
-                return 0;
-            case TabState.ALL:
-                return 1;
-            case TabState.GROUPS:
-                return 2;
-        }
-        throw new IllegalArgumentException(
-                "Parameter must be between 0 and " + Integer.toString(TabState.COUNT-1)
-                + " inclusive.");
+        mSearchContainer.setBackgroundColor(mContext.getResources().getColor(
+                R.color.searchbox_background_color));
+        mSearchView = (EditText) mSearchContainer.findViewById(R.id.search_view);
+        mSearchView.setHint(mContext.getString(R.string.hint_findContacts));
+        mSearchView.addTextChangedListener(new SearchTextWatcher());
+        mSearchContainer.findViewById(R.id.search_close_button).setOnClickListener(
+                new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mSearchView.setText(null);
+            }
+        });
+        mSearchContainer.findViewById(R.id.search_back_button).setOnClickListener(
+                new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (mListener != null) {
+                    mListener.onUpButtonPressed();
+                }
+            }
+        });
     }
 
     public void initialize(Bundle savedState, ContactsRequest request) {
@@ -245,7 +175,7 @@
         }
         // Show tabs or the expanded {@link SearchView}, depending on whether or not we are in
         // search mode.
-        update();
+        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)) {
@@ -257,59 +187,39 @@
         mListener = listener;
     }
 
-    private void addTab(int expectedTabIndex, int icon, int description) {
-        final Tab tab = mActionBar.newTab();
-        tab.setTabListener(mTabListener);
-        if (mShowTabsAsText) {
-            tab.setText(description);
-        } else {
-            tab.setIcon(icon);
-            tab.setContentDescription(description);
-        }
-        mActionBar.addTab(tab);
-        if (expectedTabIndex != tab.getPosition()) {
-            throw new IllegalStateException("Tabs must be created in the right order");
-        }
-    }
+    private class SearchTextWatcher implements TextWatcher {
 
-    private class MyTabListener implements ActionBar.TabListener {
-        /**
-         * If true, it won't call {@link #setCurrentTab} in {@link #onTabSelected}.
-         * This flag is used when we want to programmatically update the current tab without
-         * {@link #onTabSelected} getting called.
-         */
-        public boolean mIgnoreTabSelected;
-
-        @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { }
-        @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { }
-
-        @Override public void onTabSelected(Tab tab, FragmentTransaction ft) {
-            if (!mIgnoreTabSelected) {
-                setCurrentTab(tab.getPosition());
+        @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);
             }
         }
-    }
 
-    private class MyNavigationListener implements ActionBar.OnNavigationListener {
-        public boolean mIgnoreNavigationItemSelected;
+        @Override
+        public void afterTextChanged(Editable s) {}
 
-        public boolean onNavigationItemSelected(int itemPosition, long itemId) {
-            if (!mIgnoreNavigationItemSelected) {
-                setCurrentTab(getTabPositionFromNavigationItemPosition(itemPosition));
-            }
-            return true;
-        }
+        @Override
+        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
     }
 
     /**
-     * Change the current tab, and notify the listener.
+     * Save the current tab selection, and notify the listener.
      */
     public void setCurrentTab(int tab) {
         setCurrentTab(tab, true);
     }
 
     /**
-     * Change the current tab
+     * Save the current tab selection.
      */
     public void setCurrentTab(int tab, boolean notifyListener) {
         if (tab == mCurrentTab) {
@@ -317,22 +227,6 @@
         }
         mCurrentTab = tab;
 
-        final int actionBarSelectedNavIndex = mActionBar.getSelectedNavigationIndex();
-        switch(mActionBar.getNavigationMode()) {
-            case ActionBar.NAVIGATION_MODE_TABS:
-                if (mCurrentTab != actionBarSelectedNavIndex) {
-                    mActionBar.setSelectedNavigationItem(mCurrentTab);
-                }
-                break;
-            case ActionBar.NAVIGATION_MODE_LIST:
-                if (mCurrentTab != getTabPositionFromNavigationItemPosition(
-                        actionBarSelectedNavIndex)) {
-                    mActionBar.setSelectedNavigationItem(
-                            getNavigationItemPositionFromTabPosition(mCurrentTab));
-                }
-                break;
-        }
-
         if (notifyListener && mListener != null) mListener.onSelectedTabChanged();
         saveLastTabPreference(mCurrentTab);
     }
@@ -354,14 +248,14 @@
     public void setSearchMode(boolean flag) {
         if (mSearchMode != flag) {
             mSearchMode = flag;
-            update();
+            update(false /* skipAnimation */);
             if (mSearchView == null) {
                 return;
             }
             if (mSearchMode) {
                 setFocusOnSearchView();
             } else {
-                mSearchView.setQuery(null, false);
+                mSearchView.setText(null);
             }
         } else if (flag) {
             // Everything is already set up. Still make sure the keyboard is up
@@ -376,7 +270,7 @@
     public void setQueryString(String query) {
         mQueryString = query;
         if (mSearchView != null) {
-            mSearchView.setQuery(query, false);
+            mSearchView.setText(query);
         }
     }
 
@@ -385,7 +279,7 @@
         return mSearchMode; // Only shown on the search mode.
     }
 
-    private void updateDisplayOptions() {
+    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 | ActionBar.DISPLAY_SHOW_CUSTOM;
@@ -395,16 +289,18 @@
 
         // Build the new flags...
         int newFlags = 0;
-        newFlags |= ActionBar.DISPLAY_SHOW_TITLE;
-        if (mShowHomeIcon) {
+        if (mShowHomeIcon && !mSearchMode) {
             newFlags |= ActionBar.DISPLAY_SHOW_HOME;
         }
         if (mSearchMode) {
-            newFlags |= ActionBar.DISPLAY_SHOW_HOME;
-            newFlags |= ActionBar.DISPLAY_HOME_AS_UP;
             newFlags |= ActionBar.DISPLAY_SHOW_CUSTOM;
+            mToolbar.setContentInsetsRelative(0, mToolbar.getContentInsetEnd());
+        } else {
+            newFlags |= ActionBar.DISPLAY_SHOW_TITLE;
+            mToolbar.setContentInsetsRelative(mMaxToolbarContentInsetStart,
+                    mToolbar.getContentInsetEnd());
         }
-        mActionBar.setHomeButtonEnabled(mSearchMode);
+
 
         if (current != newFlags) {
             // Pass the mask here to preserve other flags that we're not interested here.
@@ -412,97 +308,80 @@
         }
     }
 
-    private void update() {
-        boolean isIconifiedChanging = mSearchView.isIconified() == mSearchMode;
+    private void update(boolean skipAnimation) {
+        final boolean isIconifiedChanging
+                = (mSearchContainer.getParent() == null) == mSearchMode;
+        if (isIconifiedChanging && !skipAnimation) {
+            mToolbar.removeView(mLandscapeTabs);
+            if (mSearchMode) {
+                addSearchContainer();
+                mSearchContainer.setAlpha(0);
+                mSearchContainer.animate().alpha(1);
+                animateTabHeightChange(mMaxPortraitTabHeight, 0);
+                updateDisplayOptions(isIconifiedChanging);
+            } else {
+                mSearchContainer.setAlpha(1);
+                animateTabHeightChange(0, mMaxPortraitTabHeight);
+                mSearchContainer.animate().alpha(0).withEndAction(new Runnable() {
+                    @Override
+                    public void run() {
+                        updateDisplayOptionsInner();
+                        updateDisplayOptions(isIconifiedChanging);
+                        addLandscapeViewPagerTabs();
+                        mToolbar.removeView(mSearchContainer);
+                    }
+                });
+            }
+            return;
+        }
+        if (isIconifiedChanging && skipAnimation) {
+            mToolbar.removeView(mLandscapeTabs);
+            if (mSearchMode) {
+                setPortraitTabHeight(0);
+                addSearchContainer();
+            } else {
+                setPortraitTabHeight(mMaxPortraitTabHeight);
+                mToolbar.removeView(mSearchContainer);
+                addLandscapeViewPagerTabs();
+            }
+        }
+        updateDisplayOptions(isIconifiedChanging);
+    }
+
+    private void addLandscapeViewPagerTabs() {
+        if (mLandscapeTabs != null) {
+            mToolbar.removeView(mLandscapeTabs);
+            mToolbar.addView(mLandscapeTabs);
+        }
+    }
+
+    private void addSearchContainer() {
+        mToolbar.removeView(mSearchContainer);
+        mToolbar.addView(mSearchContainer);
+    }
+
+    private void updateDisplayOptions(boolean isIconifiedChanging) {
         if (mSearchMode) {
             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 (isIconifiedChanging) {
-                final CharSequence queryText = mSearchView.getQuery();
-                mSearchView.onActionViewExpanded();
+                final CharSequence queryText = mSearchView.getText();
                 if (!TextUtils.isEmpty(queryText)) {
-                    mSearchView.setQuery(queryText, false);
+                    mSearchView.setText(queryText);
                 }
             }
-            if (mActionBar.getNavigationMode() != ActionBar.NAVIGATION_MODE_STANDARD) {
-                mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
-            }
             if (mListener != null) {
                 mListener.onAction(Action.START_SEARCH_MODE);
             }
         } else {
-            final int currentNavigationMode = mActionBar.getNavigationMode();
-            if (mActionBarNavigationMode == ActionBar.NAVIGATION_MODE_TABS
-                    && currentNavigationMode != ActionBar.NAVIGATION_MODE_TABS) {
-                // setNavigationMode will trigger onTabSelected() with the tab which was previously
-                // selected.
-                // The issue is that when we're first switching to the tab navigation mode after
-                // screen orientation changes, onTabSelected() will get called with the first tab
-                // (i.e. favorite), which would results in mCurrentTab getting set to FAVORITES and
-                // we'd lose restored tab.
-                // So let's just disable the callback here temporarily.  We'll notify the listener
-                // after this anyway.
-                mTabListener.mIgnoreTabSelected = true;
-                mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
-                mActionBar.setSelectedNavigationItem(mCurrentTab);
-                mTabListener.mIgnoreTabSelected = false;
-            } else if (mActionBarNavigationMode == ActionBar.NAVIGATION_MODE_LIST
-                    && currentNavigationMode != ActionBar.NAVIGATION_MODE_LIST) {
-                mNavigationListener.mIgnoreNavigationItemSelected = true;
-                mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
-                mActionBar.setSelectedNavigationItem(
-                        getNavigationItemPositionFromTabPosition(mCurrentTab));
-                mNavigationListener.mIgnoreNavigationItemSelected = false;
-            }
-            mActionBar.setTitle(null);
-            // Since we have the {@link SearchView} in a custom action bar, we must manually handle
-            // collapsing the {@link SearchView} when search mode is exited.
-            if (isIconifiedChanging) {
-                mSearchView.onActionViewCollapsed();
-            }
             if (mListener != null) {
                 mListener.onAction(Action.STOP_SEARCH_MODE);
                 mListener.onSelectedTabChanged();
             }
         }
-        updateDisplayOptions();
-    }
-
-    @Override
-    public boolean onQueryTextChange(String queryString) {
-        // TODO: Clean up SearchView code because it keeps setting the SearchView query,
-        // invoking onQueryChanged, setting up the fragment again, invalidating the options menu,
-        // storing the SearchView again, and etc... unless we add in the early return statements.
-        if (queryString.equals(mQueryString)) {
-            return false;
-        }
-        mQueryString = queryString;
-        if (!mSearchMode) {
-            if (!TextUtils.isEmpty(queryString)) {
-                setSearchMode(true);
-            }
-        } else if (mListener != null) {
-            mListener.onAction(Action.CHANGE_SEARCH_QUERY);
-        }
-
-        return true;
-    }
-
-    @Override
-    public boolean onQueryTextSubmit(String query) {
-        // When the search is "committed" by the user, then hide the keyboard so the user can
-        // more easily browse the list of results.
-        if (mSearchView != null) {
-            InputMethodManager imm = (InputMethodManager) mContext.getSystemService(
-                    Context.INPUT_METHOD_SERVICE);
-            if (imm != null) {
-                imm.hideSoftInputFromWindow(mSearchView.getWindowToken(), 0);
-            }
-            mSearchView.clearFocus();
-        }
-        return true;
+        updateDisplayOptionsInner();
     }
 
     @Override
@@ -531,7 +410,15 @@
 
     public void setFocusOnSearchView() {
         mSearchView.requestFocus();
-        mSearchView.setIconified(false); // Workaround for the "IME not popping up" issue.
+        showInputMethod(mSearchView); // Workaround for the "IME not popping up" issue.
+    }
+
+    private void showInputMethod(View view) {
+        final InputMethodManager imm = (InputMethodManager) mContext.getSystemService(
+                Context.INPUT_METHOD_SERVICE);
+        if (imm != null) {
+            imm.showSoftInput(view, 0);
+        }
     }
 
     private void saveLastTabPreference(int tab) {
@@ -546,4 +433,28 @@
             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
index 25c23e0..4c4d4dc 100644
--- a/src/com/android/contacts/activities/AttachPhotoActivity.java
+++ b/src/com/android/contacts/activities/AttachPhotoActivity.java
@@ -16,6 +16,7 @@
 
 package com.android.contacts.activities;
 
+import android.content.ActivityNotFoundException;
 import android.content.ContentResolver;
 import android.content.Intent;
 import android.content.Loader;
@@ -30,9 +31,11 @@
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.DisplayPhoto;
 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.model.Contact;
 import com.android.contacts.common.model.ContactLoader;
 import com.android.contacts.common.model.RawContactDelta;
@@ -152,7 +155,12 @@
             ContactPhotoUtils.addPhotoPickerExtras(intent, mCroppedPhotoUri);
             ContactPhotoUtils.addCropExtras(intent, mPhotoDim != 0 ? mPhotoDim : mDefaultPhotoDim);
 
-            startActivityForResult(intent, REQUEST_CROP_PHOTO);
+            try {
+                startActivityForResult(intent, REQUEST_CROP_PHOTO);
+            } catch (ActivityNotFoundException ex) {
+                Toast.makeText(this, R.string.missing_app, Toast.LENGTH_SHORT).show();
+                return;
+            }
 
             mContactUri = result.getData();
 
diff --git a/src/com/android/contacts/activities/ConfirmAddDetailActivity.java b/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
index e613ec1..e3fa7e2 100644
--- a/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
+++ b/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
@@ -746,7 +746,8 @@
 
     private void setDefaultContactImage(String displayName, String lookupKey) {
         mPhotoView.setImageDrawable(ContactPhotoManager.getDefaultAvatarDrawableForContact(
-                getResources(), false, new DefaultImageRequest(displayName, lookupKey)));
+                getResources(), false,
+                new DefaultImageRequest(displayName, lookupKey, false /* isCircular */)));
     }
 
     /**
diff --git a/src/com/android/contacts/activities/ContactDetailActivity.java b/src/com/android/contacts/activities/ContactDetailActivity.java
deleted file mode 100644
index a4e0470..0000000
--- a/src/com/android/contacts/activities/ContactDetailActivity.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.contacts.activities;
-
-import android.app.ActionBar;
-import android.app.Fragment;
-import android.content.ActivityNotFoundException;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Handler;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.KeyEvent;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.MenuItem.OnMenuItemClickListener;
-import android.view.View;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityManager;
-import android.widget.Toast;
-
-import com.android.contacts.ContactSaveService;
-import com.android.contacts.ContactsActivity;
-import com.android.contacts.R;
-import com.android.contacts.detail.ContactDetailDisplayUtils;
-import com.android.contacts.detail.ContactDetailFragment;
-import com.android.contacts.detail.ContactDetailLayoutController;
-import com.android.contacts.detail.ContactLoaderFragment;
-import com.android.contacts.detail.ContactLoaderFragment.ContactLoaderFragmentListener;
-import com.android.contacts.interactions.ContactDeletionInteraction;
-import com.android.contacts.common.model.Contact;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.util.PhoneCapabilityTester;
-
-import java.util.ArrayList;
-
-public class ContactDetailActivity extends ContactsActivity {
-    private static final String TAG = "ContactDetailActivity";
-
-    private Contact mContactData;
-    private Uri mLookupUri;
-
-    private ContactDetailLayoutController mContactDetailLayoutController;
-    private ContactLoaderFragment mLoaderFragment;
-
-    private Handler mHandler = new Handler();
-
-    @Override
-    protected void onCreate(Bundle savedState) {
-        super.onCreate(savedState);
-        if (PhoneCapabilityTester.isUsingTwoPanes(this)) {
-            // This activity must not be shown. We have to select the contact in the
-            // PeopleActivity instead ==> Create a forward intent and finish
-            final Intent originalIntent = getIntent();
-            Intent intent = new Intent();
-            intent.setAction(originalIntent.getAction());
-            intent.setDataAndType(originalIntent.getData(), originalIntent.getType());
-
-            // If we are launched from the outside, we should create a new task, because the user
-            // can freely navigate the app (this is different from phones, where only the UP button
-            // kicks the user into the full app)
-            if (shouldUpRecreateTask(intent)) {
-                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
-            } else {
-                intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS |
-                        Intent.FLAG_ACTIVITY_FORWARD_RESULT | Intent.FLAG_ACTIVITY_SINGLE_TOP |
-                        Intent.FLAG_ACTIVITY_CLEAR_TOP);
-            }
-            intent.setClass(this, PeopleActivity.class);
-            startActivity(intent);
-            finish();
-            return;
-        }
-
-        setContentView(R.layout.contact_detail_activity);
-
-        mContactDetailLayoutController = new ContactDetailLayoutController(this, savedState,
-                getFragmentManager(), null, findViewById(R.id.contact_detail_container),
-                mContactDetailFragmentListener);
-
-        // We want the UP affordance but no app icon.
-        // Setting HOME_AS_UP, SHOW_TITLE and clearing SHOW_HOME does the trick.
-        ActionBar actionBar = getActionBar();
-        if (actionBar != null) {
-            actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_TITLE,
-                    ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_TITLE
-                    | ActionBar.DISPLAY_SHOW_HOME);
-            actionBar.setTitle("");
-        }
-    }
-
-    @Override
-    public void onAttachFragment(Fragment fragment) {
-         if (fragment instanceof ContactLoaderFragment) {
-            mLoaderFragment = (ContactLoaderFragment) fragment;
-            mLoaderFragment.setListener(mLoaderFragmentListener);
-            mLoaderFragment.loadUri(getIntent().getData());
-        }
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        super.onCreateOptionsMenu(menu);
-        MenuInflater inflater = getMenuInflater();
-        inflater.inflate(R.menu.star, menu);
-        return true;
-    }
-
-    @Override
-    public boolean onPrepareOptionsMenu(Menu menu) {
-        final MenuItem starredMenuItem = menu.findItem(R.id.menu_star);
-        starredMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
-            @Override
-            public boolean onMenuItemClick(MenuItem item) {
-                // Toggle "starred" state
-                // Make sure there is a contact
-                if (mLookupUri != 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
-                    ContactDetailDisplayUtils.configureStarredMenuItem(starredMenuItem,
-                            mContactData.isDirectoryEntry(), mContactData.isUserProfile(),
-                            !isStarred);
-
-                    // Now perform the real save
-                    Intent intent = ContactSaveService.createSetStarredIntent(
-                            ContactDetailActivity.this, mLookupUri, !isStarred);
-                    ContactDetailActivity.this.startService(intent);
-                }
-                return true;
-            }
-        });
-        // If there is contact data, update the starred state
-        if (mContactData != null) {
-            ContactDetailDisplayUtils.configureStarredMenuItem(starredMenuItem,
-                    mContactData.isDirectoryEntry(), mContactData.isUserProfile(),
-                    mContactData.getStarred());
-        }
-        return true;
-    }
-
-    @Override
-    public boolean onKeyDown(int keyCode, KeyEvent event) {
-        // First check if the {@link ContactLoaderFragment} can handle the key
-        if (mLoaderFragment != null && mLoaderFragment.handleKeyDown(keyCode)) return true;
-
-        // Otherwise find the correct fragment to handle the event
-        FragmentKeyListener mCurrentFragment = mContactDetailLayoutController.getCurrentPage();
-        if (mCurrentFragment != null && mCurrentFragment.handleKeyDown(keyCode)) return true;
-
-        // In the last case, give the key event to the superclass.
-        return super.onKeyDown(keyCode, event);
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        if (mContactDetailLayoutController != null) {
-            mContactDetailLayoutController.onSaveInstanceState(outState);
-        }
-    }
-
-    private final ContactLoaderFragmentListener mLoaderFragmentListener =
-            new ContactLoaderFragmentListener() {
-        @Override
-        public void onContactNotFound() {
-            finish();
-        }
-
-        @Override
-        public void onDetailsLoaded(final Contact result) {
-            if (result == null) {
-                return;
-            }
-            // Since {@link FragmentTransaction}s cannot be done in the onLoadFinished() of the
-            // {@link LoaderCallbacks}, then post this {@link Runnable} to the {@link Handler}
-            // on the main thread to execute later.
-            mHandler.post(new Runnable() {
-                @Override
-                public void run() {
-                    // If the activity is destroyed (or will be destroyed soon), don't update the UI
-                    if (isFinishing()) {
-                        return;
-                    }
-                    mContactData = result;
-                    mLookupUri = result.getLookupUri();
-                    invalidateOptionsMenu();
-                    setupTitle();
-                    mContactDetailLayoutController.setContactData(mContactData);
-                }
-            });
-        }
-
-        @Override
-        public void onEditRequested(Uri contactLookupUri) {
-            Intent intent = new Intent(Intent.ACTION_EDIT, contactLookupUri);
-            intent.putExtra(
-                    ContactEditorActivity.INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED, true);
-            // Don't finish the detail activity after launching the editor because when the
-            // editor is done, we will still want to show the updated contact details using
-            // this activity.
-            startActivity(intent);
-        }
-
-        @Override
-        public void onDeleteRequested(Uri contactUri) {
-            ContactDeletionInteraction.start(ContactDetailActivity.this, contactUri, true);
-        }
-    };
-
-    /**
-     * Setup the activity title and subtitle with contact name and company.
-     */
-    private void setupTitle() {
-        CharSequence displayName = ContactDetailDisplayUtils.getDisplayName(this, mContactData);
-        String company =  ContactDetailDisplayUtils.getCompany(this, mContactData);
-
-        ActionBar actionBar = getActionBar();
-        actionBar.setTitle(displayName);
-        actionBar.setSubtitle(company);
-
-        final StringBuilder talkback = new StringBuilder();
-        if (!TextUtils.isEmpty(displayName)) {
-            talkback.append(displayName);
-        }
-        if (!TextUtils.isEmpty(company)) {
-            if (talkback.length() != 0) {
-                talkback.append(", ");
-            }
-            talkback.append(company);
-        }
-
-        if (talkback.length() != 0) {
-            AccessibilityManager accessibilityManager =
-                    (AccessibilityManager) this.getSystemService(Context.ACCESSIBILITY_SERVICE);
-            if (accessibilityManager.isEnabled()) {
-                View decorView = getWindow().getDecorView();
-                decorView.setContentDescription(talkback);
-                decorView.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
-            }
-        }
-    }
-
-    private final ContactDetailFragment.Listener mContactDetailFragmentListener =
-            new ContactDetailFragment.Listener() {
-        @Override
-        public void onItemClicked(Intent intent) {
-            if (intent == null) {
-                return;
-            }
-            try {
-                startActivity(intent);
-            } catch (ActivityNotFoundException e) {
-                Log.e(TAG, "No activity found for intent: " + intent);
-            }
-        }
-
-        @Override
-        public void onCreateRawContactRequested(
-                ArrayList<ContentValues> values, AccountWithDataSet account) {
-            Toast.makeText(ContactDetailActivity.this, R.string.toast_making_personal_copy,
-                    Toast.LENGTH_LONG).show();
-            Intent serviceIntent = ContactSaveService.createNewRawContactIntent(
-                    ContactDetailActivity.this, values, account,
-                    ContactDetailActivity.class, Intent.ACTION_VIEW);
-            startService(serviceIntent);
-
-        }
-    };
-
-    /**
-     * This interface should be implemented by {@link Fragment}s within this
-     * activity so that the activity can determine whether the currently
-     * displayed view is handling the key event or not.
-     */
-    public interface FragmentKeyListener {
-        /**
-         * Returns true if the key down event will be handled by the implementing class, or false
-         * otherwise.
-         */
-        public boolean handleKeyDown(int keyCode);
-    }
-}
diff --git a/src/com/android/contacts/activities/ContactEditorActivity.java b/src/com/android/contacts/activities/ContactEditorActivity.java
index d12da85..5f382a7 100644
--- a/src/com/android/contacts/activities/ContactEditorActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorActivity.java
@@ -30,6 +30,7 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
+import android.widget.TextView;
 
 import com.android.contacts.ContactSaveService;
 import com.android.contacts.ContactsActivity;
@@ -39,6 +40,7 @@
 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.interactions.ContactDeletionInteraction;
 import com.android.contacts.util.DialogManager;
 
 import java.util.ArrayList;
@@ -105,6 +107,14 @@
                     mFragment.doSaveAction();
                 }
             });
+            TextView title = (TextView) customActionBarView.findViewById(R.id.title);
+            if (Intent.ACTION_EDIT.equals(action)) {
+                title.setText(getResources().getString(
+                        R.string.contact_editor_title_existing_contact));
+            } else {
+                title.setText(getResources().getString(
+                        R.string.contact_editor_title_new_contact));
+            }
             // Show the custom action bar but hide the home icon and title
             actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
                     ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME |
@@ -156,6 +166,12 @@
 
     private final ContactEditorFragment.Listener mFragmentListener =
             new ContactEditorFragment.Listener() {
+
+        @Override
+        public void onDeleteRequested(Uri contactUri) {
+            ContactDeletionInteraction.start(ContactEditorActivity.this, contactUri, true);
+        }
+
         @Override
         public void onReverted() {
             finish();
diff --git a/src/com/android/contacts/activities/ContactSelectionActivity.java b/src/com/android/contacts/activities/ContactSelectionActivity.java
index 9bb7395..c35f192 100644
--- a/src/com/android/contacts/activities/ContactSelectionActivity.java
+++ b/src/com/android/contacts/activities/ContactSelectionActivity.java
@@ -27,6 +27,7 @@
 import android.os.Bundle;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Intents.Insert;
+import android.provider.ContactsContract.Intents.UI;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -50,6 +51,7 @@
 import com.android.contacts.list.ContactsRequest;
 import com.android.contacts.common.list.DirectoryListLoader;
 import com.android.contacts.list.EmailAddressPickerFragment;
+import com.android.contacts.list.JoinContactListFragment;
 import com.android.contacts.list.LegacyPhoneNumberPickerFragment;
 import com.android.contacts.list.OnContactPickerActionListener;
 import com.android.contacts.list.OnEmailAddressPickerActionListener;
@@ -73,22 +75,18 @@
     private static final int SUBACTIVITY_ADD_TO_EXISTING_CONTACT = 0;
 
     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;
 
-    // Delay to allow the UI to settle before making search view visible
-    private static final int FOCUS_DELAY = 200;
-
     private ContactsIntentResolver mIntentResolver;
     protected ContactEntryListFragment<?> mListFragment;
 
     private int mActionCode = -1;
+    private boolean mIsSearchMode;
 
     private ContactsRequest mRequest;
     private SearchView mSearchView;
-    /**
-     * Can be null. If null, the "Create New Contact" button should be on the menu.
-     */
-    private View mCreateNewContactButton;
+    private View mSearchViewContainer;
 
     public ContactSelectionActivity() {
         mIntentResolver = new ContactsIntentResolver(this);
@@ -108,6 +106,7 @@
 
         if (savedState != null) {
             mActionCode = savedState.getInt(KEY_ACTION_CODE);
+            mIsSearchMode = savedState.getBoolean(KEY_SEARCH_MODE);
         }
 
         // Extract relevant information from the intent
@@ -136,31 +135,19 @@
         }
 
         prepareSearchViewAndActionBar();
-
-        mCreateNewContactButton = findViewById(R.id.new_contact);
-        if (mCreateNewContactButton != null) {
-            if (shouldShowCreateNewContactButton()) {
-                mCreateNewContactButton.setVisibility(View.VISIBLE);
-                mCreateNewContactButton.setOnClickListener(this);
-            } else {
-                mCreateNewContactButton.setVisibility(View.GONE);
-            }
-        }
-    }
-
-    private boolean shouldShowCreateNewContactButton() {
-        return (mActionCode == ContactsRequest.ACTION_INSERT_OR_EDIT_CONTACT
-                || (mActionCode == ContactsRequest.ACTION_PICK_OR_CREATE_CONTACT
-                        && !mRequest.isSearchMode()));
     }
 
     private void prepareSearchViewAndActionBar() {
+        final ActionBar actionBar = getActionBar();
+        mSearchViewContainer = LayoutInflater.from(actionBar.getThemedContext())
+                .inflate(R.layout.custom_action_bar, null);
+        mSearchView = (SearchView) mSearchViewContainer.findViewById(R.id.search_view);
+
         // 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()) {
-            findViewById(R.id.search_view).setVisibility(View.GONE);
-            final ActionBar actionBar = getActionBar();
+            mSearchView.setVisibility(View.GONE);
             if (actionBar != null) {
                 actionBar.setDisplayShowHomeEnabled(true);
                 actionBar.setDisplayHomeAsUpEnabled(true);
@@ -169,64 +156,39 @@
             return;
         }
 
-        // If ActionBar is available, show SearchView on it. If not, show SearchView inside the
-        // Activity's layout.
-        final ActionBar actionBar = getActionBar();
-        if (actionBar != null) {
-            final View searchViewOnLayout = findViewById(R.id.search_view);
-            if (searchViewOnLayout != null) {
-                searchViewOnLayout.setVisibility(View.GONE);
-            }
+        actionBar.setDisplayShowHomeEnabled(true);
+        actionBar.setDisplayHomeAsUpEnabled(true);
 
-            final View searchViewContainer = LayoutInflater.from(actionBar.getThemedContext())
-                    .inflate(R.layout.custom_action_bar, null);
-            mSearchView = (SearchView) searchViewContainer.findViewById(R.id.search_view);
+        // In order to make the SearchView look like "shown via search menu", we need to
+        // manually setup its state. See also DialtactsActivity.java and ActionBarAdapter.java.
+        mSearchView.setIconifiedByDefault(true);
+        mSearchView.setQueryHint(getString(R.string.hint_findContacts));
+        mSearchView.setIconified(false);
+        mSearchView.setFocusable(true);
 
-            // In order to make the SearchView look like "shown via search menu", we need to
-            // manually setup its state. See also DialtactsActivity.java and ActionBarAdapter.java.
-            mSearchView.setIconifiedByDefault(true);
-            mSearchView.setQueryHint(getString(R.string.hint_findContacts));
-            mSearchView.setIconified(false);
+        mSearchView.setOnQueryTextListener(this);
+        mSearchView.setOnCloseListener(this);
+        mSearchView.setOnQueryTextFocusChangeListener(this);
 
-            mSearchView.setOnQueryTextListener(this);
-            mSearchView.setOnCloseListener(this);
-            mSearchView.setOnQueryTextFocusChangeListener(this);
+        actionBar.setCustomView(mSearchViewContainer,
+                new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
+        actionBar.setDisplayShowCustomEnabled(true);
 
-            actionBar.setCustomView(searchViewContainer,
-                    new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
-            actionBar.setDisplayShowCustomEnabled(true);
-            actionBar.setDisplayShowHomeEnabled(true);
-            actionBar.setDisplayHomeAsUpEnabled(true);
-        } else {
-            mSearchView = (SearchView) findViewById(R.id.search_view);
-            mSearchView.setQueryHint(getString(R.string.hint_findContacts));
-            mSearchView.setOnQueryTextListener(this);
-
-            // This is a hack to prevent the search view from grabbing focus
-            // at this point.  If search view were visible, it would always grabs focus
-            // because it is the first focusable widget in the window.
-            mSearchView.setVisibility(View.INVISIBLE);
-            mSearchView.postDelayed(new Runnable() {
-                @Override
-                public void run() {
-                    mSearchView.setVisibility(View.VISIBLE);
-                }
-            }, FOCUS_DELAY);
-        }
-
-        // Clear focus and suppress keyboard show-up.
-        mSearchView.clearFocus();
+        configureSearchMode();
     }
 
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        // If we want "Create New Contact" button but there's no such a button in the layout,
-        // try showing a menu for it.
-        if (shouldShowCreateNewContactButton() && mCreateNewContactButton == null) {
-            MenuInflater inflater = getMenuInflater();
-            inflater.inflate(R.menu.contact_picker_options, menu);
+    private void configureSearchMode() {
+        final ActionBar actionBar = getActionBar();
+        if (mIsSearchMode) {
+            actionBar.setDisplayShowTitleEnabled(false);
+            mSearchViewContainer.setVisibility(View.VISIBLE);
+            mSearchView.requestFocus();
+        } else {
+            actionBar.setDisplayShowTitleEnabled(true);
+            mSearchViewContainer.setVisibility(View.GONE);
+            mSearchView.setQuery(null, true);
         }
-        return true;
+        invalidateOptionsMenu();
     }
 
     @Override
@@ -235,12 +197,12 @@
             case android.R.id.home:
                 // Go back to previous screen, intending "cancel"
                 setResult(RESULT_CANCELED);
-                finish();
+                onBackPressed();
                 return true;
-            case R.id.create_new_contact: {
-                startCreateNewContactActivity();
+            case R.id.menu_search:
+                mIsSearchMode = !mIsSearchMode;
+                configureSearchMode();
                 return true;
-            }
         }
         return super.onOptionsItemSelected(item);
     }
@@ -249,6 +211,7 @@
     protected void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
         outState.putInt(KEY_ACTION_CODE, mActionCode);
+        outState.putBoolean(KEY_SEARCH_MODE, mIsSearchMode);
     }
 
     private void configureActivityTitle() {
@@ -303,6 +266,11 @@
                 setTitle(R.string.contactPickerActivityTitle);
                 break;
             }
+
+            case ContactsRequest.ACTION_PICK_JOIN: {
+                setTitle(R.string.titleJoinContactDataWith);
+                break;
+            }
         }
     }
 
@@ -315,6 +283,7 @@
                 ContactPickerFragment fragment = new ContactPickerFragment();
                 fragment.setEditMode(true);
                 fragment.setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_NONE);
+                fragment.setCreateContactEnabled(!mRequest.isSearchMode());
                 mListFragment = fragment;
                 break;
             }
@@ -329,6 +298,7 @@
 
             case ContactsRequest.ACTION_PICK_OR_CREATE_CONTACT: {
                 ContactPickerFragment fragment = new ContactPickerFragment();
+                fragment.setCreateContactEnabled(!mRequest.isSearchMode());
                 mListFragment = fragment;
                 break;
             }
@@ -369,10 +339,18 @@
 
             case ContactsRequest.ACTION_PICK_POSTAL: {
                 PostalAddressPickerFragment fragment = new PostalAddressPickerFragment();
+
                 mListFragment = fragment;
                 break;
             }
 
+            case ContactsRequest.ACTION_PICK_JOIN: {
+                JoinContactListFragment joinFragment = new JoinContactListFragment();
+                joinFragment.setTargetContactId(getTargetContactId());
+                mListFragment = joinFragment;
+                break;
+            }
+
             default:
                 throw new IllegalStateException("Invalid action code: " + mActionCode);
         }
@@ -409,6 +387,9 @@
         } else if (mListFragment instanceof EmailAddressPickerFragment) {
             ((EmailAddressPickerFragment) mListFragment).setOnEmailAddressPickerActionListener(
                     new EmailAddressPickerActionListener());
+        } else if (mListFragment instanceof JoinContactListFragment) {
+            ((JoinContactListFragment) mListFragment).setOnContactPickerActionListener(
+                    new JoinContactActionListener());
         } else {
             throw new IllegalStateException("Unsupported list fragment type: " + mListFragment);
         }
@@ -508,6 +489,11 @@
         }
 
         @Override
+        public void onCallNumberDirectly(String phoneNumber, boolean isVideoCall) {
+            Log.w(TAG, "Unsupported call.");
+        }
+
+        @Override
         public void onShortcutIntentCreated(Intent intent) {
             returnPickerResult(intent);
         }
@@ -517,6 +503,27 @@
         }
     }
 
+    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 PostalAddressPickerActionListener implements
             OnPostalAddressPickerActionListener {
         @Override
@@ -596,13 +603,26 @@
     @Override
     public void onClick(View view) {
         switch (view.getId()) {
-            case R.id.new_contact: {
+            case R.id.floating_action_button: {
                 startCreateNewContactActivity();
                 break;
             }
         }
     }
 
+    private long getTargetContactId() {
+        Intent intent = getIntent();
+        final long targetContactId = intent.getLongExtra(UI.TARGET_CONTACT_ID_EXTRA_KEY, -1);
+        if (targetContactId == -1) {
+            Log.e(TAG, "Intent " + intent.getAction() + " is missing required extra: "
+                    + UI.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);
@@ -631,4 +651,26 @@
             }
         }
     }
+
+    @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);
+        return true;
+    }
+
+    @Override
+    public void onBackPressed() {
+        if (mIsSearchMode) {
+            mIsSearchMode = false;
+            configureSearchMode();
+        } else {
+            super.onBackPressed();
+        }
+    }
 }
diff --git a/src/com/android/contacts/activities/GroupEditorActivity.java b/src/com/android/contacts/activities/GroupEditorActivity.java
index ff9301b..b204418 100644
--- a/src/com/android/contacts/activities/GroupEditorActivity.java
+++ b/src/com/android/contacts/activities/GroupEditorActivity.java
@@ -145,20 +145,13 @@
 
         @Override
         public void onSaveFinished(int resultCode, Intent resultIntent) {
-            // TODO: Collapse these 2 cases into 1 that will just launch an intent with the VIEW
-            // action to see the group URI (when group URIs are supported)
-            // For a 2-pane screen, set the activity result, so the original activity (that launched
-            // the editor) can display the group detail page
-            if (PhoneCapabilityTester.isUsingTwoPanes(GroupEditorActivity.this)) {
-                setResult(resultCode, resultIntent);
-            } else if (resultIntent != null) {
-                // For a 1-pane screen, launch the group detail page
+            if (resultIntent != null) {
                 Intent intent = new Intent(GroupEditorActivity.this, GroupDetailActivity.class);
                 intent.setData(resultIntent.getData());
                 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                 startActivity(intent);
+                finish();
             }
-            finish();
         }
     };
 
diff --git a/src/com/android/contacts/activities/JoinContactActivity.java b/src/com/android/contacts/activities/JoinContactActivity.java
deleted file mode 100644
index c345a01..0000000
--- a/src/com/android/contacts/activities/JoinContactActivity.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.activities;
-
-
-import android.app.ActionBar;
-import android.app.ActionBar.LayoutParams;
-import android.app.Fragment;
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.ContactsContract;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.View.OnFocusChangeListener;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.SearchView;
-import android.widget.SearchView.OnCloseListener;
-import android.widget.SearchView.OnQueryTextListener;
-
-import com.android.contacts.ContactsActivity;
-import com.android.contacts.R;
-import com.android.contacts.common.list.ContactEntryListFragment;
-import com.android.contacts.list.JoinContactListFragment;
-import com.android.contacts.list.OnContactPickerActionListener;
-
-/**
- * An activity that shows a list of contacts that can be joined with the target contact.
- */
-public class JoinContactActivity extends ContactsActivity
-        implements OnQueryTextListener, OnCloseListener, OnFocusChangeListener {
-
-    private static final String TAG = "JoinContactActivity";
-
-    /**
-     * The action for the join contact activity.
-     * <p>
-     * Input: extra field {@link #EXTRA_TARGET_CONTACT_ID} is the aggregate ID.
-     * TODO: move to {@link ContactsContract}.
-     */
-    public static final String JOIN_CONTACT = "com.android.contacts.action.JOIN_CONTACT";
-
-    /**
-     * Used with {@link #JOIN_CONTACT} to give it the target for aggregation.
-     * <p>
-     * Type: LONG
-     */
-    public static final String EXTRA_TARGET_CONTACT_ID = "com.android.contacts.action.CONTACT_ID";
-
-    private static final String KEY_TARGET_CONTACT_ID = "targetContactId";
-
-    private long mTargetContactId;
-
-    private JoinContactListFragment mListFragment;
-    private SearchView mSearchView;
-
-    @Override
-    public void onAttachFragment(Fragment fragment) {
-        if (fragment instanceof JoinContactListFragment) {
-            mListFragment = (JoinContactListFragment) fragment;
-            setupActionListener();
-        }
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        Intent intent = getIntent();
-        mTargetContactId = intent.getLongExtra(EXTRA_TARGET_CONTACT_ID, -1);
-        if (mTargetContactId == -1) {
-            Log.e(TAG, "Intent " + intent.getAction() + " is missing required extra: "
-                    + EXTRA_TARGET_CONTACT_ID);
-            setResult(RESULT_CANCELED);
-            finish();
-            return;
-        }
-
-        setContentView(R.layout.join_contact_picker);
-        setTitle(R.string.titleJoinContactDataWith);
-
-        if (mListFragment == null) {
-            mListFragment = new JoinContactListFragment();
-
-            getFragmentManager().beginTransaction()
-                    .replace(R.id.list_container, mListFragment)
-                    .commitAllowingStateLoss();
-        }
-
-        prepareSearchViewAndActionBar();
-    }
-
-    private void setupActionListener() {
-        mListFragment.setTargetContactId(mTargetContactId);
-        mListFragment.setOnContactPickerActionListener(new 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 void prepareSearchViewAndActionBar() {
-        final ActionBar actionBar = getActionBar();
-        if (actionBar != null) {
-            final View searchViewOnLayout = findViewById(R.id.search_view);
-            if (searchViewOnLayout != null) {
-                searchViewOnLayout.setVisibility(View.GONE);
-            }
-
-            final View searchViewLayout = LayoutInflater.from(actionBar.getThemedContext())
-                    .inflate(R.layout.custom_action_bar, null);
-            mSearchView = (SearchView) searchViewLayout.findViewById(R.id.search_view);
-
-            // In order to make the SearchView look like "shown via search menu", we need to
-            // manually setup its state. See also DialtactsActivity.java and ActionBarAdapter.java.
-            mSearchView.setIconifiedByDefault(true);
-            mSearchView.setQueryHint(getString(R.string.hint_findContacts));
-            mSearchView.setIconified(false);
-
-            mSearchView.setOnQueryTextListener(this);
-            mSearchView.setOnCloseListener(this);
-            mSearchView.setOnQueryTextFocusChangeListener(this);
-
-            actionBar.setCustomView(searchViewLayout,
-                    new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
-            actionBar.setDisplayShowCustomEnabled(true);
-            actionBar.setDisplayShowHomeEnabled(true);
-            actionBar.setDisplayHomeAsUpEnabled(true);
-        } else {
-            mSearchView = (SearchView) findViewById(R.id.search_view);
-            mSearchView.setQueryHint(getString(R.string.hint_findContacts));
-            mSearchView.setOnQueryTextListener(this);
-            mSearchView.setOnQueryTextFocusChangeListener(this);
-        }
-
-        // Clear focus and suppress keyboard show-up.
-        mSearchView.clearFocus();
-    }
-
-    @Override
-    public boolean onQueryTextChange(String newText) {
-        mListFragment.setQueryString(newText, true);
-        return false;
-    }
-
-    @Override
-    public boolean onQueryTextSubmit(String query) {
-        return false;
-    }
-
-    @Override
-    public boolean onClose() {
-        if (!TextUtils.isEmpty(mSearchView.getQuery())) {
-            mSearchView.setQuery(null, true);
-        }
-        return true;
-    }
-
-    @Override
-    public void onFocusChange(View view, boolean hasFocus) {
-        switch (view.getId()) {
-            case R.id.search_view: {
-                if (hasFocus) {
-                    showInputMethod(mSearchView.findFocus());
-                }
-            }
-        }
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case android.R.id.home:
-                // Go back to previous screen, intending "cancel"
-                setResult(RESULT_CANCELED);
-                finish();
-                return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putLong(KEY_TARGET_CONTACT_ID, mTargetContactId);
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Bundle savedInstanceState) {
-        super.onRestoreInstanceState(savedInstanceState);
-        mTargetContactId = savedInstanceState.getLong(KEY_TARGET_CONTACT_ID);
-    }
-
-    @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (requestCode == ContactEntryListFragment.ACTIVITY_REQUEST_CODE_PICKER
-                && resultCode == RESULT_OK) {
-            mListFragment.onPickerResult(data);
-        }
-    }
-
-    private void showInputMethod(View view) {
-        final InputMethodManager imm = (InputMethodManager)
-                getSystemService(Context.INPUT_METHOD_SERVICE);
-        if (imm != null) {
-            if (!imm.showSoftInput(view, 0)) {
-                Log.w(TAG, "Failed to show soft input method.");
-            }
-        }
-    }
-}
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index bfcd79e..75f3607 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -19,13 +19,12 @@
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.app.FragmentTransaction;
-import android.content.ActivityNotFoundException;
-import android.content.ContentValues;
+import android.content.Context;
 import android.content.Intent;
+import android.content.res.TypedArray;
 import android.graphics.Rect;
 import android.net.Uri;
 import android.os.Bundle;
-import android.os.Handler;
 import android.os.Parcelable;
 import android.os.UserManager;
 import android.preference.PreferenceActivity;
@@ -44,81 +43,64 @@
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
-import android.view.MenuItem.OnMenuItemClickListener;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.Toast;
+import android.view.Window;
+import android.widget.ImageButton;
+import android.widget.Toolbar;
 
-import com.android.contacts.ContactSaveService;
 import com.android.contacts.ContactsActivity;
 import com.android.contacts.R;
 import com.android.contacts.activities.ActionBarAdapter.TabState;
-import com.android.contacts.detail.ContactDetailFragment;
-import com.android.contacts.detail.ContactDetailLayoutController;
-import com.android.contacts.detail.ContactDetailUpdatesFragment;
-import com.android.contacts.detail.ContactLoaderFragment;
-import com.android.contacts.detail.ContactLoaderFragment.ContactLoaderFragmentListener;
 import com.android.contacts.common.ContactsUtils;
 import com.android.contacts.common.dialog.ClearFrequentsDialog;
-import com.android.contacts.group.GroupBrowseListFragment;
-import com.android.contacts.group.GroupBrowseListFragment.OnGroupBrowserActionListener;
-import com.android.contacts.group.GroupDetailFragment;
 import com.android.contacts.interactions.ContactDeletionInteraction;
 import com.android.contacts.common.interactions.ImportExportDialogFragment;
-import com.android.contacts.list.ContactBrowseListFragment;
 import com.android.contacts.common.list.ContactEntryListFragment;
 import com.android.contacts.common.list.ContactListFilter;
 import com.android.contacts.common.list.ContactListFilterController;
 import com.android.contacts.common.list.ContactTileAdapter.DisplayType;
-import com.android.contacts.list.ContactTileFrequentFragment;
 import com.android.contacts.list.ContactTileListFragment;
 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.common.list.DirectoryListLoader;
+import com.android.contacts.common.preference.DisplayOptionsPreferenceFragment;
 import com.android.contacts.list.OnContactBrowserActionListener;
 import com.android.contacts.list.OnContactsUnavailableActionListener;
 import com.android.contacts.list.ProviderStatusWatcher;
 import com.android.contacts.list.ProviderStatusWatcher.ProviderStatusListener;
-import com.android.contacts.common.model.Contact;
-import com.android.contacts.common.model.account.AccountWithDataSet;
+import com.android.contacts.common.list.ViewPagerTabs;
 import com.android.contacts.preference.ContactsPreferenceActivity;
-import com.android.contacts.preference.DisplayOptionsPreferenceFragment;
 import com.android.contacts.common.util.AccountFilterUtil;
+import com.android.contacts.common.util.ViewUtil;
+import com.android.contacts.quickcontact.QuickContactActivity;
 import com.android.contacts.util.AccountPromptUtils;
 import com.android.contacts.common.util.Constants;
 import com.android.contacts.util.DialogManager;
 import com.android.contacts.util.HelpUtils;
-import com.android.contacts.util.PhoneCapabilityTester;
-import com.android.contacts.common.util.UriUtils;
-import com.android.contacts.widget.TransitionAnimationView;
 
-import java.util.ArrayList;
 import java.util.Locale;
 import java.util.concurrent.atomic.AtomicInteger;
 
 /**
- * Displays a list to browse contacts. For xlarge screens, this also displays a detail-pane on
- * the right.
+ * Displays a list to browse contacts.
  */
-public class PeopleActivity extends ContactsActivity
-        implements View.OnCreateContextMenuListener, ActionBarAdapter.Listener,
+public class PeopleActivity extends ContactsActivity implements
+        View.OnCreateContextMenuListener,
+        View.OnClickListener,
+        ActionBarAdapter.Listener,
         DialogManager.DialogShowingViewActivity,
-        ContactListFilterController.ContactListFilterListener, ProviderStatusListener {
+        ContactListFilterController.ContactListFilterListener,
+        ProviderStatusListener {
 
     private static final String TAG = "PeopleActivity";
 
-    private static final int TAB_FADE_IN_DURATION = 500;
-
     private static final String ENABLE_DEBUG_OPTIONS_HIDDEN_CODE = "debug debug!";
 
     // These values needs to start at 2. See {@link ContactEntryListFragment}.
-    private static final int SUBACTIVITY_NEW_CONTACT = 2;
-    private static final int SUBACTIVITY_EDIT_CONTACT = 3;
-    private static final int SUBACTIVITY_NEW_GROUP = 4;
-    private static final int SUBACTIVITY_EDIT_GROUP = 5;
-    private static final int SUBACTIVITY_ACCOUNT_FILTER = 6;
+    private static final int SUBACTIVITY_ACCOUNT_FILTER = 2;
 
     private final DialogManager mDialogManager = new DialogManager(this);
 
@@ -127,16 +109,6 @@
 
     private ActionBarAdapter mActionBarAdapter;
 
-    private ContactDetailFragment mContactDetailFragment;
-
-    private ContactLoaderFragment mContactDetailLoaderFragment;
-    private final ContactDetailLoaderFragmentListener mContactDetailLoaderFragmentListener =
-            new ContactDetailLoaderFragmentListener();
-
-    private GroupDetailFragment mGroupDetailFragment;
-    private final GroupDetailFragmentListener mGroupDetailFragmentListener =
-            new GroupDetailFragmentListener();
-
     private ContactTileListFragment.Listener mFavoritesFragmentListener =
             new StrequentContactListFragmentListener();
 
@@ -153,26 +125,16 @@
      */
     private DefaultContactBrowseListFragment mAllFragment;
     private ContactTileListFragment mFavoritesFragment;
-    private ContactTileFrequentFragment mFrequentFragment;
-    private GroupBrowseListFragment mGroupsFragment;
 
-    private View mFavoritesView;
-    private View mBrowserView;
-    private TransitionAnimationView mPeopleActivityView;
-    private TransitionAnimationView mContactDetailsView;
-    private TransitionAnimationView mGroupDetailsView;
-
-    /** ViewPager for swipe, used only on the phone (i.e. one-pane mode) */
+    /** ViewPager for swipe */
     private ViewPager mTabPager;
+    private ViewPagerTabs mViewPagerTabs;
     private TabPagerAdapter mTabPagerAdapter;
+    private String[] mTabTitles;
     private final TabPagerListener mTabPagerListener = new TabPagerListener();
 
-    private ContactDetailLayoutController mContactDetailLayoutController;
-
     private boolean mEnableDebugMenuOptions;
 
-    private final Handler mHandler = new Handler();
-
     /**
      * 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}.
@@ -188,14 +150,6 @@
     private boolean mFragmentInitialized;
 
     /**
-     * Whether or not the current contact filter is valid or not. We need to do a check on
-     * start of the app to verify that the user is not in single contact mode. If so, we should
-     * dynamically change the filter, unless the incoming intent specifically requested a contact
-     * that should be displayed in that mode.
-     */
-    private boolean mCurrentFilterIsValid;
-
-    /**
      * This is to disable {@link #onOptionsItemSelected} when we trying to stop the activity.
      */
     private boolean mDisableOptionItemSelected;
@@ -235,18 +189,14 @@
      * For the fragments that are in the layout, we initialize them in
      * {@link #createViewsAndFragments(Bundle)} after inflating the layout.
      *
-     * However, there are special fragments which may not be in the layout, so we have to do the
-     * initialization here.
-     * The target fragments are:
-     * - {@link ContactDetailFragment} and {@link ContactDetailUpdatesFragment}:  They may not be
-     *   in the layout depending on the configuration.  (i.e. portrait)
-     * - {@link ContactsUnavailableFragment}: We always create it at runtime.
+     * 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 ContactDetailFragment) {
-            mContactDetailFragment = (ContactDetailFragment) fragment;
-        } else if (fragment instanceof ContactsUnavailableFragment) {
+        if (fragment instanceof ContactsUnavailableFragment) {
             mContactsUnavailableFragment = (ContactsUnavailableFragment)fragment;
             mContactsUnavailableFragment.setOnContactsUnavailableActionListener(
                     new ContactsUnavailableFragmentListener());
@@ -272,10 +222,11 @@
 
         mIsRecreatedInstance = (savedState != null);
         createViewsAndFragments(savedState);
-        getWindow().setBackgroundDrawableResource(R.color.background_primary);
+
         if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) {
             Log.d(Constants.PERFORMANCE_TAG, "PeopleActivity.onCreate finish");
         }
+        getWindow().setBackgroundDrawable(null);
     }
 
     @Override
@@ -288,7 +239,6 @@
         mActionBarAdapter.initialize(null, mRequest);
 
         mContactListFilterController.checkFilterValidity(false);
-        mCurrentFilterIsValid = true;
 
         // Re-configure fragments.
         configureFragments(true /* from request */);
@@ -323,9 +273,8 @@
             return false;
         }
 
-        if (mRequest.getActionCode() == ContactsRequest.ACTION_VIEW_CONTACT
-                && !PhoneCapabilityTester.isUsingTwoPanes(this)) {
-            redirect = new Intent(this, ContactDetailActivity.class);
+        if (mRequest.getActionCode() == ContactsRequest.ACTION_VIEW_CONTACT) {
+            redirect = new Intent(this, QuickContactActivity.class);
             redirect.setAction(Intent.ACTION_VIEW);
             redirect.setData(mRequest.getContactUri());
             startActivity(redirect);
@@ -335,6 +284,10 @@
     }
 
     private void createViewsAndFragments(Bundle savedState) {
+        // Disable the ActionBar so that we can use a Toolbar. This needs to be called before
+        // setContentView().
+        getWindow().requestFeature(Window.FEATURE_NO_TITLE);
+
         setContentView(R.layout.people_activity);
 
         final FragmentManager fragmentManager = getFragmentManager();
@@ -342,112 +295,80 @@
         // Hide all tabs (the current tab will later be reshown once a tab is selected)
         final FragmentTransaction transaction = fragmentManager.beginTransaction();
 
-        // Prepare the fragments which are used both on 1-pane and on 2-pane.
-        final boolean isUsingTwoPanes = PhoneCapabilityTester.isUsingTwoPanes(this);
-        if (isUsingTwoPanes) {
-            mFavoritesFragment = getFragment(R.id.favorites_fragment);
-            mAllFragment = getFragment(R.id.all_fragment);
-            mGroupsFragment = getFragment(R.id.groups_fragment);
+        mTabTitles = new String[TabState.COUNT];
+        mTabTitles[TabState.FAVORITES] = getString(R.string.favorites_tab_label);
+        mTabTitles[TabState.ALL] = getString(R.string.all_contacts_tab_label);
+        mTabPager = getView(R.id.tab_pager);
+        mTabPagerAdapter = new TabPagerAdapter();
+        mTabPager.setAdapter(mTabPagerAdapter);
+        mTabPager.setOnPageChangeListener(mTabPagerListener);
+
+        // Configure toolbar and toolbar tabs. If in landscape mode, we  configure tabs differntly.
+        final Toolbar toolbar = getView(R.id.toolbar);
+        setActionBar(toolbar);
+        final ViewPagerTabs portraitViewPagerTabs
+                = (ViewPagerTabs) findViewById(R.id.lists_pager_header);
+        ViewPagerTabs landscapeViewPagerTabs = null;
+        if (portraitViewPagerTabs ==  null) {
+            landscapeViewPagerTabs = (ViewPagerTabs) getLayoutInflater().inflate(
+                    R.layout.people_activity_tabs_lands, toolbar, /* attachToRoot = */ false);
+            mViewPagerTabs = landscapeViewPagerTabs;
         } else {
-            mTabPager = getView(R.id.tab_pager);
-            mTabPagerAdapter = new TabPagerAdapter();
-            mTabPager.setAdapter(mTabPagerAdapter);
-            mTabPager.setOnPageChangeListener(mTabPagerListener);
+            mViewPagerTabs = portraitViewPagerTabs;
+        }
+        mViewPagerTabs.setViewPager(mTabPager);
 
-            final String FAVORITE_TAG = "tab-pager-favorite";
-            final String ALL_TAG = "tab-pager-all";
-            final String GROUPS_TAG = "tab-pager-groups";
+        final String FAVORITE_TAG = "tab-pager-favorite";
+        final String ALL_TAG = "tab-pager-all";
 
-            // Create the fragments and add as children of the view pager.
-            // The pager adapter will only change the visibility; it'll never create/destroy
-            // fragments.
-            // However, if it's after screen rotation, the fragments have been re-created by
-            // the fragment manager, so first see if there're already the target fragments
-            // existing.
-            mFavoritesFragment = (ContactTileListFragment)
-                    fragmentManager.findFragmentByTag(FAVORITE_TAG);
-            mAllFragment = (DefaultContactBrowseListFragment)
-                    fragmentManager.findFragmentByTag(ALL_TAG);
-            mGroupsFragment = (GroupBrowseListFragment)
-                    fragmentManager.findFragmentByTag(GROUPS_TAG);
+        // Create the fragments and add as children of the view pager.
+        // The pager adapter will only change the visibility; it'll never create/destroy
+        // fragments.
+        // However, if it's after screen rotation, the fragments have been re-created by
+        // the fragment manager, so first see if there're already the target fragments
+        // existing.
+        mFavoritesFragment = (ContactTileListFragment)
+                fragmentManager.findFragmentByTag(FAVORITE_TAG);
+        mAllFragment = (DefaultContactBrowseListFragment)
+                fragmentManager.findFragmentByTag(ALL_TAG);
 
-            if (mFavoritesFragment == null) {
-                mFavoritesFragment = new ContactTileListFragment();
-                mAllFragment = new DefaultContactBrowseListFragment();
-                mGroupsFragment = new GroupBrowseListFragment();
+        if (mFavoritesFragment == null) {
+            mFavoritesFragment = new ContactTileListFragment();
+            mAllFragment = new DefaultContactBrowseListFragment();
 
-                transaction.add(R.id.tab_pager, mFavoritesFragment, FAVORITE_TAG);
-                transaction.add(R.id.tab_pager, mAllFragment, ALL_TAG);
-                transaction.add(R.id.tab_pager, mGroupsFragment, GROUPS_TAG);
-            }
+            transaction.add(R.id.tab_pager, mFavoritesFragment, FAVORITE_TAG);
+            transaction.add(R.id.tab_pager, mAllFragment, ALL_TAG);
         }
 
         mFavoritesFragment.setListener(mFavoritesFragmentListener);
 
         mAllFragment.setOnContactListActionListener(new ContactBrowserActionListener());
 
-        mGroupsFragment.setListener(new GroupBrowserActionListener());
-
         // Hide all fragments for now.  We adjust visibility when we get onSelectedTabChanged()
         // from ActionBarAdapter.
         transaction.hide(mFavoritesFragment);
         transaction.hide(mAllFragment);
-        transaction.hide(mGroupsFragment);
 
-        if (isUsingTwoPanes) {
-            // Prepare 2-pane only fragments/views...
-
-            // Container views for fragments
-            mPeopleActivityView = getView(R.id.people_view);
-            mFavoritesView = getView(R.id.favorites_view);
-            mContactDetailsView = getView(R.id.contact_details_view);
-            mGroupDetailsView = getView(R.id.group_details_view);
-            mBrowserView = getView(R.id.browse_view);
-
-            // Only favorites tab with two panes has a separate frequent fragment
-            if (PhoneCapabilityTester.isUsingTwoPanesInFavorites(this)) {
-                mFrequentFragment = getFragment(R.id.frequent_fragment);
-                mFrequentFragment.setListener(mFavoritesFragmentListener);
-                mFrequentFragment.setDisplayType(DisplayType.FREQUENT_ONLY);
-                mFrequentFragment.enableQuickContact(true);
-            }
-
-            mContactDetailLoaderFragment = getFragment(R.id.contact_detail_loader_fragment);
-            mContactDetailLoaderFragment.setListener(mContactDetailLoaderFragmentListener);
-
-            mGroupDetailFragment = getFragment(R.id.group_detail_fragment);
-            mGroupDetailFragment.setListener(mGroupDetailFragmentListener);
-            mGroupDetailFragment.setQuickContact(true);
-
-            if (mContactDetailFragment != null) {
-                transaction.hide(mContactDetailFragment);
-            }
-            transaction.hide(mGroupDetailFragment);
-
-            // Configure contact details
-            mContactDetailLayoutController = new ContactDetailLayoutController(this, savedState,
-                    getFragmentManager(), mContactDetailsView,
-                    findViewById(R.id.contact_detail_container),
-                    new ContactDetailFragmentListener());
-        }
         transaction.commitAllowingStateLoss();
         fragmentManager.executePendingTransactions();
 
         // Setting Properties after fragment is created
-        if (PhoneCapabilityTester.isUsingTwoPanesInFavorites(this)) {
-            mFavoritesFragment.enableQuickContact(true);
-            mFavoritesFragment.setDisplayType(DisplayType.STARRED_ONLY);
-        } else {
-            // For 2-pane in All and Groups but not in Favorites fragment, show the chevron
-            // for quick contact popup
-            mFavoritesFragment.enableQuickContact(isUsingTwoPanes);
-            mFavoritesFragment.setDisplayType(DisplayType.STREQUENT);
-        }
+        mFavoritesFragment.setDisplayType(DisplayType.STREQUENT);
 
-        // Configure action bar
-        mActionBarAdapter = new ActionBarAdapter(this, this, getActionBar(), isUsingTwoPanes);
+        mActionBarAdapter = new ActionBarAdapter(this, this, getActionBar(),
+                portraitViewPagerTabs, landscapeViewPagerTabs, toolbar);
         mActionBarAdapter.initialize(savedState, mRequest);
 
+        // Add shadow under toolbar
+        ViewUtil.addRectangularOutlineProvider(findViewById(R.id.toolbar_parent), getResources());
+
+        // Configure action button
+        final View floatingActionButtonContainer = findViewById(
+                R.id.floating_action_button_container);
+        ViewUtil.setupFloatingActionButton(floatingActionButtonContainer, getResources());
+        final ImageButton floatingActionButton = (ImageButton) findViewById(R.id.floating_action_button);
+        floatingActionButton.setOnClickListener(this);
+
         invalidateOptionsMenuIfNeeded();
     }
 
@@ -471,19 +392,6 @@
              * (so the argument.)
              */
             configureFragments(!mIsRecreatedInstance);
-        } else if (PhoneCapabilityTester.isUsingTwoPanes(this) && !mCurrentFilterIsValid) {
-            // We only want to do the filter check in onStart for wide screen devices where it
-            // is often possible to get into single contact mode. Only do this check if
-            // the filter hasn't already been set properly (i.e. onCreate or onActivityResult).
-
-            // Since there is only one {@link ContactListFilterController} across multiple
-            // activity instances, make sure the filter controller is in sync withthe current
-            // contact list fragment filter.
-            // TODO: Clean this up. Perhaps change {@link ContactListFilterController} to not be a
-            // singleton?
-            mContactListFilterController.setContactListFilter(mAllFragment.getFilter(), true);
-            mContactListFilterController.checkFilterValidity(true);
-            mCurrentFilterIsValid = true;
         }
         super.onStart();
     }
@@ -517,7 +425,6 @@
     @Override
     protected void onStop() {
         super.onStop();
-        mCurrentFilterIsValid = false;
     }
 
     @Override
@@ -560,18 +467,8 @@
                     tabToOpen = TabState.FAVORITES;
                     break;
                 case ContactsRequest.ACTION_VIEW_CONTACT:
-                    // We redirect this intent to the detail activity on 1-pane, so we don't get
-                    // here.  It's only for 2-pane.
-                    Uri currentlyLoadedContactUri = mContactDetailFragment.getUri();
-                    if (currentlyLoadedContactUri != null
-                            && !mRequest.getContactUri().equals(currentlyLoadedContactUri)) {
-                        mContactDetailsView.setMaskVisibility(true);
-                    }
                     tabToOpen = TabState.ALL;
                     break;
-                case ContactsRequest.ACTION_GROUP:
-                    tabToOpen = TabState.GROUPS;
-                    break;
                 default:
                     tabToOpen = -1;
                     break;
@@ -594,7 +491,6 @@
         }
 
         configureContactListFragment();
-        configureGroupListFragment();
 
         invalidateOptionsMenuIfNeeded();
     }
@@ -610,21 +506,6 @@
         invalidateOptionsMenuIfNeeded();
     }
 
-    private void setupContactDetailFragment(final Uri contactLookupUri) {
-        mContactDetailLoaderFragment.loadUri(contactLookupUri);
-        invalidateOptionsMenuIfNeeded();
-    }
-
-    private void setupGroupDetailFragment(Uri groupUri) {
-        // If we are switching from one group to another, do a cross-fade
-        if (mGroupDetailFragment != null && mGroupDetailFragment.getGroupUri() != null &&
-                !UriUtils.areEqual(mGroupDetailFragment.getGroupUri(), groupUri)) {
-            mGroupDetailsView.startMaskTransition(false, -1);
-        }
-        mGroupDetailFragment.loadGroup(groupUri);
-        invalidateOptionsMenuIfNeeded();
-    }
-
     /**
      * Handler for action bar actions.
      */
@@ -658,6 +539,11 @@
         updateFragmentsVisibility();
     }
 
+    @Override
+    public void onUpButtonPressed() {
+        onBackPressed();
+    }
+
     private void updateDebugOptionsVisibility(boolean visible) {
         if (mEnableDebugMenuOptions != visible) {
             mEnableDebugMenuOptions = visible;
@@ -672,96 +558,17 @@
     private void updateFragmentsVisibility() {
         int tab = mActionBarAdapter.getCurrentTab();
 
-        // We use ViewPager on 1-pane.
-        if (!PhoneCapabilityTester.isUsingTwoPanes(this)) {
-            if (mActionBarAdapter.isSearchMode()) {
-                mTabPagerAdapter.setSearchMode(true);
-            } else {
-                // No smooth scrolling if quitting from the search mode.
-                final boolean wasSearchMode = mTabPagerAdapter.isSearchMode();
-                mTabPagerAdapter.setSearchMode(false);
-                if (mTabPager.getCurrentItem() != tab) {
-                    mTabPager.setCurrentItem(tab, !wasSearchMode);
-                }
-            }
-            invalidateOptionsMenu();
-            showEmptyStateForTab(tab);
-            if (tab == TabState.GROUPS) {
-                mGroupsFragment.setAddAccountsVisibility(!areGroupWritableAccountsAvailable());
-            }
-            return;
-        }
-
-        // for the tablet...
-
-        // If in search mode, we use the all list + contact details to show the result.
         if (mActionBarAdapter.isSearchMode()) {
-            tab = TabState.ALL;
+            mTabPagerAdapter.setSearchMode(true);
+        } else {
+            // No smooth scrolling if quitting from the search mode.
+            final boolean wasSearchMode = mTabPagerAdapter.isSearchMode();
+            mTabPagerAdapter.setSearchMode(false);
+            if (mTabPager.getCurrentItem() != tab) {
+                mTabPager.setCurrentItem(tab, !wasSearchMode);
+            }
         }
-
-        switch (tab) {
-            case TabState.FAVORITES:
-                mFavoritesView.setVisibility(View.VISIBLE);
-                mBrowserView.setVisibility(View.GONE);
-                mGroupDetailsView.setVisibility(View.GONE);
-                mContactDetailsView.setVisibility(View.GONE);
-                break;
-            case TabState.GROUPS:
-                mFavoritesView.setVisibility(View.GONE);
-                mBrowserView.setVisibility(View.VISIBLE);
-                mGroupDetailsView.setVisibility(View.VISIBLE);
-                mContactDetailsView.setVisibility(View.GONE);
-                mGroupsFragment.setAddAccountsVisibility(!areGroupWritableAccountsAvailable());
-                break;
-            case TabState.ALL:
-                mFavoritesView.setVisibility(View.GONE);
-                mBrowserView.setVisibility(View.VISIBLE);
-                mContactDetailsView.setVisibility(View.VISIBLE);
-                mGroupDetailsView.setVisibility(View.GONE);
-                break;
-        }
-        mPeopleActivityView.startMaskTransition(false, TAB_FADE_IN_DURATION);
-        FragmentManager fragmentManager = getFragmentManager();
-        FragmentTransaction ft = fragmentManager.beginTransaction();
-
-        // Note mContactDetailLoaderFragment is an invisible fragment, but we still have to show/
-        // hide it so its options menu will be shown/hidden.
-        switch (tab) {
-            case TabState.FAVORITES:
-                showFragment(ft, mFavoritesFragment);
-                showFragment(ft, mFrequentFragment);
-                hideFragment(ft, mAllFragment);
-                hideFragment(ft, mContactDetailLoaderFragment);
-                hideFragment(ft, mContactDetailFragment);
-                hideFragment(ft, mGroupsFragment);
-                hideFragment(ft, mGroupDetailFragment);
-                break;
-            case TabState.ALL:
-                hideFragment(ft, mFavoritesFragment);
-                hideFragment(ft, mFrequentFragment);
-                showFragment(ft, mAllFragment);
-                showFragment(ft, mContactDetailLoaderFragment);
-                showFragment(ft, mContactDetailFragment);
-                hideFragment(ft, mGroupsFragment);
-                hideFragment(ft, mGroupDetailFragment);
-                break;
-            case TabState.GROUPS:
-                hideFragment(ft, mFavoritesFragment);
-                hideFragment(ft, mFrequentFragment);
-                hideFragment(ft, mAllFragment);
-                hideFragment(ft, mContactDetailLoaderFragment);
-                hideFragment(ft, mContactDetailFragment);
-                showFragment(ft, mGroupsFragment);
-                showFragment(ft, mGroupDetailFragment);
-                break;
-        }
-        if (!ft.isEmpty()) {
-            ft.commitAllowingStateLoss();
-            fragmentManager.executePendingTransactions();
-            // When switching tabs, we need to invalidate options menu, but executing a
-            // fragment transaction does it implicitly.  We don't have to call invalidateOptionsMenu
-            // manually.
-        }
+        invalidateOptionsMenu();
         showEmptyStateForTab(tab);
     }
 
@@ -772,14 +579,14 @@
                     mContactsUnavailableFragment.setMessageText(
                             R.string.listTotalAllContactsZeroStarred, -1);
                     break;
-                case TabState.GROUPS:
-                    mContactsUnavailableFragment.setMessageText(R.string.noGroups,
-                            areGroupWritableAccountsAvailable() ? -1 : R.string.noAccounts);
-                    break;
                 case TabState.ALL:
                     mContactsUnavailableFragment.setMessageText(R.string.noContacts, -1);
                     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);
         }
     }
 
@@ -801,10 +608,16 @@
 
         @Override
         public void onPageScrollStateChanged(int state) {
+            if (!mTabPagerAdapter.isSearchMode()) {
+                mViewPagerTabs.onPageScrollStateChanged(state);
+            }
         }
 
         @Override
         public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+            if (!mTabPagerAdapter.isSearchMode()) {
+                mViewPagerTabs.onPageScrolled(position, positionOffset, positionOffsetPixels);
+            }
         }
 
         @Override
@@ -812,10 +625,8 @@
             // Make sure not in the search mode, in which case position != TabState.ordinal().
             if (!mTabPagerAdapter.isSearchMode()) {
                 mActionBarAdapter.setCurrentTab(position, false);
+                mViewPagerTabs.onPageSelected(position);
                 showEmptyStateForTab(position);
-                if (position == TabState.GROUPS) {
-                    mGroupsFragment.setAddAccountsVisibility(!areGroupWritableAccountsAvailable());
-                }
                 invalidateOptionsMenu();
             }
         }
@@ -874,9 +685,6 @@
                 if (object == mAllFragment) {
                     return TabState.ALL;
                 }
-                if (object == mGroupsFragment) {
-                    return TabState.GROUPS;
-                }
             }
             return POSITION_NONE;
         }
@@ -899,8 +707,6 @@
                     return mFavoritesFragment;
                 } else if (position == TabState.ALL) {
                     return mAllFragment;
-                } else if (position == TabState.GROUPS) {
-                    return mGroupsFragment;
                 }
             }
             throw new IllegalArgumentException("position: " + position);
@@ -963,6 +769,11 @@
         @Override
         public void restoreState(Parcelable state, ClassLoader loader) {
         }
+
+        @Override
+        public CharSequence getPageTitle(int position) {
+            return mTabTitles[position];
+        }
     }
 
     private void setQueryTextToFragment(String query) {
@@ -973,12 +784,6 @@
     private void configureContactListFragmentForRequest() {
         Uri contactUri = mRequest.getContactUri();
         if (contactUri != null) {
-            // For an incoming request, explicitly require a selection if we are on 2-pane UI,
-            // (i.e. even if we view the same selected contact, the contact may no longer be
-            // in the list, so we must refresh the list).
-            if (PhoneCapabilityTester.isUsingTwoPanes(this)) {
-                mAllFragment.setSelectionRequired(true);
-            }
             mAllFragment.setSelectedContactUri(contactUri);
         }
 
@@ -996,22 +801,12 @@
         // Filter may be changed when this Activity is in background.
         mAllFragment.setFilter(mContactListFilterController.getFilter());
 
-        final boolean useTwoPane = PhoneCapabilityTester.isUsingTwoPanes(this);
-
-        mAllFragment.setVerticalScrollbarPosition(getScrollBarPosition(useTwoPane));
-        mAllFragment.setSelectionVisible(useTwoPane);
-        mAllFragment.setQuickContactEnabled(!useTwoPane);
+        mAllFragment.setVerticalScrollbarPosition(getScrollBarPosition());
+        mAllFragment.setSelectionVisible(false);
     }
 
-    private int getScrollBarPosition(boolean useTwoPane) {
-        final boolean isLayoutRtl = isRTL();
-        final int position;
-        if (useTwoPane) {
-            position = isLayoutRtl ? View.SCROLLBAR_POSITION_RIGHT : View.SCROLLBAR_POSITION_LEFT;
-        } else {
-            position = isLayoutRtl ? View.SCROLLBAR_POSITION_LEFT : View.SCROLLBAR_POSITION_RIGHT;
-        }
-        return position;
+    private int getScrollBarPosition() {
+        return isRTL() ? View.SCROLLBAR_POSITION_LEFT : View.SCROLLBAR_POSITION_RIGHT;
     }
 
     private boolean isRTL() {
@@ -1019,12 +814,6 @@
         return TextUtils.getLayoutDirectionFromLocale(locale) == View.LAYOUT_DIRECTION_RTL;
     }
 
-    private void configureGroupListFragment() {
-        final boolean useTwoPane = PhoneCapabilityTester.isUsingTwoPanes(this);
-        mGroupsFragment.setVerticalScrollbarPosition(getScrollBarPosition(useTwoPane));
-        mGroupsFragment.setSelectionVisible(useTwoPane);
-    }
-
     @Override
     public void onProviderStatusChange() {
         updateViewConfiguration(false);
@@ -1037,7 +826,6 @@
         mProviderStatus = providerStatus;
 
         View contactsUnavailableView = findViewById(R.id.contacts_unavailable_view);
-        View mainView = findViewById(R.id.main_view);
 
         if (mProviderStatus.status == ProviderStatus.STATUS_NORMAL) {
             // Ensure that the mTabPager is visible; we may have made it invisible below.
@@ -1046,9 +834,6 @@
                 mTabPager.setVisibility(View.VISIBLE);
             }
 
-            if (mainView != null) {
-                mainView.setVisibility(View.VISIBLE);
-            }
             if (mAllFragment != null) {
                 mAllFragment.setEnabled(true);
             }
@@ -1064,6 +849,7 @@
                     UserManager.DISALLOW_MODIFY_ACCOUNTS);
             if (!disallowModifyAccounts && !areContactWritableAccountsAvailable() &&
                     AccountPromptUtils.shouldShowAccountPrompt(this)) {
+                AccountPromptUtils.neverShowAccountPromptAgain(this);
                 AccountPromptUtils.launchAccountPrompt(this);
                 return;
             }
@@ -1090,10 +876,6 @@
                 mTabPager.setVisibility(View.GONE);
             }
 
-            if (mainView != null) {
-                mainView.setVisibility(View.INVISIBLE);
-            }
-
             showEmptyStateForTab(mActionBarAdapter.getCurrentTab());
         }
 
@@ -1105,58 +887,17 @@
 
         @Override
         public void onSelectionChange() {
-            if (PhoneCapabilityTester.isUsingTwoPanes(PeopleActivity.this)) {
-                setupContactDetailFragment(mAllFragment.getSelectedContactUri());
-            }
+
         }
 
         @Override
         public void onViewContactAction(Uri contactLookupUri) {
-            if (PhoneCapabilityTester.isUsingTwoPanes(PeopleActivity.this)) {
-                setupContactDetailFragment(contactLookupUri);
-            } else {
-                Intent intent = new Intent(Intent.ACTION_VIEW, contactLookupUri);
-                startActivity(intent);
-            }
-        }
-
-        @Override
-        public void onCreateNewContactAction() {
-            Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
-            Bundle extras = getIntent().getExtras();
-            if (extras != null) {
-                intent.putExtras(extras);
-            }
+            Intent intent = QuickContact.composeQuickContactsIntent(PeopleActivity.this,
+                    (Rect) null, contactLookupUri, QuickContactActivity.MODE_FULLY_EXPANDED, null);
             startActivity(intent);
         }
 
         @Override
-        public void onEditContactAction(Uri contactLookupUri) {
-            Intent intent = new Intent(Intent.ACTION_EDIT, contactLookupUri);
-            Bundle extras = getIntent().getExtras();
-            if (extras != null) {
-                intent.putExtras(extras);
-            }
-            intent.putExtra(
-                    ContactEditorActivity.INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED, true);
-            startActivityForResult(intent, SUBACTIVITY_EDIT_CONTACT);
-        }
-
-        @Override
-        public void onAddToFavoritesAction(Uri contactUri) {
-            ContentValues values = new ContentValues(1);
-            values.put(Contacts.STARRED, 1);
-            getContentResolver().update(contactUri, values, null, null);
-        }
-
-        @Override
-        public void onRemoveFromFavoritesAction(Uri contactUri) {
-            ContentValues values = new ContentValues(1);
-            values.put(Contacts.STARRED, 0);
-            getContentResolver().update(contactUri, values, null, null);
-        }
-
-        @Override
         public void onDeleteContactAction(Uri contactUri) {
             ContactDeletionInteraction.start(PeopleActivity.this, contactUri, false);
         }
@@ -1184,75 +925,6 @@
         }
     }
 
-    private class ContactDetailLoaderFragmentListener implements ContactLoaderFragmentListener {
-        ContactDetailLoaderFragmentListener() {}
-
-        @Override
-        public void onContactNotFound() {
-            // Nothing needs to be done here
-        }
-
-        @Override
-        public void onDetailsLoaded(final Contact result) {
-            if (result == null) {
-                // Nothing is loaded. Show empty state.
-                mContactDetailLayoutController.showEmptyState();
-                return;
-            }
-            // Since {@link FragmentTransaction}s cannot be done in the onLoadFinished() of the
-            // {@link LoaderCallbacks}, then post this {@link Runnable} to the {@link Handler}
-            // on the main thread to execute later.
-            mHandler.post(new Runnable() {
-                @Override
-                public void run() {
-                    // If the activity is destroyed (or will be destroyed soon), don't update the UI
-                    if (isFinishing()) {
-                        return;
-                    }
-                    mContactDetailLayoutController.setContactData(result);
-                }
-            });
-        }
-
-        @Override
-        public void onEditRequested(Uri contactLookupUri) {
-            Intent intent = new Intent(Intent.ACTION_EDIT, contactLookupUri);
-            intent.putExtra(
-                    ContactEditorActivity.INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED, true);
-            startActivityForResult(intent, SUBACTIVITY_EDIT_CONTACT);
-        }
-
-        @Override
-        public void onDeleteRequested(Uri contactUri) {
-            ContactDeletionInteraction.start(PeopleActivity.this, contactUri, false);
-        }
-    }
-
-    public class ContactDetailFragmentListener implements ContactDetailFragment.Listener {
-        @Override
-        public void onItemClicked(Intent intent) {
-            if (intent == null) {
-                return;
-            }
-            try {
-                startActivity(intent);
-            } catch (ActivityNotFoundException e) {
-                Log.e(TAG, "No activity found for intent: " + intent);
-            }
-        }
-
-        @Override
-        public void onCreateRawContactRequested(ArrayList<ContentValues> values,
-                AccountWithDataSet account) {
-            Toast.makeText(PeopleActivity.this, R.string.toast_making_personal_copy,
-                    Toast.LENGTH_LONG).show();
-            Intent serviceIntent = ContactSaveService.createNewRawContactIntent(
-                    PeopleActivity.this, values, account,
-                    PeopleActivity.class, Intent.ACTION_VIEW);
-            startService(serviceIntent);
-        }
-    }
-
     private class ContactsUnavailableFragmentListener
             implements OnContactsUnavailableActionListener {
         ContactsUnavailableFragmentListener() {}
@@ -1289,11 +961,9 @@
 
         @Override
         public void onContactSelected(Uri contactUri, Rect targetRect) {
-            if (PhoneCapabilityTester.isUsingTwoPanes(PeopleActivity.this)) {
-                QuickContact.showQuickContact(PeopleActivity.this, targetRect, contactUri, 0, null);
-            } else {
-                startActivity(new Intent(Intent.ACTION_VIEW, contactUri));
-            }
+            Intent intent = QuickContact.composeQuickContactsIntent(PeopleActivity.this,
+                    targetRect, contactUri, QuickContactActivity.MODE_FULLY_EXPANDED, null);
+            startActivity(intent);
         }
 
         @Override
@@ -1303,71 +973,6 @@
         }
     }
 
-    private final class GroupBrowserActionListener implements OnGroupBrowserActionListener {
-
-        GroupBrowserActionListener() {}
-
-        @Override
-        public void onViewGroupAction(Uri groupUri) {
-            if (PhoneCapabilityTester.isUsingTwoPanes(PeopleActivity.this)) {
-                setupGroupDetailFragment(groupUri);
-            } else {
-                Intent intent = new Intent(PeopleActivity.this, GroupDetailActivity.class);
-                intent.setData(groupUri);
-                startActivity(intent);
-            }
-        }
-    }
-
-    private class GroupDetailFragmentListener implements GroupDetailFragment.Listener {
-
-        GroupDetailFragmentListener() {}
-
-        @Override
-        public void onGroupSizeUpdated(String size) {
-            // Nothing needs to be done here because the size will be displayed in the detail
-            // fragment
-        }
-
-        @Override
-        public void onGroupTitleUpdated(String title) {
-            // Nothing needs to be done here because the title will be displayed in the detail
-            // fragment
-        }
-
-        @Override
-        public void onAccountTypeUpdated(String accountTypeString, String dataSet) {
-            // Nothing needs to be done here because the group source will be displayed in the
-            // detail fragment
-        }
-
-        @Override
-        public void onEditRequested(Uri groupUri) {
-            final Intent intent = new Intent(PeopleActivity.this, GroupEditorActivity.class);
-            intent.setData(groupUri);
-            intent.setAction(Intent.ACTION_EDIT);
-            startActivityForResult(intent, SUBACTIVITY_EDIT_GROUP);
-        }
-
-        @Override
-        public void onContactSelected(Uri contactUri) {
-            // Nothing needs to be done here because either quickcontact will be displayed
-            // or activity will take care of selection
-        }
-    }
-
-    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);
-        }
-        startActivity(intent);
-        finish();
-    }
-
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         if (!areContactsAvailable()) {
@@ -1397,15 +1002,6 @@
             return true;
         }
 
-        if (mContactDetailLoaderFragment != null &&
-                mContactDetailLoaderFragment.isOptionsMenuChanged()) {
-            return true;
-        }
-
-        if (mGroupDetailFragment != null && mGroupDetailFragment.isOptionsMenuChanged()) {
-            return true;
-        }
-
         return false;
     }
 
@@ -1417,46 +1013,25 @@
         }
 
         // Get references to individual menu items in the menu
-        final MenuItem addContactMenu = menu.findItem(R.id.menu_add_contact);
         final MenuItem contactsFilterMenu = menu.findItem(R.id.menu_contacts_filter);
-
-        MenuItem addGroupMenu = menu.findItem(R.id.menu_add_group);
-
         final MenuItem clearFrequentsMenu = menu.findItem(R.id.menu_clear_frequents);
         final MenuItem helpMenu = menu.findItem(R.id.menu_help);
 
         final boolean isSearchMode = mActionBarAdapter.isSearchMode();
         if (isSearchMode) {
-            addContactMenu.setVisible(false);
-            addGroupMenu.setVisible(false);
             contactsFilterMenu.setVisible(false);
             clearFrequentsMenu.setVisible(false);
             helpMenu.setVisible(false);
         } else {
             switch (mActionBarAdapter.getCurrentTab()) {
                 case TabState.FAVORITES:
-                    addContactMenu.setVisible(true);
-                    addGroupMenu.setVisible(false);
                     contactsFilterMenu.setVisible(false);
                     clearFrequentsMenu.setVisible(hasFrequents());
                     break;
                 case TabState.ALL:
-                    addContactMenu.setVisible(true);
-                    addGroupMenu.setVisible(false);
                     contactsFilterMenu.setVisible(true);
                     clearFrequentsMenu.setVisible(false);
                     break;
-                case TabState.GROUPS:
-                    // Do not display the "new group" button if no accounts are available
-                    if (areGroupWritableAccountsAvailable()) {
-                        addGroupMenu.setVisible(true);
-                    } else {
-                        addGroupMenu.setVisible(false);
-                    }
-                    addContactMenu.setVisible(false);
-                    contactsFilterMenu.setVisible(false);
-                    clearFrequentsMenu.setVisible(false);
-                    break;
             }
             HelpUtils.prepareHelpMenuItem(this, helpMenu, R.string.help_url_people_main);
         }
@@ -1478,11 +1053,7 @@
      * @return
      */
     private boolean hasFrequents() {
-        if (PhoneCapabilityTester.isUsingTwoPanesInFavorites(this)) {
-            return mFrequentFragment.hasFrequents();
-        } else {
-            return mFavoritesFragment.hasFrequents();
-        }
+        return mFavoritesFragment.hasFrequents();
     }
 
     private void makeMenuItemVisible(Menu menu, int itemId, boolean visible) {
@@ -1509,17 +1080,16 @@
             }
             case R.id.menu_settings: {
                 final Intent intent = new Intent(this, ContactsPreferenceActivity.class);
-                // as there is only one section right now, make sure it is selected
-                // on small screens, this also hides the section selector
-                // Due to b/5045558, this code unfortunately only works properly on phones
-                boolean settingsAreMultiPane = getResources().getBoolean(
-                        com.android.internal.R.bool.preferences_prefer_dual_pane);
-                if (!settingsAreMultiPane) {
-                    intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT,
-                            DisplayOptionsPreferenceFragment.class.getName());
-                    intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT_TITLE,
-                            R.string.activity_title_settings);
-                }
+                // Since there is only one section right now, make sure it is selected on
+                // small screens.
+                intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT,
+                        DisplayOptionsPreferenceFragment.class.getName());
+                // By default, the title of the activity should be equivalent to the fragment
+                // title. We set this argument to avoid this. Because of a bug, the following
+                // line isn't necessary. But, once the bug is fixed this may become necessary.
+                // b/5045558 refers to this issue, as well as another.
+                intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT_TITLE,
+                        R.string.activity_title_settings);
                 startActivity(intent);
                 return true;
             }
@@ -1533,26 +1103,6 @@
                 onSearchRequested();
                 return true;
             }
-            case R.id.menu_add_contact: {
-                final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
-                // On 2-pane UI, we can let the editor activity finish itself and return
-                // to this activity to display the new contact.
-                if (PhoneCapabilityTester.isUsingTwoPanes(this)) {
-                    intent.putExtra(
-                            ContactEditorActivity.INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED,
-                            true);
-                    startActivityForResult(intent, SUBACTIVITY_NEW_CONTACT);
-                } else {
-                    // Otherwise, on 1-pane UI, we need the editor to launch the view contact
-                    // intent itself.
-                    startActivity(intent);
-                }
-                return true;
-            }
-            case R.id.menu_add_group: {
-                createNewGroup();
-                return true;
-            }
             case R.id.menu_import_export: {
                 ImportExportDialogFragment.show(getFragmentManager(), areContactsAvailable(),
                         PeopleActivity.class);
@@ -1581,12 +1131,6 @@
         return false;
     }
 
-    private void createNewGroup() {
-        final Intent intent = new Intent(this, GroupEditorActivity.class);
-        intent.setAction(Intent.ACTION_INSERT);
-        startActivityForResult(intent, SUBACTIVITY_NEW_GROUP);
-    }
-
     @Override
     public boolean onSearchRequested() { // Search key pressed.
         mActionBarAdapter.setSearchMode(true);
@@ -1602,31 +1146,6 @@
                 break;
             }
 
-            case SUBACTIVITY_NEW_CONTACT:
-            case SUBACTIVITY_EDIT_CONTACT: {
-                if (resultCode == RESULT_OK && PhoneCapabilityTester.isUsingTwoPanes(this)) {
-                    mRequest.setActionCode(ContactsRequest.ACTION_VIEW_CONTACT);
-                    mAllFragment.setSelectionRequired(true);
-                    mAllFragment.setSelectedContactUri(data.getData());
-                    // Suppress IME if in search mode
-                    if (mActionBarAdapter != null) {
-                        mActionBarAdapter.clearFocusOnSearchView();
-                    }
-                    // No need to change the contact filter
-                    mCurrentFilterIsValid = true;
-                }
-                break;
-            }
-
-            case SUBACTIVITY_NEW_GROUP:
-            case SUBACTIVITY_EDIT_GROUP: {
-                if (resultCode == RESULT_OK && PhoneCapabilityTester.isUsingTwoPanes(this)) {
-                    mRequest.setActionCode(ContactsRequest.ACTION_GROUP);
-                    mGroupsFragment.setSelectedUri(data.getData());
-                }
-                break;
-            }
-
             // TODO: Using the new startActivityWithResultFromFragment API this should not be needed
             // anymore
             case ContactEntryListFragment.ACTIVITY_REQUEST_CODE_PICKER:
@@ -1709,9 +1228,6 @@
     protected void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
         mActionBarAdapter.onSaveInstanceState(outState);
-        if (mContactDetailLayoutController != null) {
-            mContactDetailLayoutController.onSaveInstanceState(outState);
-        }
 
         // Clear the listener to make sure we don't get callbacks after onSaveInstanceState,
         // in order to avoid doing fragment transactions after it.
@@ -1739,13 +1255,19 @@
         return mDialogManager;
     }
 
-    // Visible for testing
-    public ContactBrowseListFragment getListFragment() {
-        return mAllFragment;
-    }
-
-    // Visible for testing
-    public ContactDetailFragment getDetailFragment() {
-        return mContactDetailFragment;
+    @Override
+    public void onClick(View view) {
+        switch (view.getId()) {
+            case R.id.floating_action_button:
+                Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
+                Bundle extras = getIntent().getExtras();
+                if (extras != null) {
+                    intent.putExtras(extras);
+                }
+                startActivity(intent);
+                break;
+        default:
+            Log.wtf(TAG, "Unexpected onClick event from " + view);
+        }
     }
 }
diff --git a/src/com/android/contacts/activities/PhotoSelectionActivity.java b/src/com/android/contacts/activities/PhotoSelectionActivity.java
index c3b2eeb..da0d2e4 100644
--- a/src/com/android/contacts/activities/PhotoSelectionActivity.java
+++ b/src/com/android/contacts/activities/PhotoSelectionActivity.java
@@ -319,7 +319,7 @@
         if (mPhotoUri != null) {
             // If we have a URI, the bitmap should be cached directly.
             ContactPhotoManager.getInstance(this).loadPhoto(mPhotoView, mPhotoUri, photoWidth,
-                    false, null);
+                    false /* darkTheme */, false /* isCircular */, null);
         } else {
             // If we don't have a URI, just display an empty ImageView. The default image from the
             // ContactDetailFragment will show up in the background instead.
diff --git a/src/com/android/contacts/datepicker/DatePicker.java b/src/com/android/contacts/datepicker/DatePicker.java
index d662c3a..1b3b807 100644
--- a/src/com/android/contacts/datepicker/DatePicker.java
+++ b/src/com/android/contacts/datepicker/DatePicker.java
@@ -171,6 +171,8 @@
                 updateDaySpinner();
             }
         });
+        mYearPicker.setMinValue(DEFAULT_START_YEAR);
+        mYearPicker.setMaxValue(DEFAULT_END_YEAR);
 
         mYearToggle = (CheckBox) findViewById(R.id.yearToggle);
         mYearToggle.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@@ -183,19 +185,6 @@
             }
         });
 
-        // attributes
-        TypedArray a = context.obtainStyledAttributes(attrs,
-                com.android.internal.R.styleable.DatePicker);
-
-        int mStartYear =
-                a.getInt(com.android.internal.R.styleable.DatePicker_startYear, DEFAULT_START_YEAR);
-        int mEndYear =
-                a.getInt(com.android.internal.R.styleable.DatePicker_endYear, DEFAULT_END_YEAR);
-        mYearPicker.setMinValue(mStartYear);
-        mYearPicker.setMaxValue(mEndYear);
-
-        a.recycle();
-
         // initialize to current date
         Calendar cal = Calendar.getInstance();
         init(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), null);
diff --git a/src/com/android/contacts/datepicker/DatePickerDialog.java b/src/com/android/contacts/datepicker/DatePickerDialog.java
index 5ed143b..2b470d5 100644
--- a/src/com/android/contacts/datepicker/DatePickerDialog.java
+++ b/src/com/android/contacts/datepicker/DatePickerDialog.java
@@ -17,18 +17,15 @@
 package com.android.contacts.datepicker;
 
 // This is a fork of the standard Android DatePicker that additionally allows toggling the year
-// on/off. It uses some private API so that not everything has to be copied.
+// on/off.
 
 import android.app.AlertDialog;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.DialogInterface.OnClickListener;
-import android.os.Build;
 import android.os.Bundle;
-import android.text.TextUtils.TruncateAt;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.widget.TextView;
 
 import com.android.contacts.R;
 import com.android.contacts.common.util.DateUtils;
@@ -108,10 +105,8 @@
             int monthOfYear,
             int dayOfMonth,
             boolean yearOptional) {
-        this(context, context.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.HONEYCOMB
-                        ? com.android.internal.R.style.Theme_Holo_Light_Dialog_Alert
-                        : com.android.internal.R.style.Theme_Dialog_Alert,
-                callBack, year, monthOfYear, dayOfMonth, yearOptional);
+        this(context, THEME_DEVICE_DEFAULT_LIGHT, callBack, year, monthOfYear, dayOfMonth,
+                yearOptional);
     }
 
     /**
@@ -160,7 +155,7 @@
         mTitleNoYearDateFormat = DateUtils.getLocalizedDateFormatWithoutYear(getContext());
         updateTitle(mInitialYear, mInitialMonth, mInitialDay);
 
-        setButton(BUTTON_POSITIVE, context.getText(com.android.internal.R.string.date_time_set),
+        setButton(BUTTON_POSITIVE, context.getText(R.string.date_time_set),
                 this);
         setButton(BUTTON_NEGATIVE, context.getText(android.R.string.cancel),
                 (OnClickListener) null);
@@ -174,19 +169,6 @@
     }
 
     @Override
-    public void show() {
-        super.show();
-
-        /* Sometimes the full month is displayed causing the title
-         * to be very long, in those cases ensure it doesn't wrap to
-         * 2 lines (as that looks jumpy) and ensure we ellipsize the end.
-         */
-        TextView title = (TextView) findViewById(com.android.internal.R.id.alertTitle);
-        title.setSingleLine();
-        title.setEllipsize(TruncateAt.END);
-    }
-
-    @Override
     public void onClick(DialogInterface dialog, int which) {
         if (mCallBack != null) {
             mDatePicker.clearFocus();
diff --git a/src/com/android/contacts/detail/CarouselTab.java b/src/com/android/contacts/detail/CarouselTab.java
deleted file mode 100644
index 09e097a..0000000
--- a/src/com/android/contacts/detail/CarouselTab.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.detail;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.View;
-import android.view.ViewPropertyAnimator;
-import android.widget.TextView;
-
-import com.android.contacts.R;
-import com.android.contacts.widget.FrameLayoutWithOverlay;
-
-/**
- * This is a tab in the {@link ContactDetailTabCarousel}.
- */
-public class CarouselTab extends FrameLayoutWithOverlay {
-
-    private static final String TAG = CarouselTab.class.getSimpleName();
-
-    private static final long FADE_TRANSITION_TIME = 150;
-
-    private TextView mLabelView;
-    private View mLabelBackgroundView;
-
-    /**
-     * This view adds an alpha layer over the entire tab (except for the label).
-     */
-    private View mAlphaLayer;
-
-    public CarouselTab(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    @Override
-    protected void onFinishInflate() {
-        super.onFinishInflate();
-
-        mLabelView = (TextView) findViewById(R.id.label);
-        mLabelBackgroundView = findViewById(R.id.label_background);
-        mAlphaLayer = findViewById(R.id.alpha_overlay);
-        setAlphaLayer(mAlphaLayer);
-    }
-
-    public void setLabel(String label) {
-        mLabelView.setText(label);
-    }
-
-    public void showSelectedState() {
-        mLabelView.setSelected(true);
-    }
-
-    public void showDeselectedState() {
-        mLabelView.setSelected(false);
-    }
-
-    public void fadeInLabelViewAnimator(int startDelay, boolean fadeBackground) {
-        final ViewPropertyAnimator labelAnimator = mLabelView.animate();
-        mLabelView.setAlpha(0.0f);
-        labelAnimator.alpha(1.0f);
-        labelAnimator.setStartDelay(startDelay);
-        labelAnimator.setDuration(FADE_TRANSITION_TIME);
-
-        if (fadeBackground) {
-            final ViewPropertyAnimator backgroundAnimator = mLabelBackgroundView.animate();
-            mLabelBackgroundView.setAlpha(0.0f);
-            backgroundAnimator.alpha(1.0f);
-            backgroundAnimator.setStartDelay(startDelay);
-            backgroundAnimator.setDuration(FADE_TRANSITION_TIME);
-        }
-    }
-}
diff --git a/src/com/android/contacts/detail/ContactDetailFragment.java b/src/com/android/contacts/detail/ContactDetailFragment.java
deleted file mode 100644
index 629e36b..0000000
--- a/src/com/android/contacts/detail/ContactDetailFragment.java
+++ /dev/null
@@ -1,2262 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.contacts.detail;
-
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.SearchManager;
-import android.content.ComponentName;
-import android.content.ContentUris;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.graphics.drawable.Drawable;
-import android.net.ParseException;
-import android.net.Uri;
-import android.net.WebAddress;
-import android.os.Bundle;
-import android.os.Parcelable;
-import android.provider.CalendarContract;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.CommonDataKinds.Email;
-import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
-import android.provider.ContactsContract.CommonDataKinds.Im;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.Data;
-import android.provider.ContactsContract.Directory;
-import android.provider.ContactsContract.DisplayNameSources;
-import android.provider.ContactsContract.StatusUpdates;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.ContextMenu;
-import android.view.ContextMenu.ContextMenuInfo;
-import android.view.DragEvent;
-import android.view.KeyEvent;
-import android.view.LayoutInflater;
-import android.view.MenuItem;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.View.OnDragListener;
-import android.view.View.OnTouchListener;
-import android.view.ViewGroup;
-import android.widget.AbsListView.OnScrollListener;
-import android.widget.AdapterView;
-import android.widget.AdapterView.AdapterContextMenuInfo;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.BaseAdapter;
-import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.ListAdapter;
-import android.widget.ListPopupWindow;
-import android.widget.ListView;
-import android.widget.TextView;
-
-import com.android.contacts.ContactSaveService;
-import com.android.contacts.R;
-import com.android.contacts.TypePrecedence;
-import com.android.contacts.activities.ContactDetailActivity.FragmentKeyListener;
-import com.android.contacts.common.CallUtil;
-import com.android.contacts.common.ClipboardUtils;
-import com.android.contacts.common.Collapser;
-import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.common.GroupMetaData;
-import com.android.contacts.common.Collapser.Collapsible;
-import com.android.contacts.common.ContactPresenceIconUtil;
-import com.android.contacts.common.GeoUtil;
-import com.android.contacts.common.MoreContactUtils;
-import com.android.contacts.common.editor.SelectAccountDialogFragment;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.ValuesDelta;
-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;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
-import com.android.contacts.common.util.ContactDisplayUtils;
-import com.android.contacts.common.util.DataStatus;
-import com.android.contacts.common.util.DateUtils;
-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.dataitem.DataItem;
-import com.android.contacts.common.model.dataitem.EmailDataItem;
-import com.android.contacts.common.model.dataitem.EventDataItem;
-import com.android.contacts.common.model.dataitem.GroupMembershipDataItem;
-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.util.PhoneCapabilityTester;
-import com.android.contacts.util.StructuredPostalUtils;
-import com.android.contacts.util.UiClosables;
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Objects;
-import com.google.common.collect.Iterables;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class ContactDetailFragment extends Fragment implements FragmentKeyListener,
-        SelectAccountDialogFragment.Listener, OnItemClickListener {
-
-    private static final String TAG = "ContactDetailFragment";
-
-    private static final int TEXT_DIRECTION_UNDEFINED = -1;
-
-    private interface ContextMenuIds {
-        static final int COPY_TEXT = 0;
-        static final int CLEAR_DEFAULT = 1;
-        static final int SET_DEFAULT = 2;
-    }
-
-    private static final String KEY_CONTACT_URI = "contactUri";
-    private static final String KEY_LIST_STATE = "liststate";
-
-    private Context mContext;
-    private View mView;
-    private OnScrollListener mVerticalScrollListener;
-    private Uri mLookupUri;
-    private Listener mListener;
-
-    private Contact mContactData;
-    private ViewGroup mStaticPhotoContainer;
-    private View mPhotoTouchOverlay;
-    private ListView mListView;
-    private ViewAdapter mAdapter;
-    private Uri mPrimaryPhoneUri = null;
-    private ViewEntryDimensions mViewEntryDimensions;
-
-    private final ContactDetailPhotoSetter mPhotoSetter = new ContactDetailPhotoSetter();
-
-    private Button mQuickFixButton;
-    private QuickFix mQuickFix;
-    private boolean mContactHasSocialUpdates;
-    private boolean mShowStaticPhoto = true;
-
-    private final QuickFix[] mPotentialQuickFixes = new QuickFix[] {
-            new MakeLocalCopyQuickFix(),
-            new AddToMyContactsQuickFix()
-    };
-
-    /**
-     * The view shown if the detail list is empty.
-     * We set this to the list view when first bind the adapter, so that it won't be shown while
-     * we're loading data.
-     */
-    private View mEmptyView;
-
-    /**
-     * Saved state of the {@link ListView}. This must be saved and applied to the {@ListView} only
-     * when the adapter has been populated again.
-     */
-    private Parcelable mListState;
-
-    /**
-     * Lists of specific types of entries to be shown in contact details.
-     */
-    private ArrayList<DetailViewEntry> mPhoneEntries = new ArrayList<DetailViewEntry>();
-    private ArrayList<DetailViewEntry> mSmsEntries = new ArrayList<DetailViewEntry>();
-    private ArrayList<DetailViewEntry> mEmailEntries = new ArrayList<DetailViewEntry>();
-    private ArrayList<DetailViewEntry> mPostalEntries = new ArrayList<DetailViewEntry>();
-    private ArrayList<DetailViewEntry> mImEntries = new ArrayList<DetailViewEntry>();
-    private ArrayList<DetailViewEntry> mNicknameEntries = new ArrayList<DetailViewEntry>();
-    private ArrayList<DetailViewEntry> mGroupEntries = new ArrayList<DetailViewEntry>();
-    private ArrayList<DetailViewEntry> mRelationEntries = new ArrayList<DetailViewEntry>();
-    private ArrayList<DetailViewEntry> mNoteEntries = new ArrayList<DetailViewEntry>();
-    private ArrayList<DetailViewEntry> mWebsiteEntries = new ArrayList<DetailViewEntry>();
-    private ArrayList<DetailViewEntry> mSipEntries = new ArrayList<DetailViewEntry>();
-    private ArrayList<DetailViewEntry> mEventEntries = new ArrayList<DetailViewEntry>();
-    private final Map<AccountType, List<DetailViewEntry>> mOtherEntriesMap =
-            new HashMap<AccountType, List<DetailViewEntry>>();
-    private ArrayList<ViewEntry> mAllEntries = new ArrayList<ViewEntry>();
-    private LayoutInflater mInflater;
-
-    private boolean mIsUniqueNumber;
-    private boolean mIsUniqueEmail;
-
-    private ListPopupWindow mPopup;
-
-    /**
-     * This is to forward touch events to the list view to enable users to scroll the list view
-     * from the blank area underneath the static photo when the layout with static photo is used.
-     */
-    private OnTouchListener mForwardTouchToListView = new OnTouchListener() {
-        @Override
-        public boolean onTouch(View v, MotionEvent event) {
-            if (mListView != null) {
-                mListView.dispatchTouchEvent(event);
-                return true;
-            }
-            return false;
-        }
-    };
-
-    /**
-     * This is to forward drag events to the list view to enable users to scroll the list view
-     * from the blank area underneath the static photo when the layout with static photo is used.
-     */
-    private OnDragListener mForwardDragToListView = new OnDragListener() {
-        @Override
-        public boolean onDrag(View v, DragEvent event) {
-            if (mListView != null) {
-                mListView.dispatchDragEvent(event);
-                return true;
-            }
-            return false;
-        }
-    };
-
-    public ContactDetailFragment() {
-        // Explicit constructor for inflation
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        if (savedInstanceState != null) {
-            mLookupUri = savedInstanceState.getParcelable(KEY_CONTACT_URI);
-            mListState = savedInstanceState.getParcelable(KEY_LIST_STATE);
-        }
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putParcelable(KEY_CONTACT_URI, mLookupUri);
-        if (mListView != null) {
-            outState.putParcelable(KEY_LIST_STATE, mListView.onSaveInstanceState());
-        }
-    }
-
-    @Override
-    public void onPause() {
-        dismissPopupIfShown();
-        super.onPause();
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-    }
-
-    @Override
-    public void onAttach(Activity activity) {
-        super.onAttach(activity);
-        mContext = activity;
-        mViewEntryDimensions = new ViewEntryDimensions(mContext.getResources());
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
-        mView = inflater.inflate(R.layout.contact_detail_fragment, container, false);
-        // Set the touch and drag listener to forward the event to the mListView so that
-        // vertical scrolling can happen from outside of the list view.
-        mView.setOnTouchListener(mForwardTouchToListView);
-        mView.setOnDragListener(mForwardDragToListView);
-
-        mInflater = inflater;
-
-        mStaticPhotoContainer = (ViewGroup) mView.findViewById(R.id.static_photo_container);
-        mPhotoTouchOverlay = mView.findViewById(R.id.photo_touch_intercept_overlay);
-
-        mListView = (ListView) mView.findViewById(android.R.id.list);
-        mListView.setOnItemClickListener(this);
-        mListView.setItemsCanFocus(true);
-        mListView.setOnScrollListener(mVerticalScrollListener);
-
-        // Don't set it to mListView yet.  We do so later when we bind the adapter.
-        mEmptyView = mView.findViewById(android.R.id.empty);
-
-        mQuickFixButton = (Button) mView.findViewById(R.id.contact_quick_fix);
-        mQuickFixButton.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                if (mQuickFix != null) {
-                    mQuickFix.execute();
-                }
-            }
-        });
-
-        mView.setVisibility(View.INVISIBLE);
-
-        if (mContactData != null) {
-            bindData();
-        }
-
-        return mView;
-    }
-
-    public void setListener(Listener value) {
-        mListener = value;
-    }
-
-    protected Context getContext() {
-        return mContext;
-    }
-
-    protected Listener getListener() {
-        return mListener;
-    }
-
-    protected Contact getContactData() {
-        return mContactData;
-    }
-
-    public void setVerticalScrollListener(OnScrollListener listener) {
-        mVerticalScrollListener = listener;
-    }
-
-    public Uri getUri() {
-        return mLookupUri;
-    }
-
-    /**
-     * Sets whether the static contact photo (that is not in a scrolling region), should be shown
-     * or not.
-     */
-    public void setShowStaticPhoto(boolean showPhoto) {
-        mShowStaticPhoto = showPhoto;
-    }
-
-    /**
-     * Shows the contact detail with a message indicating there are no contact details.
-     */
-    public void showEmptyState() {
-        setData(null, null);
-    }
-
-    public void setData(Uri lookupUri, Contact result) {
-        mLookupUri = lookupUri;
-        mContactData = result;
-        bindData();
-    }
-
-    /**
-     * Reset the list adapter in this {@link Fragment} to get rid of any saved scroll position
-     * from a previous contact.
-     */
-    public void resetAdapter() {
-        if (mListView != null) {
-            mListView.setAdapter(mAdapter);
-        }
-    }
-
-    /**
-     * 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 int getFirstListItemOffset() {
-        return ContactDetailDisplayUtils.getFirstListItemOffset(mListView);
-    }
-
-    /**
-     * Tries to scroll the first item to the given offset (this can be a no-op if the list is
-     * already in the correct position).
-     * @param offset which should be <= 0
-     */
-    public void requestToMoveToOffset(int offset) {
-        ContactDetailDisplayUtils.requestToMoveToOffset(mListView, offset);
-    }
-
-    protected void bindData() {
-        if (mView == null) {
-            return;
-        }
-
-        if (isAdded()) {
-            getActivity().invalidateOptionsMenu();
-        }
-
-        if (mContactData == null) {
-            mView.setVisibility(View.INVISIBLE);
-            if (mStaticPhotoContainer != null) {
-                mStaticPhotoContainer.setVisibility(View.GONE);
-            }
-            mAllEntries.clear();
-            if (mAdapter != null) {
-                mAdapter.notifyDataSetChanged();
-            }
-            return;
-        }
-
-        // Setup the photo if applicable
-        if (mStaticPhotoContainer != null) {
-            // The presence of a static photo container is not sufficient to determine whether or
-            // not we should show the photo. Check the mShowStaticPhoto flag which can be set by an
-            // outside class depending on screen size, layout, and whether the contact has social
-            // updates or not.
-            if (mShowStaticPhoto) {
-                mStaticPhotoContainer.setVisibility(View.VISIBLE);
-                final ImageView photoView = (ImageView) mStaticPhotoContainer.findViewById(
-                        R.id.photo);
-                final boolean expandPhotoOnClick = mContactData.getPhotoUri() != null;
-                final OnClickListener listener = mPhotoSetter.setupContactPhotoForClick(
-                        mContext, mContactData, photoView, expandPhotoOnClick);
-                if (mPhotoTouchOverlay != null) {
-                    mPhotoTouchOverlay.setVisibility(View.VISIBLE);
-                    if (expandPhotoOnClick || mContactData.isWritableContact(mContext)) {
-                        mPhotoTouchOverlay.setOnClickListener(listener);
-                    } else {
-                        mPhotoTouchOverlay.setClickable(false);
-                    }
-                }
-            } else {
-                mStaticPhotoContainer.setVisibility(View.GONE);
-            }
-        }
-
-        // Build up the contact entries
-        buildEntries();
-
-        // Collapse similar data items for select {@link DataKind}s.
-        Collapser.collapseList(mPhoneEntries);
-        Collapser.collapseList(mSmsEntries);
-        Collapser.collapseList(mEmailEntries);
-        Collapser.collapseList(mPostalEntries);
-        Collapser.collapseList(mImEntries);
-        Collapser.collapseList(mEventEntries);
-        Collapser.collapseList(mWebsiteEntries);
-
-        mIsUniqueNumber = mPhoneEntries.size() == 1;
-        mIsUniqueEmail = mEmailEntries.size() == 1;
-
-        // Make one aggregated list of all entries for display to the user.
-        setupFlattenedList();
-
-        if (mAdapter == null) {
-            mAdapter = new ViewAdapter();
-            mListView.setAdapter(mAdapter);
-        }
-
-        // Restore {@link ListView} state if applicable because the adapter is now populated.
-        if (mListState != null) {
-            mListView.onRestoreInstanceState(mListState);
-            mListState = null;
-        }
-
-        mAdapter.notifyDataSetChanged();
-
-        mListView.setEmptyView(mEmptyView);
-
-        configureQuickFix();
-
-        mView.setVisibility(View.VISIBLE);
-    }
-
-    /*
-     * Sets {@link #mQuickFix} to a useful action and configures the visibility of
-     * {@link #mQuickFixButton}
-     */
-    private void configureQuickFix() {
-        mQuickFix = null;
-
-        for (QuickFix fix : mPotentialQuickFixes) {
-            if (fix.isApplicable()) {
-                mQuickFix = fix;
-                break;
-            }
-        }
-
-        // Configure the button
-        if (mQuickFix == null) {
-            mQuickFixButton.setVisibility(View.GONE);
-        } else {
-            mQuickFixButton.setVisibility(View.VISIBLE);
-            mQuickFixButton.setText(mQuickFix.getTitle());
-        }
-    }
-
-    /** @return default group id or -1 if no group or several groups are marked as default */
-    private 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;
-    }
-
-    /**
-     * Build up the entries to display on the screen.
-     */
-    private final void buildEntries() {
-        final boolean hasPhone = PhoneCapabilityTester.isPhone(mContext);
-        final ComponentName smsComponent = PhoneCapabilityTester.getSmsComponent(getContext());
-        final boolean hasSms = (smsComponent != null);
-        final boolean hasSip = PhoneCapabilityTester.isSipPhone(mContext);
-
-        // Clear out the old entries
-        mAllEntries.clear();
-
-        mPrimaryPhoneUri = null;
-
-        // Build up method entries
-        if (mContactData == null) {
-            return;
-        }
-
-        ArrayList<String> groups = new ArrayList<String>();
-        for (RawContact rawContact: mContactData.getRawContacts()) {
-            final long rawContactId = rawContact.getId();
-            final AccountType accountType = rawContact.getAccountType(mContext);
-            for (DataItem dataItem : rawContact.getDataItems()) {
-                dataItem.setRawContactId(rawContactId);
-
-                if (dataItem.getMimeType() == null) continue;
-
-                if (dataItem instanceof GroupMembershipDataItem) {
-                    GroupMembershipDataItem groupMembership =
-                            (GroupMembershipDataItem) dataItem;
-                    Long groupId = groupMembership.getGroupRowId();
-                    if (groupId != null) {
-                        handleGroupMembership(groups, mContactData.getGroupMetaData(), groupId);
-                    }
-                    continue;
-                }
-
-                final DataKind kind = AccountTypeManager.getInstance(mContext)
-                        .getKindOrFallback(accountType, dataItem.getMimeType());
-                if (kind == null) continue;
-
-                final DetailViewEntry entry = DetailViewEntry.fromValues(mContext, dataItem,
-                        mContactData.isDirectoryEntry(), mContactData.getDirectoryId(), kind);
-                entry.maxLines = kind.maxLinesForDisplay;
-
-                final boolean hasData = !TextUtils.isEmpty(entry.data);
-                final boolean isSuperPrimary = dataItem.isSuperPrimary();
-
-                if (dataItem instanceof StructuredNameDataItem) {
-                    // Always ignore the name. It is shown in the header if set
-                } else if (dataItem instanceof PhoneDataItem && hasData) {
-                    PhoneDataItem phone = (PhoneDataItem) dataItem;
-                    // Build phone entries
-                    entry.data = phone.getFormattedPhoneNumber();
-                    final Intent phoneIntent = hasPhone ?
-                            CallUtil.getCallIntent(entry.data) : null;
-                    Intent smsIntent = null;
-                    if (hasSms) {
-                        smsIntent = new Intent(Intent.ACTION_SENDTO,
-                                Uri.fromParts(CallUtil.SCHEME_SMSTO, entry.data, null));
-                        smsIntent.setComponent(smsComponent);
-                    }
-
-                    // Configure Icons and Intents.
-                    if (hasPhone && hasSms) {
-                        entry.intent = phoneIntent;
-                        entry.secondaryIntent = smsIntent;
-                        entry.secondaryActionIcon = kind.iconAltRes;
-                        entry.secondaryActionDescription =
-                            ContactDisplayUtils.getSmsLabelResourceId(entry.type);
-                    } else if (hasPhone) {
-                        entry.intent = phoneIntent;
-                    } else if (hasSms) {
-                        entry.intent = smsIntent;
-                    } else {
-                        entry.intent = null;
-                    }
-
-                    // Remember super-primary phone
-                    if (isSuperPrimary) mPrimaryPhoneUri = entry.uri;
-
-                    entry.isPrimary = isSuperPrimary;
-
-                    // If the entry is a primary entry, then render it first in the view.
-                    if (entry.isPrimary) {
-                        // add to beginning of list so that this phone number shows up first
-                        mPhoneEntries.add(0, entry);
-                    } else {
-                        // add to end of list
-                        mPhoneEntries.add(entry);
-                    }
-
-                    // Configure the text direction. Phone numbers should be displayed LTR
-                    // regardless of what locale the device is in.
-                    entry.textDirection = View.TEXT_DIRECTION_LTR;
-                } else if (dataItem instanceof EmailDataItem && hasData) {
-                    // Build email entries
-                    entry.intent = new Intent(Intent.ACTION_SENDTO,
-                            Uri.fromParts(CallUtil.SCHEME_MAILTO, entry.data, null));
-                    entry.isPrimary = isSuperPrimary;
-                    // If entry is a primary entry, then render it first in the view.
-                    if (entry.isPrimary) {
-                        mEmailEntries.add(0, entry);
-                    } else {
-                        mEmailEntries.add(entry);
-                    }
-
-                    // When Email rows have status, create additional Im row
-                    final DataStatus status = mContactData.getStatuses().get(entry.id);
-                    if (status != null) {
-                        EmailDataItem email = (EmailDataItem) dataItem;
-                        ImDataItem im = ImDataItem.createFromEmail(email);
-
-                        final DetailViewEntry imEntry = DetailViewEntry.fromValues(mContext, im,
-                                mContactData.isDirectoryEntry(), mContactData.getDirectoryId(),
-                                kind);
-                        buildImActions(mContext, imEntry, im);
-                        imEntry.setPresence(status.getPresence());
-                        imEntry.maxLines = kind.maxLinesForDisplay;
-                        mImEntries.add(imEntry);
-                    }
-                } else if (dataItem instanceof StructuredPostalDataItem && hasData) {
-                    // Build postal entries
-                    entry.intent = StructuredPostalUtils.getViewPostalAddressIntent(entry.data);
-                    mPostalEntries.add(entry);
-                } else if (dataItem instanceof ImDataItem && hasData) {
-                    // Build IM entries
-                    buildImActions(mContext, entry, (ImDataItem) dataItem);
-
-                    // Apply presence when available
-                    final DataStatus status = mContactData.getStatuses().get(entry.id);
-                    if (status != null) {
-                        entry.setPresence(status.getPresence());
-                    }
-                    mImEntries.add(entry);
-                } else if (dataItem instanceof OrganizationDataItem) {
-                    // Organizations are not shown. The first one is shown in the header
-                    // and subsequent ones are not supported anymore
-                } else if (dataItem instanceof NicknameDataItem && hasData) {
-                    // Build nickname entries
-                    final boolean isNameRawContact =
-                        (mContactData.getNameRawContactId() == rawContactId);
-
-                    final boolean duplicatesTitle =
-                        isNameRawContact
-                        && mContactData.getDisplayNameSource() == DisplayNameSources.NICKNAME;
-
-                    if (!duplicatesTitle) {
-                        entry.uri = null;
-                        mNicknameEntries.add(entry);
-                    }
-                } else if (dataItem instanceof NoteDataItem && hasData) {
-                    // Build note entries
-                    entry.uri = null;
-                    mNoteEntries.add(entry);
-                } else if (dataItem instanceof WebsiteDataItem && hasData) {
-                    // Build Website entries
-                    entry.uri = null;
-                    try {
-                        WebAddress webAddress = new WebAddress(entry.data);
-                        entry.intent = new Intent(Intent.ACTION_VIEW,
-                                Uri.parse(webAddress.toString()));
-                    } catch (ParseException e) {
-                        Log.e(TAG, "Couldn't parse website: " + entry.data);
-                    }
-                    mWebsiteEntries.add(entry);
-                } else if (dataItem instanceof SipAddressDataItem && hasData) {
-                    // Build SipAddress entries
-                    entry.uri = null;
-                    if (hasSip) {
-                        entry.intent = CallUtil.getCallIntent(
-                                Uri.fromParts(CallUtil.SCHEME_SIP, entry.data, null));
-                    } else {
-                        entry.intent = null;
-                    }
-                    mSipEntries.add(entry);
-                    // TODO: Now that SipAddress is in its own list of entries
-                    // (instead of grouped in mOtherEntries), consider
-                    // repositioning it right under the phone number.
-                    // (Then, we'd also update FallbackAccountType.java to set
-                    // secondary=false for this field, and tweak the weight
-                    // of its DataKind.)
-                } else if (dataItem instanceof EventDataItem && hasData) {
-                    final Calendar cal = DateUtils.parseDate(entry.data, 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());
-                        entry.intent = new Intent(Intent.ACTION_VIEW).setData(builder.build());
-                    }
-                    entry.data = DateUtils.formatDate(mContext, entry.data);
-                    entry.uri = null;
-                    mEventEntries.add(entry);
-                } else if (dataItem instanceof RelationDataItem && hasData) {
-                    entry.intent = new Intent(Intent.ACTION_SEARCH);
-                    entry.intent.putExtra(SearchManager.QUERY, entry.data);
-                    entry.intent.setType(Contacts.CONTENT_TYPE);
-                    mRelationEntries.add(entry);
-                } else {
-                    // Handle showing custom rows
-                    entry.intent = new Intent(Intent.ACTION_VIEW);
-                    entry.intent.setDataAndType(entry.uri, entry.mimetype);
-
-                    entry.data = dataItem.buildDataString(getContext(), kind);
-
-                    if (!TextUtils.isEmpty(entry.data)) {
-                        // If the account type exists in the hash map, add it as another entry for
-                        // that account type
-                        if (mOtherEntriesMap.containsKey(accountType)) {
-                            List<DetailViewEntry> listEntries = mOtherEntriesMap.get(accountType);
-                            listEntries.add(entry);
-                        } else {
-                            // Otherwise create a new list with the entry and add it to the hash map
-                            List<DetailViewEntry> listEntries = new ArrayList<DetailViewEntry>();
-                            listEntries.add(entry);
-                            mOtherEntriesMap.put(accountType, listEntries);
-                        }
-                    }
-                }
-            }
-        }
-
-        if (!groups.isEmpty()) {
-            DetailViewEntry entry = new DetailViewEntry();
-            Collections.sort(groups);
-            StringBuilder sb = new StringBuilder();
-            int size = groups.size();
-            for (int i = 0; i < size; i++) {
-                if (i != 0) {
-                    sb.append(", ");
-                }
-                sb.append(groups.get(i));
-            }
-            entry.mimetype = GroupMembership.MIMETYPE;
-            entry.kind = mContext.getString(R.string.groupsLabel);
-            entry.data = sb.toString();
-            mGroupEntries.add(entry);
-        }
-    }
-
-    /**
-     * Collapse all contact detail entries into one aggregated list with a {@link HeaderViewEntry}
-     * at the top.
-     */
-    private void setupFlattenedList() {
-        // All contacts should have a header view (even if there is no data for the contact).
-        mAllEntries.add(new HeaderViewEntry());
-
-        addPhoneticName();
-
-        flattenList(mPhoneEntries);
-        flattenList(mSmsEntries);
-        flattenList(mEmailEntries);
-        flattenList(mImEntries);
-        flattenList(mNicknameEntries);
-        flattenList(mWebsiteEntries);
-
-        addNetworks();
-
-        flattenList(mSipEntries);
-        flattenList(mPostalEntries);
-        flattenList(mEventEntries);
-        flattenList(mGroupEntries);
-        flattenList(mRelationEntries);
-        flattenList(mNoteEntries);
-    }
-
-    /**
-     * Add phonetic name (if applicable) to the aggregated list of contact details. This has to be
-     * done manually because phonetic name doesn't have a mimetype or action intent.
-     */
-    private void addPhoneticName() {
-        String phoneticName = ContactDetailDisplayUtils.getPhoneticName(mContext, mContactData);
-        if (TextUtils.isEmpty(phoneticName)) {
-            return;
-        }
-
-        // Add a title
-        String phoneticNameKindTitle = mContext.getString(R.string.name_phonetic);
-        mAllEntries.add(new KindTitleViewEntry(phoneticNameKindTitle.toUpperCase()));
-
-        // Add the phonetic name
-        final DetailViewEntry entry = new DetailViewEntry();
-        entry.kind = phoneticNameKindTitle;
-        entry.data = phoneticName;
-        mAllEntries.add(entry);
-    }
-
-    /**
-     * Add attribution and other third-party entries (if applicable) under the "networks" section
-     * of the aggregated list of contact details. This has to be done manually because the
-     * attribution does not have a mimetype and the third-party entries don't have actually belong
-     * to the same {@link DataKind}.
-     */
-    private void addNetworks() {
-        String attribution = ContactDetailDisplayUtils.getAttribution(mContext, mContactData);
-        boolean hasAttribution = !TextUtils.isEmpty(attribution);
-        int networksCount = mOtherEntriesMap.keySet().size();
-
-        // Note: invitableCount will always be 0 for me profile.  (ContactLoader won't set
-        // invitable types for me profile.)
-        int invitableCount = mContactData.getInvitableAccountTypes().size();
-        if (!hasAttribution && networksCount == 0 && invitableCount == 0) {
-            return;
-        }
-
-        // Add a title
-        String networkKindTitle = mContext.getString(R.string.connections);
-        mAllEntries.add(new KindTitleViewEntry(networkKindTitle.toUpperCase()));
-
-        // Add the attribution if applicable
-        if (hasAttribution) {
-            final DetailViewEntry entry = new DetailViewEntry();
-            entry.kind = networkKindTitle;
-            entry.data = attribution;
-            mAllEntries.add(entry);
-
-            // Add a divider below the attribution if there are network details that will follow
-            if (networksCount > 0) {
-                mAllEntries.add(new SeparatorViewEntry());
-            }
-        }
-
-        // Add the other entries from third parties
-        for (AccountType accountType : mOtherEntriesMap.keySet()) {
-
-            // Add a title for each third party app
-            mAllEntries.add(new NetworkTitleViewEntry(mContext, accountType));
-
-            for (DetailViewEntry detailEntry : mOtherEntriesMap.get(accountType)) {
-                // Add indented separator
-                SeparatorViewEntry separatorEntry = new SeparatorViewEntry();
-                separatorEntry.setIsInSubSection(true);
-                mAllEntries.add(separatorEntry);
-
-                // Add indented detail
-                detailEntry.setIsInSubSection(true);
-                mAllEntries.add(detailEntry);
-            }
-        }
-
-        mOtherEntriesMap.clear();
-
-        // Add the "More networks" button, which opens the invitable account type list popup.
-        if (invitableCount > 0) {
-            addMoreNetworks();
-        }
-    }
-
-    /**
-     * Add the "More networks" entry.  When clicked, show a popup containing a list of invitable
-     * account types.
-     */
-    private void addMoreNetworks() {
-        // First, prepare for the popup.
-
-        // Adapter for the list popup.
-        final InvitableAccountTypesAdapter popupAdapter = new InvitableAccountTypesAdapter(mContext,
-                mContactData);
-
-        // Listener called when a popup item is clicked.
-        final AdapterView.OnItemClickListener popupItemListener
-                = new AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position,
-                    long id) {
-                if (mListener != null && mContactData != null) {
-                    mListener.onItemClicked(MoreContactUtils.getInvitableIntent(
-                            popupAdapter.getItem(position) /* account type */,
-                            mContactData.getLookupUri()));
-                }
-            }
-        };
-
-        // Then create the click listener for the "More network" entry.  Open the popup.
-        View.OnClickListener onClickListener = new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                showListPopup(v, popupAdapter, popupItemListener);
-            }
-        };
-
-        // Finally create the entry.
-        mAllEntries.add(new AddConnectionViewEntry(mContext, onClickListener));
-    }
-
-    /**
-     * Iterate through {@link DetailViewEntry} in the given list and add it to a list of all
-     * entries. Add a {@link KindTitleViewEntry} at the start if the length of the list is not 0.
-     * Add {@link SeparatorViewEntry}s as dividers as appropriate. Clear the original list.
-     */
-    private void flattenList(ArrayList<DetailViewEntry> entries) {
-        int count = entries.size();
-
-        // Add a title for this kind by extracting the kind from the first entry
-        if (count > 0) {
-            String kind = entries.get(0).kind;
-            mAllEntries.add(new KindTitleViewEntry(kind.toUpperCase()));
-        }
-
-        // Add all the data entries for this kind
-        for (int i = 0; i < count; i++) {
-            // For all entries except the first one, add a divider above the entry
-            if (i != 0) {
-                mAllEntries.add(new SeparatorViewEntry());
-            }
-            mAllEntries.add(entries.get(i));
-        }
-
-        // Clear old list because it's not needed anymore.
-        entries.clear();
-    }
-
-    /**
-     * Maps group ID to the corresponding group name, collapses all synonymous groups.
-     * Ignores default groups (e.g. My Contacts) and favorites groups.
-     */
-    private void handleGroupMembership(
-            ArrayList<String> groups, List<GroupMetaData> groupMetaData, long groupId) {
-        if (groupMetaData == null) {
-            return;
-        }
-
-        for (GroupMetaData group : groupMetaData) {
-            if (group.getGroupId() == groupId) {
-                if (!group.isDefaultGroup() && !group.isFavorites()) {
-                    String title = group.getTitle();
-                    if (!TextUtils.isEmpty(title) && !groups.contains(title)) {
-                        groups.add(title);
-                    }
-                }
-                break;
-            }
-        }
-    }
-
-    /**
-     * Writes the Instant Messaging action into the given entry value.
-     */
-    @VisibleForTesting
-    public static void buildImActions(Context context, DetailViewEntry entry,
-            ImDataItem im) {
-        final boolean isEmail = im.isCreatedFromEmail();
-
-        if (!isEmail && !im.isProtocolValid()) {
-            return;
-        }
-
-        final String data = im.getData();
-        if (TextUtils.isEmpty(data)) {
-            return;
-        }
-
-        final int protocol = isEmail ? Im.PROTOCOL_GOOGLE_TALK : im.getProtocol();
-
-        if (protocol == Im.PROTOCOL_GOOGLE_TALK) {
-            final int chatCapability = im.getChatCapability();
-            entry.chatCapability = chatCapability;
-            entry.typeString = Im.getProtocolLabel(context.getResources(), Im.PROTOCOL_GOOGLE_TALK,
-                    null).toString();
-            if ((chatCapability & Im.CAPABILITY_HAS_CAMERA) != 0) {
-                entry.intent =
-                        new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message"));
-                entry.secondaryIntent =
-                        new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call"));
-            } else if ((chatCapability & Im.CAPABILITY_HAS_VOICE) != 0) {
-                // Allow Talking and Texting
-                entry.intent =
-                    new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message"));
-                entry.secondaryIntent =
-                    new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call"));
-            } else {
-                entry.intent =
-                    new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message"));
-            }
-        } else {
-            // Build an IM Intent
-            final Intent imIntent = getCustomIMIntent(im, protocol);
-            if (imIntent != null &&
-                    PhoneCapabilityTester.isIntentRegistered(context, imIntent)) {
-                entry.intent = imIntent;
-            }
-        }
-    }
-
-    @VisibleForTesting
-    public static Intent getCustomIMIntent(ImDataItem im, int protocol) {
-        String host = im.getCustomProtocol();
-        final String data = im.getData();
-        if (TextUtils.isEmpty(data)) {
-            return null;
-        }
-        if (protocol != Im.PROTOCOL_CUSTOM) {
-            // Try bringing in a well-known host for specific protocols
-            host = ContactsUtils.lookupProviderNameFromId(protocol);
-        }
-        if (TextUtils.isEmpty(host)) {
-            return null;
-        }
-        final String authority = host.toLowerCase();
-        final Uri imUri = new Uri.Builder().scheme(CallUtil.SCHEME_IMTO).authority(
-                authority).appendPath(data).build();
-        final Intent intent = new Intent(Intent.ACTION_SENDTO, imUri);
-        return intent;
-    }
-
-    /**
-     * Show a list popup.  Used for "popup-able" entry, such as "More networks".
-     */
-    private void showListPopup(View anchorView, ListAdapter adapter,
-            final AdapterView.OnItemClickListener onItemClickListener) {
-        dismissPopupIfShown();
-        mPopup = new ListPopupWindow(mContext, null);
-        mPopup.setAnchorView(anchorView);
-        mPopup.setWidth(anchorView.getWidth());
-        mPopup.setAdapter(adapter);
-        mPopup.setModal(true);
-
-        // We need to wrap the passed onItemClickListener here, so that we can dismiss() the
-        // popup afterwards.  Otherwise we could directly use the passed listener.
-        mPopup.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position,
-                    long id) {
-                onItemClickListener.onItemClick(parent, view, position, id);
-                dismissPopupIfShown();
-            }
-        });
-        mPopup.show();
-    }
-
-    private void dismissPopupIfShown() {
-        UiClosables.closeQuietly(mPopup);
-        mPopup = null;
-    }
-
-    /**
-     * Base class for an item in the {@link ViewAdapter} list of data, which is
-     * supplied to the {@link ListView}.
-     */
-    static class ViewEntry {
-        private final int viewTypeForAdapter;
-        protected long id = -1;
-        /** Whether or not the entry can be focused on or not. */
-        protected boolean isEnabled = false;
-
-        ViewEntry(int viewType) {
-            viewTypeForAdapter = viewType;
-        }
-
-        int getViewType() {
-            return viewTypeForAdapter;
-        }
-
-        long getId() {
-            return id;
-        }
-
-        boolean isEnabled(){
-            return isEnabled;
-        }
-
-        /**
-         * Called when the entry is clicked.  Only {@link #isEnabled} entries can get clicked.
-         *
-         * @param clickedView  {@link View} that was clicked  (Used, for example, as the anchor view
-         *        for a popup.)
-         * @param fragmentListener  {@link Listener} set to {@link ContactDetailFragment}
-         */
-        public void click(View clickedView, Listener fragmentListener) {
-        }
-    }
-
-    /**
-     * Header item in the {@link ViewAdapter} list of data.
-     */
-    private static class HeaderViewEntry extends ViewEntry {
-
-        HeaderViewEntry() {
-            super(ViewAdapter.VIEW_TYPE_HEADER_ENTRY);
-        }
-
-    }
-
-    /**
-     * Separator between items of the same {@link DataKind} in the
-     * {@link ViewAdapter} list of data.
-     */
-    private static class SeparatorViewEntry extends ViewEntry {
-
-        /**
-         * Whether or not the entry is in a subsection (if true then the contents will be indented
-         * to the right)
-         */
-        private boolean mIsInSubSection = false;
-
-        SeparatorViewEntry() {
-            super(ViewAdapter.VIEW_TYPE_SEPARATOR_ENTRY);
-        }
-
-        public void setIsInSubSection(boolean isInSubSection) {
-            mIsInSubSection = isInSubSection;
-        }
-
-        public boolean isInSubSection() {
-            return mIsInSubSection;
-        }
-    }
-
-    /**
-     * Title entry for items of the same {@link DataKind} in the
-     * {@link ViewAdapter} list of data.
-     */
-    private static class KindTitleViewEntry extends ViewEntry {
-
-        private final String mTitle;
-
-        KindTitleViewEntry(String titleText) {
-            super(ViewAdapter.VIEW_TYPE_KIND_TITLE_ENTRY);
-            mTitle = titleText;
-        }
-
-        public String getTitle() {
-            return mTitle;
-        }
-    }
-
-    /**
-     * A title for a section of contact details from a single 3rd party network.
-     */
-    private static class NetworkTitleViewEntry extends ViewEntry {
-        private final Drawable mIcon;
-        private final CharSequence mLabel;
-
-        public NetworkTitleViewEntry(Context context, AccountType type) {
-            super(ViewAdapter.VIEW_TYPE_NETWORK_TITLE_ENTRY);
-            this.mIcon = type.getDisplayIcon(context);
-            this.mLabel = type.getDisplayLabel(context);
-            this.isEnabled = false;
-        }
-
-        public Drawable getIcon() {
-            return mIcon;
-        }
-
-        public CharSequence getLabel() {
-            return mLabel;
-        }
-    }
-
-    /**
-     * This is used for the "Add Connections" entry.
-     */
-    private static class AddConnectionViewEntry extends ViewEntry {
-        private final Drawable mIcon;
-        private final CharSequence mLabel;
-        private final View.OnClickListener mOnClickListener;
-
-        private AddConnectionViewEntry(Context context, View.OnClickListener onClickListener) {
-            super(ViewAdapter.VIEW_TYPE_ADD_CONNECTION_ENTRY);
-            this.mIcon = context.getResources().getDrawable(
-                    R.drawable.ic_menu_add_field_holo_light);
-            this.mLabel = context.getString(R.string.add_connection_button);
-            this.mOnClickListener = onClickListener;
-            this.isEnabled = true;
-        }
-
-        @Override
-        public void click(View clickedView, Listener fragmentListener) {
-            if (mOnClickListener == null) return;
-            mOnClickListener.onClick(clickedView);
-        }
-
-        public Drawable getIcon() {
-            return mIcon;
-        }
-
-        public CharSequence getLabel() {
-            return mLabel;
-        }
-    }
-
-    /**
-     * An item with a single detail for a contact in the {@link ViewAdapter}
-     * list of data.
-     */
-    static class DetailViewEntry extends ViewEntry implements Collapsible<DetailViewEntry> {
-        // TODO: Make getters/setters for these fields
-        public int type = -1;
-        public String kind;
-        public String typeString;
-        public String data;
-        public Uri uri;
-        public int maxLines = 1;
-        public int textDirection = TEXT_DIRECTION_UNDEFINED;
-        public String mimetype;
-
-        public Context context = null;
-        public boolean isPrimary = false;
-        public int secondaryActionIcon = -1;
-        public int secondaryActionDescription = -1;
-        public Intent intent;
-        public Intent secondaryIntent = null;
-        public ArrayList<Long> ids = new ArrayList<Long>();
-        public int collapseCount = 0;
-
-        public int presence = -1;
-        public int chatCapability = 0;
-
-        private boolean mIsInSubSection = false;
-
-        @Override
-        public String toString() {
-            return Objects.toStringHelper(this)
-                    .add("type", type)
-                    .add("kind", kind)
-                    .add("typeString", typeString)
-                    .add("data", data)
-                    .add("uri", uri)
-                    .add("maxLines", maxLines)
-                    .add("mimetype", mimetype)
-                    .add("context", context)
-                    .add("isPrimary", isPrimary)
-                    .add("secondaryActionIcon", secondaryActionIcon)
-                    .add("secondaryActionDescription", secondaryActionDescription)
-                    .add("intent", intent)
-                    .add("secondaryIntent", secondaryIntent)
-                    .add("ids", ids)
-                    .add("collapseCount", collapseCount)
-                    .add("presence", presence)
-                    .add("chatCapability", chatCapability)
-                    .add("mIsInSubSection", mIsInSubSection)
-                    .toString();
-        }
-
-        DetailViewEntry() {
-            super(ViewAdapter.VIEW_TYPE_DETAIL_ENTRY);
-            isEnabled = true;
-        }
-
-        /**
-         * Build new {@link DetailViewEntry} and populate from the given values.
-         */
-        public static DetailViewEntry fromValues(Context context, DataItem item,
-                boolean isDirectoryEntry, long directoryId, DataKind dataKind) {
-            final DetailViewEntry entry = new DetailViewEntry();
-            entry.id = item.getId();
-            entry.context = context;
-            entry.uri = ContentUris.withAppendedId(Data.CONTENT_URI, entry.id);
-            if (isDirectoryEntry) {
-                entry.uri = entry.uri.buildUpon().appendQueryParameter(
-                        ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(directoryId)).build();
-            }
-            entry.mimetype = item.getMimeType();
-            entry.kind = dataKind.getKindString(context);
-            entry.data = item.buildDataString(context, dataKind);
-
-            if (item.hasKindTypeColumn(dataKind)) {
-                entry.type = item.getKindTypeColumn(dataKind);
-
-                // get type string
-                entry.typeString = "";
-                for (EditType type : dataKind.typeList) {
-                    if (type.rawValue == entry.type) {
-                        if (type.customColumn == null) {
-                            // Non-custom type. Get its description from the resource
-                            entry.typeString = context.getString(type.labelRes);
-                        } else {
-                            // Custom type. Read it from the database
-                            entry.typeString =
-                                    item.getContentValues().getAsString(type.customColumn);
-                        }
-                        break;
-                    }
-                }
-            } else {
-                entry.typeString = "";
-            }
-
-            return entry;
-        }
-
-        public void setPresence(int presence) {
-            this.presence = presence;
-        }
-
-        public void setIsInSubSection(boolean isInSubSection) {
-            mIsInSubSection = isInSubSection;
-        }
-
-        public boolean isInSubSection() {
-            return mIsInSubSection;
-        }
-
-        @Override
-        public void collapseWith(DetailViewEntry entry) {
-            // Choose the label associated with the highest type precedence.
-            if (TypePrecedence.getTypePrecedence(mimetype, type)
-                    > TypePrecedence.getTypePrecedence(entry.mimetype, entry.type)) {
-                type = entry.type;
-                kind = entry.kind;
-                typeString = entry.typeString;
-            }
-
-            // Choose the max of the maxLines and maxLabelLines values.
-            maxLines = Math.max(maxLines, entry.maxLines);
-
-            // Choose the presence with the highest precedence.
-            if (StatusUpdates.getPresencePrecedence(presence)
-                    < StatusUpdates.getPresencePrecedence(entry.presence)) {
-                presence = entry.presence;
-            }
-
-            // If any of the collapsed entries are primary make the whole thing primary.
-            isPrimary = entry.isPrimary ? true : isPrimary;
-
-            // uri, and contactdId, shouldn't make a difference. Just keep the original.
-
-            // Keep track of all the ids that have been collapsed with this one.
-            ids.add(entry.getId());
-            collapseCount++;
-        }
-
-        @Override
-        public boolean shouldCollapseWith(DetailViewEntry entry) {
-            if (entry == null) {
-                return false;
-            }
-
-            if (!MoreContactUtils.shouldCollapse(mimetype, data, entry.mimetype, entry.data)) {
-                return false;
-            }
-
-            if (!TextUtils.equals(mimetype, entry.mimetype)
-                    || !ContactsUtils.areIntentActionEqual(intent, entry.intent)
-                    || !ContactsUtils.areIntentActionEqual(
-                            secondaryIntent, entry.secondaryIntent)) {
-                return false;
-            }
-
-            return true;
-        }
-
-        @Override
-        public void click(View clickedView, Listener fragmentListener) {
-            if (fragmentListener == null || intent == null) return;
-            fragmentListener.onItemClicked(intent);
-        }
-    }
-
-    /**
-     * Cache of the children views for a view that displays a header view entry.
-     */
-    private static class HeaderViewCache {
-        public final TextView displayNameView;
-        public final TextView companyView;
-        public final ImageView photoView;
-        public final View photoOverlayView;
-        public final ImageView starredView;
-        public final int layoutResourceId;
-
-        public HeaderViewCache(View view, int layoutResourceInflated) {
-            displayNameView = (TextView) view.findViewById(R.id.name);
-            companyView = (TextView) view.findViewById(R.id.company);
-            photoView = (ImageView) view.findViewById(R.id.photo);
-            photoOverlayView = view.findViewById(R.id.photo_touch_intercept_overlay);
-            starredView = (ImageView) view.findViewById(R.id.star);
-            layoutResourceId = layoutResourceInflated;
-        }
-
-        public void enablePhotoOverlay(OnClickListener listener) {
-            if (photoOverlayView != null) {
-                photoOverlayView.setOnClickListener(listener);
-                photoOverlayView.setVisibility(View.VISIBLE);
-            }
-        }
-    }
-
-    private static class KindTitleViewCache {
-        public final TextView titleView;
-
-        public KindTitleViewCache(View view) {
-            titleView = (TextView)view.findViewById(R.id.title);
-        }
-    }
-
-    /**
-     * Cache of the children views for a view that displays a {@link NetworkTitleViewEntry}
-     */
-    private static class NetworkTitleViewCache {
-        public final TextView name;
-        public final ImageView icon;
-
-        public NetworkTitleViewCache(View view) {
-            name = (TextView) view.findViewById(R.id.network_title);
-            icon = (ImageView) view.findViewById(R.id.network_icon);
-        }
-    }
-
-    /**
-     * Cache of the children views for a view that displays a {@link AddConnectionViewEntry}
-     */
-    private static class AddConnectionViewCache {
-        public final TextView name;
-        public final ImageView icon;
-        public final View primaryActionView;
-
-        public AddConnectionViewCache(View view) {
-            name = (TextView) view.findViewById(R.id.add_connection_label);
-            icon = (ImageView) view.findViewById(R.id.add_connection_icon);
-            primaryActionView = view.findViewById(R.id.primary_action_view);
-        }
-    }
-
-    /**
-     * Cache of the children views of a contact detail entry represented by a
-     * {@link DetailViewEntry}
-     */
-    private static class DetailViewCache {
-        public final TextView type;
-        public final TextView data;
-        public final ImageView presenceIcon;
-        public final ImageView secondaryActionButton;
-        public final View actionsViewContainer;
-        public final View primaryActionView;
-        public final View secondaryActionViewContainer;
-        public final View secondaryActionDivider;
-        public final View primaryIndicator;
-
-        public DetailViewCache(View view,
-                OnClickListener primaryActionClickListener,
-                OnClickListener secondaryActionClickListener) {
-            type = (TextView) view.findViewById(R.id.type);
-            data = (TextView) view.findViewById(R.id.data);
-            primaryIndicator = view.findViewById(R.id.primary_indicator);
-            presenceIcon = (ImageView) view.findViewById(R.id.presence_icon);
-
-            actionsViewContainer = view.findViewById(R.id.actions_view_container);
-            actionsViewContainer.setOnClickListener(primaryActionClickListener);
-            primaryActionView = view.findViewById(R.id.primary_action_view);
-
-            secondaryActionViewContainer = view.findViewById(
-                    R.id.secondary_action_view_container);
-            secondaryActionViewContainer.setOnClickListener(
-                    secondaryActionClickListener);
-            secondaryActionButton = (ImageView) view.findViewById(
-                    R.id.secondary_action_button);
-
-            secondaryActionDivider = view.findViewById(R.id.vertical_divider);
-        }
-    }
-
-    private final class ViewAdapter extends BaseAdapter {
-
-        public static final int VIEW_TYPE_DETAIL_ENTRY = 0;
-        public static final int VIEW_TYPE_HEADER_ENTRY = 1;
-        public static final int VIEW_TYPE_KIND_TITLE_ENTRY = 2;
-        public static final int VIEW_TYPE_NETWORK_TITLE_ENTRY = 3;
-        public static final int VIEW_TYPE_ADD_CONNECTION_ENTRY = 4;
-        public static final int VIEW_TYPE_SEPARATOR_ENTRY = 5;
-        private static final int VIEW_TYPE_COUNT = 6;
-
-        @Override
-        public View getView(int position, View convertView, ViewGroup parent) {
-            switch (getItemViewType(position)) {
-                case VIEW_TYPE_HEADER_ENTRY:
-                    return getHeaderEntryView(convertView, parent);
-                case VIEW_TYPE_SEPARATOR_ENTRY:
-                    return getSeparatorEntryView(position, convertView, parent);
-                case VIEW_TYPE_KIND_TITLE_ENTRY:
-                    return getKindTitleEntryView(position, convertView, parent);
-                case VIEW_TYPE_DETAIL_ENTRY:
-                    return getDetailEntryView(position, convertView, parent);
-                case VIEW_TYPE_NETWORK_TITLE_ENTRY:
-                    return getNetworkTitleEntryView(position, convertView, parent);
-                case VIEW_TYPE_ADD_CONNECTION_ENTRY:
-                    return getAddConnectionEntryView(position, convertView, parent);
-                default:
-                    throw new IllegalStateException("Invalid view type ID " +
-                            getItemViewType(position));
-            }
-        }
-
-        private View getHeaderEntryView(View convertView, ViewGroup parent) {
-            final int desiredLayoutResourceId = R.layout.detail_header_contact_without_updates;
-            View result = null;
-            HeaderViewCache viewCache = null;
-
-            // Only use convertView if it has the same layout resource ID as the one desired
-            // (the two can be different on wide 2-pane screens where the detail fragment is reused
-            // for many different contacts that do and do not have social updates).
-            if (convertView != null) {
-                viewCache = (HeaderViewCache) convertView.getTag();
-                if (viewCache.layoutResourceId == desiredLayoutResourceId) {
-                    result = convertView;
-                }
-            }
-
-            // Otherwise inflate a new header view and create a new view cache.
-            if (result == null) {
-                result = mInflater.inflate(desiredLayoutResourceId, parent, false);
-                viewCache = new HeaderViewCache(result, desiredLayoutResourceId);
-                result.setTag(viewCache);
-            }
-
-            ContactDetailDisplayUtils.setDisplayName(mContext, mContactData,
-                    viewCache.displayNameView);
-            ContactDetailDisplayUtils.setCompanyName(mContext, mContactData, viewCache.companyView);
-
-            // Set the photo if it should be displayed
-            if (viewCache.photoView != null) {
-                final boolean expandOnClick = mContactData.getPhotoUri() != null;
-                final OnClickListener listener = mPhotoSetter.setupContactPhotoForClick(
-                        mContext, mContactData, viewCache.photoView, expandOnClick);
-
-                if (expandOnClick || mContactData.isWritableContact(mContext)) {
-                    viewCache.enablePhotoOverlay(listener);
-                }
-            }
-
-            // Set the starred state if it should be displayed
-            final ImageView favoritesStar = viewCache.starredView;
-            if (favoritesStar != null) {
-                ContactDetailDisplayUtils.configureStarredImageView(favoritesStar,
-                        mContactData.isDirectoryEntry(), mContactData.isUserProfile(),
-                        mContactData.getStarred());
-                final Uri lookupUri = mContactData.getLookupUri();
-                favoritesStar.setOnClickListener(new OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        // Toggle "starred" state
-                        // Make sure there is a contact
-                        if (lookupUri != 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 Object tag = favoritesStar.getTag();
-                            final boolean isStarred = tag == null
-                                    ? false : (Boolean) favoritesStar.getTag();
-
-                            // To improve responsiveness, swap out the picture (and tag) in the UI
-                            // already
-                            ContactDetailDisplayUtils.configureStarredImageView(favoritesStar,
-                                    mContactData.isDirectoryEntry(), mContactData.isUserProfile(),
-                                    !isStarred);
-
-                            // Now perform the real save
-                            Intent intent = ContactSaveService.createSetStarredIntent(
-                                    getContext(), lookupUri, !isStarred);
-                            getContext().startService(intent);
-                        }
-                    }
-                });
-            }
-
-            return result;
-        }
-
-        private View getSeparatorEntryView(int position, View convertView, ViewGroup parent) {
-            final SeparatorViewEntry entry = (SeparatorViewEntry) getItem(position);
-            final View result = (convertView != null) ? convertView :
-                    mInflater.inflate(R.layout.contact_detail_separator_entry_view, parent, false);
-
-            result.setPadding(entry.isInSubSection() ? mViewEntryDimensions.getWidePaddingLeft() :
-                    mViewEntryDimensions.getPaddingLeft(), 0,
-                    mViewEntryDimensions.getPaddingRight(), 0);
-
-            return result;
-        }
-
-        private View getKindTitleEntryView(int position, View convertView, ViewGroup parent) {
-            final KindTitleViewEntry entry = (KindTitleViewEntry) getItem(position);
-            final View result;
-            final KindTitleViewCache viewCache;
-
-            if (convertView != null) {
-                result = convertView;
-                viewCache = (KindTitleViewCache)result.getTag();
-            } else {
-                result = mInflater.inflate(R.layout.list_separator, parent, false);
-                viewCache = new KindTitleViewCache(result);
-                result.setTag(viewCache);
-            }
-
-            viewCache.titleView.setText(entry.getTitle());
-
-            return result;
-        }
-
-        private View getNetworkTitleEntryView(int position, View convertView, ViewGroup parent) {
-            final NetworkTitleViewEntry entry = (NetworkTitleViewEntry) getItem(position);
-            final View result;
-            final NetworkTitleViewCache viewCache;
-
-            if (convertView != null) {
-                result = convertView;
-                viewCache = (NetworkTitleViewCache) result.getTag();
-            } else {
-                result = mInflater.inflate(R.layout.contact_detail_network_title_entry_view,
-                        parent, false);
-                viewCache = new NetworkTitleViewCache(result);
-                result.setTag(viewCache);
-            }
-
-            viewCache.name.setText(entry.getLabel());
-            viewCache.icon.setImageDrawable(entry.getIcon());
-
-            return result;
-        }
-
-        private View getAddConnectionEntryView(int position, View convertView, ViewGroup parent) {
-            final AddConnectionViewEntry entry = (AddConnectionViewEntry) getItem(position);
-            final View result;
-            final AddConnectionViewCache viewCache;
-
-            if (convertView != null) {
-                result = convertView;
-                viewCache = (AddConnectionViewCache) result.getTag();
-            } else {
-                result = mInflater.inflate(R.layout.contact_detail_add_connection_entry_view,
-                        parent, false);
-                viewCache = new AddConnectionViewCache(result);
-                result.setTag(viewCache);
-            }
-            viewCache.name.setText(entry.getLabel());
-            viewCache.icon.setImageDrawable(entry.getIcon());
-            viewCache.primaryActionView.setOnClickListener(entry.mOnClickListener);
-
-            return result;
-        }
-
-        private View getDetailEntryView(int position, View convertView, ViewGroup parent) {
-            final DetailViewEntry entry = (DetailViewEntry) getItem(position);
-            final View v;
-            final DetailViewCache viewCache;
-
-            // Check to see if we can reuse convertView
-            if (convertView != null) {
-                v = convertView;
-                viewCache = (DetailViewCache) v.getTag();
-            } else {
-                // Create a new view if needed
-                v = mInflater.inflate(R.layout.contact_detail_list_item, parent, false);
-
-                // Cache the children
-                viewCache = new DetailViewCache(v,
-                        mPrimaryActionClickListener, mSecondaryActionClickListener);
-                v.setTag(viewCache);
-            }
-
-            bindDetailView(position, v, entry);
-            return v;
-        }
-
-        private void bindDetailView(int position, View view, DetailViewEntry entry) {
-            final Resources resources = mContext.getResources();
-            DetailViewCache views = (DetailViewCache) view.getTag();
-
-            if (!TextUtils.isEmpty(entry.typeString)) {
-                views.type.setText(entry.typeString.toUpperCase());
-                views.type.setVisibility(View.VISIBLE);
-            } else {
-                views.type.setVisibility(View.GONE);
-            }
-
-            views.data.setText(entry.data);
-            setMaxLines(views.data, entry.maxLines);
-
-            // Gray out the data item if it does not perform an action when clicked
-            // Set primary_text_color even if it might have been set by default to avoid
-            // views being gray sometimes when they are not supposed to, due to view reuse
-            ((TextView) view.findViewById(R.id.data)).setTextColor(
-                        getResources().getColor((entry.intent == null) ?
-                        R.color.secondary_text_color : R.color.primary_text_color));
-
-            // Set the default contact method
-            views.primaryIndicator.setVisibility(entry.isPrimary ? View.VISIBLE : View.GONE);
-
-            // Set the presence icon
-            final Drawable presenceIcon = ContactPresenceIconUtil.getPresenceIcon(
-                    mContext, entry.presence);
-            final ImageView presenceIconView = views.presenceIcon;
-            if (presenceIcon != null) {
-                presenceIconView.setImageDrawable(presenceIcon);
-                presenceIconView.setVisibility(View.VISIBLE);
-            } else {
-                presenceIconView.setVisibility(View.GONE);
-            }
-
-            final ActionsViewContainer actionsButtonContainer =
-                    (ActionsViewContainer) views.actionsViewContainer;
-            actionsButtonContainer.setTag(entry);
-            actionsButtonContainer.setPosition(position);
-            registerForContextMenu(actionsButtonContainer);
-
-            // Set the secondary action button
-            final ImageView secondaryActionView = views.secondaryActionButton;
-            Drawable secondaryActionIcon = null;
-            String secondaryActionDescription = null;
-            if (entry.secondaryActionIcon != -1) {
-                secondaryActionIcon = resources.getDrawable(entry.secondaryActionIcon);
-                if (ContactDisplayUtils.isCustomPhoneType(entry.type)) {
-                    secondaryActionDescription = resources.getString(
-                            entry.secondaryActionDescription, entry.typeString);
-                } else {
-                    secondaryActionDescription = resources.getString(
-                            entry.secondaryActionDescription);
-                }
-            } else if ((entry.chatCapability & Im.CAPABILITY_HAS_CAMERA) != 0) {
-                secondaryActionIcon =
-                        resources.getDrawable(R.drawable.sym_action_videochat_holo_light);
-                secondaryActionDescription = resources.getString(R.string.video_chat);
-            } else if ((entry.chatCapability & Im.CAPABILITY_HAS_VOICE) != 0) {
-                secondaryActionIcon =
-                        resources.getDrawable(R.drawable.sym_action_audiochat_holo_light);
-                secondaryActionDescription = resources.getString(R.string.audio_chat);
-            }
-
-            final View secondaryActionViewContainer = views.secondaryActionViewContainer;
-            if (entry.secondaryIntent != null && secondaryActionIcon != null) {
-                secondaryActionView.setImageDrawable(secondaryActionIcon);
-                secondaryActionView.setContentDescription(secondaryActionDescription);
-                secondaryActionViewContainer.setTag(entry);
-                secondaryActionViewContainer.setVisibility(View.VISIBLE);
-                views.secondaryActionDivider.setVisibility(View.VISIBLE);
-            } else {
-                secondaryActionViewContainer.setVisibility(View.GONE);
-                views.secondaryActionDivider.setVisibility(View.GONE);
-            }
-
-            // Right and left padding should not have "pressed" effect.
-            view.setPadding(
-                    entry.isInSubSection()
-                            ? mViewEntryDimensions.getWidePaddingLeft()
-                            : mViewEntryDimensions.getPaddingLeft(),
-                    0, mViewEntryDimensions.getPaddingRight(), 0);
-            // Top and bottom padding should have "pressed" effect.
-            final View primaryActionView = views.primaryActionView;
-            primaryActionView.setPadding(
-                    primaryActionView.getPaddingLeft(),
-                    mViewEntryDimensions.getPaddingTop(),
-                    primaryActionView.getPaddingRight(),
-                    mViewEntryDimensions.getPaddingBottom());
-            secondaryActionViewContainer.setPadding(
-                    secondaryActionViewContainer.getPaddingLeft(),
-                    mViewEntryDimensions.getPaddingTop(),
-                    secondaryActionViewContainer.getPaddingRight(),
-                    mViewEntryDimensions.getPaddingBottom());
-
-            // Set the text direction
-            if (entry.textDirection != TEXT_DIRECTION_UNDEFINED) {
-                views.data.setTextDirection(entry.textDirection);
-            }
-        }
-
-        private void setMaxLines(TextView textView, int maxLines) {
-            if (maxLines == 1) {
-                textView.setSingleLine(true);
-                textView.setEllipsize(TextUtils.TruncateAt.END);
-            } else {
-                textView.setSingleLine(false);
-                textView.setMaxLines(maxLines);
-                textView.setEllipsize(null);
-            }
-        }
-
-        private final OnClickListener mPrimaryActionClickListener = new OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                if (mListener == null) return;
-                final ViewEntry entry = (ViewEntry) view.getTag();
-                if (entry == null) return;
-                entry.click(view, mListener);
-            }
-        };
-
-        private final OnClickListener mSecondaryActionClickListener = new OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                if (mListener == null) return;
-                if (view == null) return;
-                final ViewEntry entry = (ViewEntry) view.getTag();
-                if (entry == null || !(entry instanceof DetailViewEntry)) return;
-                final DetailViewEntry detailViewEntry = (DetailViewEntry) entry;
-                final Intent intent = detailViewEntry.secondaryIntent;
-                if (intent == null) return;
-                mListener.onItemClicked(intent);
-            }
-        };
-
-        @Override
-        public int getCount() {
-            return mAllEntries.size();
-        }
-
-        @Override
-        public ViewEntry getItem(int position) {
-            return mAllEntries.get(position);
-        }
-
-        @Override
-        public int getItemViewType(int position) {
-            return mAllEntries.get(position).getViewType();
-        }
-
-        @Override
-        public int getViewTypeCount() {
-            return VIEW_TYPE_COUNT;
-        }
-
-        @Override
-        public long getItemId(int position) {
-            final ViewEntry entry = mAllEntries.get(position);
-            if (entry != null) {
-                return entry.getId();
-            }
-            return -1;
-        }
-
-        @Override
-        public boolean areAllItemsEnabled() {
-            // Header will always be an item that is not enabled.
-            return false;
-        }
-
-        @Override
-        public boolean isEnabled(int position) {
-            return getItem(position).isEnabled();
-        }
-    }
-
-    @Override
-    public void onAccountSelectorCancelled() {
-    }
-
-    @Override
-    public void onAccountChosen(AccountWithDataSet account, Bundle extraArgs) {
-        createCopy(account);
-    }
-
-    private void createCopy(AccountWithDataSet account) {
-        if (mListener != null) {
-            mListener.onCreateRawContactRequested(mContactData.getContentValues(), account);
-        }
-    }
-
-    /**
-     * Default (fallback) list item click listener.  Note the click event for DetailViewEntry is
-     * caught by individual views in the list item view to distinguish the primary action and the
-     * secondary action, so this method won't be invoked for that.  (The listener is set in the
-     * bindview in the adapter)
-     * This listener is used for other kind of entries.
-     */
-    @Override
-    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-        if (mListener == null) return;
-        final ViewEntry entry = mAdapter.getItem(position);
-        if (entry == null) return;
-        entry.click(view, mListener);
-    }
-
-    @Override
-    public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) {
-        super.onCreateContextMenu(menu, view, menuInfo);
-
-        AdapterView.AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
-        DetailViewEntry selectedEntry = (DetailViewEntry) mAllEntries.get(info.position);
-
-        menu.setHeaderTitle(selectedEntry.data);
-        menu.add(ContextMenu.NONE, ContextMenuIds.COPY_TEXT,
-                ContextMenu.NONE, getString(R.string.copy_text));
-
-        // Don't allow setting or clearing of defaults for directory contacts
-        if (mContactData.isDirectoryEntry()) {
-            return;
-        }
-
-        String selectedMimeType = selectedEntry.mimetype;
-
-        // Defaults to true will only enable the detail to be copied to the clipboard.
-        boolean isUniqueMimeType = true;
-
-        // Only allow primary support for Phone and Email content types
-        if (Phone.CONTENT_ITEM_TYPE.equals(selectedMimeType)) {
-            isUniqueMimeType = mIsUniqueNumber;
-        } else if (Email.CONTENT_ITEM_TYPE.equals(selectedMimeType)) {
-            isUniqueMimeType = mIsUniqueEmail;
-        }
-
-        // Checking for previously set default
-        if (selectedEntry.isPrimary) {
-            menu.add(ContextMenu.NONE, ContextMenuIds.CLEAR_DEFAULT,
-                    ContextMenu.NONE, getString(R.string.clear_default));
-        } else if (!isUniqueMimeType) {
-            menu.add(ContextMenu.NONE, ContextMenuIds.SET_DEFAULT,
-                    ContextMenu.NONE, getString(R.string.set_default));
-        }
-    }
-
-    @Override
-    public boolean onContextItemSelected(MenuItem item) {
-        AdapterView.AdapterContextMenuInfo menuInfo;
-        try {
-            menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
-        } catch (ClassCastException e) {
-            Log.e(TAG, "bad menuInfo", e);
-            return false;
-        }
-
-        switch (item.getItemId()) {
-            case ContextMenuIds.COPY_TEXT:
-                copyToClipboard(menuInfo.position);
-                return true;
-            case ContextMenuIds.SET_DEFAULT:
-                setDefaultContactMethod(mListView.getItemIdAtPosition(menuInfo.position));
-                return true;
-            case ContextMenuIds.CLEAR_DEFAULT:
-                clearDefaultContactMethod(mListView.getItemIdAtPosition(menuInfo.position));
-                return true;
-            default:
-                throw new IllegalArgumentException("Unknown menu option " + item.getItemId());
-        }
-    }
-
-    private void setDefaultContactMethod(long id) {
-        Intent setIntent = ContactSaveService.createSetSuperPrimaryIntent(mContext, id);
-        mContext.startService(setIntent);
-    }
-
-    private void clearDefaultContactMethod(long id) {
-        Intent clearIntent = ContactSaveService.createClearPrimaryIntent(mContext, id);
-        mContext.startService(clearIntent);
-    }
-
-    private void copyToClipboard(int viewEntryPosition) {
-        // Getting the text to copied
-        DetailViewEntry detailViewEntry = (DetailViewEntry) mAllEntries.get(viewEntryPosition);
-        CharSequence textToCopy = detailViewEntry.data;
-
-        // Checking for empty string
-        if (TextUtils.isEmpty(textToCopy)) return;
-
-        ClipboardUtils.copyText(getActivity(), detailViewEntry.typeString, textToCopy, true);
-    }
-
-    @Override
-    public boolean handleKeyDown(int keyCode) {
-        switch (keyCode) {
-            case KeyEvent.KEYCODE_CALL: {
-                TelephonyManager telephonyManager =
-                    (TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE);
-                if (telephonyManager != null &&
-                        telephonyManager.getCallState() != TelephonyManager.CALL_STATE_IDLE) {
-                    // Skip out and let the key be handled at a higher level
-                    break;
-                }
-
-                int index = mListView.getSelectedItemPosition();
-                if (index != -1) {
-                    final DetailViewEntry entry = (DetailViewEntry) mAdapter.getItem(index);
-                    if (entry != null && entry.intent != null &&
-                            entry.intent.getAction() == Intent.ACTION_CALL_PRIVILEGED) {
-                        mContext.startActivity(entry.intent);
-                        return true;
-                    }
-                } else if (mPrimaryPhoneUri != null) {
-                    // There isn't anything selected, call the default number
-                    mContext.startActivity(CallUtil.getCallIntent(mPrimaryPhoneUri));
-                    return true;
-                }
-                return false;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Base class for QuickFixes. QuickFixes quickly fix issues with the Contact without
-     * requiring the user to go to the editor. Example: Add to My Contacts.
-     */
-    private static abstract class QuickFix {
-        public abstract boolean isApplicable();
-        public abstract String getTitle();
-        public abstract void execute();
-    }
-
-    private class AddToMyContactsQuickFix extends QuickFix {
-        @Override
-        public boolean isApplicable() {
-            // Only local contacts
-            if (mContactData == null || mContactData.isDirectoryEntry()) return false;
-
-            // User profile cannot be added to contacts
-            if (mContactData.isUserProfile()) return false;
-
-            // Only if exactly one raw contact
-            if (mContactData.getRawContacts().size() != 1) return false;
-
-            // test if the default group is assigned
-            final List<GroupMetaData> groups = mContactData.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) mContactData.getRawContacts().get(0);
-            final AccountType type = rawContact.getAccountType(getContext());
-            // 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;
-        }
-
-        @Override
-        public String getTitle() {
-            return getString(R.string.add_to_my_contacts);
-        }
-
-        @Override
-        public void execute() {
-            final long defaultGroupId = getDefaultGroupId(mContactData.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 = mContactData.createRawContactDeltaList();
-            final RawContactDelta rawContactEntityDelta = contactDeltaList.get(0);
-
-            final AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
-            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(getActivity(),
-                    contactDeltaList, "", 0, false, getActivity().getClass(),
-                    Intent.ACTION_VIEW, null);
-            getActivity().startService(intent);
-        }
-    }
-
-    private class MakeLocalCopyQuickFix extends QuickFix {
-        @Override
-        public boolean isApplicable() {
-            // Not a directory contact? Nothing to fix here
-            if (mContactData == null || !mContactData.isDirectoryEntry()) return false;
-
-            // No export support? Too bad
-            if (mContactData.getDirectoryExportSupport() == Directory.EXPORT_SUPPORT_NONE) {
-                return false;
-            }
-
-            return true;
-        }
-
-        @Override
-        public String getTitle() {
-            return getString(R.string.menu_copyContact);
-        }
-
-        @Override
-        public void execute() {
-            if (mListener == null) {
-                return;
-            }
-
-            int exportSupport = mContactData.getDirectoryExportSupport();
-            switch (exportSupport) {
-                case Directory.EXPORT_SUPPORT_SAME_ACCOUNT_ONLY: {
-                    createCopy(new AccountWithDataSet(mContactData.getDirectoryAccountName(),
-                                    mContactData.getDirectoryAccountType(), null));
-                    break;
-                }
-                case Directory.EXPORT_SUPPORT_ANY_ACCOUNT: {
-                    final List<AccountWithDataSet> accounts =
-                            AccountTypeManager.getInstance(mContext).getAccounts(true);
-                    if (accounts.isEmpty()) {
-                        createCopy(null);
-                        return;  // Don't show a dialog.
-                    }
-
-                    // In the common case of a single writable account, auto-select
-                    // it without showing a dialog.
-                    if (accounts.size() == 1) {
-                        createCopy(accounts.get(0));
-                        return;  // Don't show a dialog.
-                    }
-
-                    SelectAccountDialogFragment.show(getFragmentManager(),
-                            ContactDetailFragment.this, R.string.dialog_new_contact_account,
-                            AccountListFilter.ACCOUNTS_CONTACT_WRITABLE, null);
-                    break;
-                }
-            }
-        }
-    }
-
-    /**
-     * This class loads the correct padding values for a contact detail item so they can be applied
-     * dynamically. For example, this supports the case where some detail items can be indented and
-     * need extra padding.
-     */
-    private static class ViewEntryDimensions {
-
-        private final int mWidePaddingLeft;
-        private final int mPaddingLeft;
-        private final int mPaddingRight;
-        private final int mPaddingTop;
-        private final int mPaddingBottom;
-
-        public ViewEntryDimensions(Resources resources) {
-            mPaddingLeft = resources.getDimensionPixelSize(
-                    R.dimen.detail_item_side_margin);
-            mPaddingTop = resources.getDimensionPixelSize(
-                    R.dimen.detail_item_vertical_margin);
-            mWidePaddingLeft = mPaddingLeft +
-                    resources.getDimensionPixelSize(R.dimen.detail_item_icon_margin) +
-                    resources.getDimensionPixelSize(R.dimen.detail_network_icon_size);
-            mPaddingRight = mPaddingLeft;
-            mPaddingBottom = mPaddingTop;
-        }
-
-        public int getWidePaddingLeft() {
-            return mWidePaddingLeft;
-        }
-
-        public int getPaddingLeft() {
-            return mPaddingLeft;
-        }
-
-        public int getPaddingRight() {
-            return mPaddingRight;
-        }
-
-        public int getPaddingTop() {
-            return mPaddingTop;
-        }
-
-        public int getPaddingBottom() {
-            return mPaddingBottom;
-        }
-    }
-
-    public static interface Listener {
-        /**
-         * User clicked a single item (e.g. mail). The intent passed in could be null.
-         */
-        public void onItemClicked(Intent intent);
-
-        /**
-         * User requested creation of a new contact with the specified values.
-         *
-         * @param values ContentValues containing data rows for the new contact.
-         * @param account Account where the new contact should be created.
-         */
-        public void onCreateRawContactRequested(ArrayList<ContentValues> values,
-                AccountWithDataSet account);
-    }
-
-    /**
-     * Adapter for the invitable account types; used for the invitable account type list popup.
-     */
-    private final static class InvitableAccountTypesAdapter extends BaseAdapter {
-        private final Context mContext;
-        private final LayoutInflater mInflater;
-        private final ArrayList<AccountType> mAccountTypes;
-
-        public InvitableAccountTypesAdapter(Context context, Contact contactData) {
-            mContext = context;
-            mInflater = LayoutInflater.from(context);
-            final List<AccountType> types = contactData.getInvitableAccountTypes();
-            mAccountTypes = new ArrayList<AccountType>(types.size());
-
-            for (int i = 0; i < types.size(); i++) {
-                mAccountTypes.add(types.get(i));
-            }
-
-            Collections.sort(mAccountTypes, new AccountType.DisplayLabelComparator(mContext));
-        }
-
-        @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 TextView text1 = (TextView)resultView.findViewById(android.R.id.text1);
-            final TextView text2 = (TextView)resultView.findViewById(android.R.id.text2);
-            final ImageView icon = (ImageView)resultView.findViewById(android.R.id.icon);
-
-            final AccountType accountType = mAccountTypes.get(position);
-
-            CharSequence action = accountType.getInviteContactActionLabel(mContext);
-            CharSequence label = accountType.getDisplayLabel(mContext);
-            if (TextUtils.isEmpty(action)) {
-                text1.setText(label);
-                text2.setVisibility(View.GONE);
-            } else {
-                text1.setText(action);
-                text2.setVisibility(View.VISIBLE);
-                text2.setText(label);
-            }
-            icon.setImageDrawable(accountType.getDisplayIcon(mContext));
-
-            return resultView;
-        }
-
-        @Override
-        public int getCount() {
-            return mAccountTypes.size();
-        }
-
-        @Override
-        public AccountType getItem(int position) {
-            return mAccountTypes.get(position);
-        }
-
-        @Override
-        public long getItemId(int position) {
-            return position;
-        }
-    }
-}
diff --git a/src/com/android/contacts/detail/ContactDetailFragmentCarousel.java b/src/com/android/contacts/detail/ContactDetailFragmentCarousel.java
deleted file mode 100644
index 434d8f5..0000000
--- a/src/com/android/contacts/detail/ContactDetailFragmentCarousel.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.detail;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.View.OnTouchListener;
-import android.view.ViewPropertyAnimator;
-import android.widget.HorizontalScrollView;
-
-import com.android.contacts.R;
-import com.android.contacts.widget.FrameLayoutWithOverlay;
-
-/**
- * This is a horizontally scrolling carousel with 2 fragments: one to see info about the contact and
- * one to see updates from the contact. Depending on the scroll position and user selection of which
- * fragment to currently view, the touch interceptors over each fragment are configured accordingly.
- */
-public class ContactDetailFragmentCarousel extends HorizontalScrollView implements OnTouchListener {
-
-    private static final String TAG = ContactDetailFragmentCarousel.class.getSimpleName();
-
-    /**
-     * Number of pixels that this view can be scrolled horizontally.
-     */
-    private int mAllowedHorizontalScrollLength = Integer.MIN_VALUE;
-
-    /**
-     * Minimum X scroll position that must be surpassed (if the user is on the "about" page of the
-     * contact card), in order for this view to automatically snap to the "updates" page.
-     */
-    private int mLowerThreshold = Integer.MIN_VALUE;
-
-    /**
-     * Maximum X scroll position (if the user is on the "updates" page of the contact card), below
-     * which this view will automatically snap to the "about" page.
-     */
-    private int mUpperThreshold = Integer.MIN_VALUE;
-
-    /**
-     * Minimum width of a fragment (if there is more than 1 fragment in the carousel, then this is
-     * the width of one of the fragments).
-     */
-    private int mMinFragmentWidth = Integer.MIN_VALUE;
-
-    /**
-     * Fragment width (if there are 1+ fragments in the carousel) as defined as a fraction of the
-     * screen width.
-     */
-    private static final float FRAGMENT_WIDTH_SCREEN_WIDTH_FRACTION = 0.85f;
-
-    private static final int ABOUT_PAGE = 0;
-    private static final int UPDATES_PAGE = 1;
-
-    private static final int MAX_FRAGMENT_VIEW_COUNT = 2;
-
-    private boolean mEnableSwipe;
-
-    private int mCurrentPage = ABOUT_PAGE;
-    private int mLastScrollPosition;
-
-    private FrameLayoutWithOverlay mAboutFragment;
-    private FrameLayoutWithOverlay mUpdatesFragment;
-
-    public ContactDetailFragmentCarousel(Context context) {
-        this(context, null);
-    }
-
-    public ContactDetailFragmentCarousel(Context context, AttributeSet attrs) {
-        this(context, attrs, 0);
-    }
-
-    public ContactDetailFragmentCarousel(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-
-        final LayoutInflater inflater =
-                (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        inflater.inflate(R.layout.contact_detail_fragment_carousel, this);
-
-        setOnTouchListener(this);
-    }
-
-    @Override
-    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        int screenWidth = MeasureSpec.getSize(widthMeasureSpec);
-        int screenHeight = MeasureSpec.getSize(heightMeasureSpec);
-
-        // Take the width of this view as the width of the screen and compute necessary thresholds.
-        // Only do this computation 1x.
-        if (mAllowedHorizontalScrollLength == Integer.MIN_VALUE) {
-            mMinFragmentWidth = (int) (FRAGMENT_WIDTH_SCREEN_WIDTH_FRACTION * screenWidth);
-            mAllowedHorizontalScrollLength = (MAX_FRAGMENT_VIEW_COUNT * mMinFragmentWidth) -
-                    screenWidth;
-            mLowerThreshold = (screenWidth - mMinFragmentWidth) / MAX_FRAGMENT_VIEW_COUNT;
-            mUpperThreshold = mAllowedHorizontalScrollLength - mLowerThreshold;
-        }
-
-        if (getChildCount() > 0) {
-            View child = getChildAt(0);
-            // If we enable swipe, then the {@link LinearLayout} child width must be the sum of the
-            // width of all its children fragments.
-            // Or the current page may already be set to something other than the first.  If so,
-            // it also means there are multiple child fragments.
-            if (mEnableSwipe || mCurrentPage == 1 ||
-                    (mCurrentPage == 0 && getLayoutDirection() == View.LAYOUT_DIRECTION_RTL)) {
-                child.measure(MeasureSpec.makeMeasureSpec(
-                        mMinFragmentWidth * MAX_FRAGMENT_VIEW_COUNT, MeasureSpec.EXACTLY),
-                        MeasureSpec.makeMeasureSpec(screenHeight, MeasureSpec.EXACTLY));
-            } else {
-                // Otherwise, the {@link LinearLayout} child width will just be the screen width
-                // because it will only have 1 child fragment.
-                child.measure(MeasureSpec.makeMeasureSpec(screenWidth, MeasureSpec.EXACTLY),
-                        MeasureSpec.makeMeasureSpec(screenHeight, MeasureSpec.EXACTLY));
-            }
-        }
-
-        setMeasuredDimension(
-                resolveSize(screenWidth, widthMeasureSpec),
-                resolveSize(screenHeight, heightMeasureSpec));
-    }
-
-    /**
-     * Set the current page. This dims out the non-selected page but doesn't do any scrolling of
-     * the carousel.
-     */
-    public void setCurrentPage(int pageIndex) {
-        mCurrentPage = pageIndex;
-
-        updateTouchInterceptors();
-    }
-
-    /**
-     * Set the view containers for the detail and updates fragment.
-     */
-    public void setFragmentViews(FrameLayoutWithOverlay about, FrameLayoutWithOverlay updates) {
-        mAboutFragment = about;
-        mUpdatesFragment = updates;
-
-        mAboutFragment.setOverlayOnClickListener(mAboutFragTouchInterceptListener);
-        mUpdatesFragment.setOverlayOnClickListener(mUpdatesFragTouchInterceptListener);
-    }
-
-    /**
-     * Enable swiping if the detail and update fragments should be showing. Otherwise disable
-     * swiping if only the detail fragment should be showing.
-     */
-    public void enableSwipe(boolean enable) {
-        if (mEnableSwipe != enable) {
-            mEnableSwipe = enable;
-            if (mUpdatesFragment != null) {
-                mUpdatesFragment.setVisibility(enable ? View.VISIBLE : View.GONE);
-                snapToEdge();
-                updateTouchInterceptors();
-            }
-        }
-    }
-
-    /**
-     * Reset the fragment carousel to show the about page.
-     */
-    public void reset() {
-        if (mCurrentPage != ABOUT_PAGE) {
-            mCurrentPage = ABOUT_PAGE;
-            snapToEdgeSmooth();
-        }
-    }
-
-    public int getCurrentPage() {
-        return mCurrentPage;
-    }
-
-    private final OnClickListener mAboutFragTouchInterceptListener = new OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            mCurrentPage = ABOUT_PAGE;
-            snapToEdgeSmooth();
-        }
-    };
-
-    private final OnClickListener mUpdatesFragTouchInterceptListener = new OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            mCurrentPage = UPDATES_PAGE;
-            snapToEdgeSmooth();
-        }
-    };
-
-    private void updateTouchInterceptors() {
-        // Disable the touch-interceptor on the selected page, and enable it on the other.
-        if (mAboutFragment != null) {
-            mAboutFragment.setOverlayClickable(mCurrentPage != ABOUT_PAGE);
-        }
-        if (mUpdatesFragment != null) {
-            mUpdatesFragment.setOverlayClickable(mCurrentPage != UPDATES_PAGE);
-        }
-    }
-
-    @Override
-    protected void onScrollChanged(int l, int t, int oldl, int oldt) {
-        super.onScrollChanged(l, t, oldl, oldt);
-        if (!mEnableSwipe) {
-            return;
-        }
-        mLastScrollPosition = l;
-    }
-
-    /**
-     * Used to set initial scroll offset.  Not smooth.
-     */
-    private void snapToEdge() {
-        setScrollX(calculateHorizontalOffset());
-        updateTouchInterceptors();
-    }
-
-    /**
-     * Smooth version of snapToEdge().
-     */
-    private void snapToEdgeSmooth() {
-        smoothScrollTo(calculateHorizontalOffset(), 0);
-        updateTouchInterceptors();
-    }
-
-    private int calculateHorizontalOffset() {
-        int offset;
-        if (getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
-            offset = (mCurrentPage == ABOUT_PAGE) ? mAllowedHorizontalScrollLength : 0;
-        } else {
-            offset = (mCurrentPage == ABOUT_PAGE) ? 0 : mAllowedHorizontalScrollLength;
-        }
-        return offset;
-    }
-
-    /**
-     * Returns the desired page we should scroll to based on the current X scroll position and the
-     * current page.
-     */
-    private int getDesiredPage() {
-        switch (mCurrentPage) {
-            case ABOUT_PAGE:
-                if (getLayoutDirection() == View.LAYOUT_DIRECTION_LTR) {
-                    // If the user is on the "about" page, and the scroll position exceeds the lower
-                    // threshold, then we should switch to the "updates" page.
-                    return (mLastScrollPosition > mLowerThreshold) ? UPDATES_PAGE : ABOUT_PAGE;
-                } else {
-                    return (mLastScrollPosition < mUpperThreshold) ? UPDATES_PAGE : ABOUT_PAGE;
-                }
-            case UPDATES_PAGE:
-                if (getLayoutDirection() == View.LAYOUT_DIRECTION_LTR) {
-                    // If the user is on the "updates" page, and the scroll position goes below the
-                    // upper threshold, then we should switch to the "about" page.
-                    return (mLastScrollPosition < mUpperThreshold) ? ABOUT_PAGE : UPDATES_PAGE;
-                } else {
-                    return (mLastScrollPosition > mLowerThreshold) ? ABOUT_PAGE : UPDATES_PAGE;
-                }
-        }
-        throw new IllegalStateException("Invalid current page " + mCurrentPage);
-    }
-
-    @Override
-    public boolean onTouch(View v, MotionEvent event) {
-        if (!mEnableSwipe) {
-            return false;
-        }
-        if (event.getAction() == MotionEvent.ACTION_UP) {
-            mCurrentPage = getDesiredPage();
-            snapToEdgeSmooth();
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Starts an "appear" animation by moving in the "Updates" from the right.
-     */
-    public void animateAppear() {
-        final int x = Math.round((1.0f - FRAGMENT_WIDTH_SCREEN_WIDTH_FRACTION) * getWidth());
-        mUpdatesFragment.setTranslationX(x);
-        final ViewPropertyAnimator animator = mUpdatesFragment.animate();
-        animator.translationX(0.0f);
-    }
-}
diff --git a/src/com/android/contacts/detail/ContactDetailLayoutController.java b/src/com/android/contacts/detail/ContactDetailLayoutController.java
deleted file mode 100644
index 1ee31a5..0000000
--- a/src/com/android/contacts/detail/ContactDetailLayoutController.java
+++ /dev/null
@@ -1,742 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.detail;
-
-import android.animation.Animator;
-import android.animation.Animator.AnimatorListener;
-import android.animation.ObjectAnimator;
-import android.app.Activity;
-import android.app.FragmentManager;
-import android.app.FragmentTransaction;
-import android.content.Context;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.v4.view.ViewPager;
-import android.support.v4.view.ViewPager.OnPageChangeListener;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewPropertyAnimator;
-import android.view.animation.AnimationUtils;
-import android.widget.AbsListView;
-import android.widget.AbsListView.OnScrollListener;
-
-import com.android.contacts.NfcHandler;
-import com.android.contacts.R;
-import com.android.contacts.activities.ContactDetailActivity.FragmentKeyListener;
-import com.android.contacts.common.model.Contact;
-import com.android.contacts.util.PhoneCapabilityTester;
-import com.android.contacts.common.util.UriUtils;
-import com.android.contacts.widget.FrameLayoutWithOverlay;
-import com.android.contacts.widget.TransitionAnimationView;
-
-/**
- * Determines the layout of the contact card.
- */
-public class ContactDetailLayoutController {
-
-    private static final String KEY_CONTACT_URI = "contactUri";
-    private static final String KEY_CONTACT_HAS_UPDATES = "contactHasUpdates";
-    private static final String KEY_CURRENT_PAGE_INDEX = "currentPageIndex";
-
-    private static final int TAB_INDEX_DETAIL = 0;
-    private static final int TAB_INDEX_UPDATES = 1;
-
-    private final int SINGLE_PANE_FADE_IN_DURATION = 275;
-
-    /**
-     * There are 4 possible layouts for the contact detail screen: TWO_COLUMN,
-     * VIEW_PAGER_AND_TAB_CAROUSEL, FRAGMENT_CAROUSEL, and TWO_COLUMN_FRAGMENT_CAROUSEL.
-     */
-    private interface LayoutMode {
-        /**
-         * Tall and wide screen with details and updates shown side-by-side.
-         */
-        static final int TWO_COLUMN = 0;
-        /**
-         * Tall and narrow screen to allow swipe between the details and updates.
-         */
-        static final int VIEW_PAGER_AND_TAB_CAROUSEL = 1;
-        /**
-         * Short and wide screen to allow part of the other page to show.
-         */
-        static final int FRAGMENT_CAROUSEL = 2;
-        /**
-         * Same as FRAGMENT_CAROUSEL (allowing part of the other page to show) except the details
-         * layout is similar to the details layout in TWO_COLUMN mode.
-         */
-        static final int TWO_COLUMN_FRAGMENT_CAROUSEL = 3;
-    }
-
-    private final Activity mActivity;
-    private final LayoutInflater mLayoutInflater;
-    private final FragmentManager mFragmentManager;
-
-    private final View mViewContainer;
-    private final TransitionAnimationView mTransitionAnimationView;
-    private ContactDetailFragment mDetailFragment;
-    private ContactDetailUpdatesFragment mUpdatesFragment;
-
-    private View mDetailFragmentView;
-    private View mUpdatesFragmentView;
-
-    private final ViewPager mViewPager;
-    private ContactDetailViewPagerAdapter mViewPagerAdapter;
-    private int mViewPagerState;
-
-    private final ContactDetailTabCarousel mTabCarousel;
-    private final ContactDetailFragmentCarousel mFragmentCarousel;
-
-    private final ContactDetailFragment.Listener mContactDetailFragmentListener;
-
-    private Contact mContactData;
-    private Uri mContactUri;
-
-    private boolean mTabCarouselIsAnimating;
-
-    private boolean mContactHasUpdates;
-
-    private int mLayoutMode;
-
-    public ContactDetailLayoutController(Activity activity, Bundle savedState,
-            FragmentManager fragmentManager, TransitionAnimationView animationView,
-            View viewContainer, ContactDetailFragment.Listener contactDetailFragmentListener) {
-
-        if (fragmentManager == null) {
-            throw new IllegalStateException("Cannot initialize a ContactDetailLayoutController "
-                    + "without a non-null FragmentManager");
-        }
-
-        mActivity = activity;
-        mLayoutInflater = (LayoutInflater) activity.getSystemService(
-                Context.LAYOUT_INFLATER_SERVICE);
-        mFragmentManager = fragmentManager;
-        mContactDetailFragmentListener = contactDetailFragmentListener;
-
-        mTransitionAnimationView = animationView;
-
-        // Retrieve views in case this is view pager and carousel mode
-        mViewContainer = viewContainer;
-
-        mViewPager = (ViewPager) viewContainer.findViewById(R.id.pager);
-        mTabCarousel = (ContactDetailTabCarousel) viewContainer.findViewById(R.id.tab_carousel);
-
-        // Retrieve view in case this is in fragment carousel mode
-        mFragmentCarousel = (ContactDetailFragmentCarousel) viewContainer.findViewById(
-                R.id.fragment_carousel);
-
-        // Retrieve container views in case they are already in the XML layout
-        mDetailFragmentView = viewContainer.findViewById(R.id.about_fragment_container);
-        mUpdatesFragmentView = viewContainer.findViewById(R.id.updates_fragment_container);
-
-        // Determine the layout mode based on the presence of certain views in the layout XML.
-        if (mViewPager != null) {
-            mLayoutMode = LayoutMode.VIEW_PAGER_AND_TAB_CAROUSEL;
-        } else if (mFragmentCarousel != null) {
-            if (PhoneCapabilityTester.isUsingTwoPanes(mActivity)) {
-                mLayoutMode = LayoutMode.TWO_COLUMN_FRAGMENT_CAROUSEL;
-            } else {
-                mLayoutMode = LayoutMode.FRAGMENT_CAROUSEL;
-            }
-        } else {
-            mLayoutMode = LayoutMode.TWO_COLUMN;
-        }
-
-        initialize(savedState);
-    }
-
-    private void initialize(Bundle savedState) {
-        boolean fragmentsAddedToFragmentManager = true;
-        mDetailFragment = (ContactDetailFragment) mFragmentManager.findFragmentByTag(
-                ContactDetailViewPagerAdapter.ABOUT_FRAGMENT_TAG);
-        mUpdatesFragment = (ContactDetailUpdatesFragment) mFragmentManager.findFragmentByTag(
-                ContactDetailViewPagerAdapter.UPDATES_FRAGMENT_TAG);
-
-        // If the detail fragment was found in the {@link FragmentManager} then we don't need to add
-        // it again. Otherwise, create the fragments dynamically and remember to add them to the
-        // {@link FragmentManager}.
-        if (mDetailFragment == null) {
-            mDetailFragment = new ContactDetailFragment();
-            mUpdatesFragment = new ContactDetailUpdatesFragment();
-            fragmentsAddedToFragmentManager = false;
-        }
-
-        mDetailFragment.setListener(mContactDetailFragmentListener);
-        NfcHandler.register(mActivity, mDetailFragment);
-
-        // Read from savedState if possible
-        int currentPageIndex = 0;
-        if (savedState != null) {
-            mContactUri = savedState.getParcelable(KEY_CONTACT_URI);
-            mContactHasUpdates = savedState.getBoolean(KEY_CONTACT_HAS_UPDATES);
-            currentPageIndex = savedState.getInt(KEY_CURRENT_PAGE_INDEX, 0);
-        }
-
-        switch (mLayoutMode) {
-            case LayoutMode.VIEW_PAGER_AND_TAB_CAROUSEL: {
-                // Inflate 2 view containers to pass in as children to the {@link ViewPager},
-                // which will in turn be the parents to the mDetailFragment and mUpdatesFragment
-                // since the fragments must have the same parent view IDs in both landscape and
-                // portrait layouts.
-                mDetailFragmentView = mLayoutInflater.inflate(
-                        R.layout.contact_detail_about_fragment_container, mViewPager, false);
-                mUpdatesFragmentView = mLayoutInflater.inflate(
-                        R.layout.contact_detail_updates_fragment_container, mViewPager, false);
-
-                mViewPagerAdapter = new ContactDetailViewPagerAdapter();
-                mViewPagerAdapter.setAboutFragmentView(mDetailFragmentView);
-                mViewPagerAdapter.setUpdatesFragmentView(mUpdatesFragmentView);
-
-                mViewPager.addView(mDetailFragmentView);
-                mViewPager.addView(mUpdatesFragmentView);
-                mViewPager.setAdapter(mViewPagerAdapter);
-                mViewPager.setOnPageChangeListener(mOnPageChangeListener);
-
-                if (!fragmentsAddedToFragmentManager) {
-                    FragmentTransaction transaction = mFragmentManager.beginTransaction();
-                    transaction.add(R.id.about_fragment_container, mDetailFragment,
-                            ContactDetailViewPagerAdapter.ABOUT_FRAGMENT_TAG);
-                    transaction.add(R.id.updates_fragment_container, mUpdatesFragment,
-                            ContactDetailViewPagerAdapter.UPDATES_FRAGMENT_TAG);
-                    transaction.commitAllowingStateLoss();
-                    mFragmentManager.executePendingTransactions();
-                }
-
-                mTabCarousel.setListener(mTabCarouselListener);
-                mTabCarousel.restoreCurrentTab(currentPageIndex);
-                mDetailFragment.setVerticalScrollListener(
-                        new VerticalScrollListener(TAB_INDEX_DETAIL));
-                mUpdatesFragment.setVerticalScrollListener(
-                        new VerticalScrollListener(TAB_INDEX_UPDATES));
-                mViewPager.setCurrentItem(currentPageIndex);
-                break;
-            }
-            case LayoutMode.TWO_COLUMN: {
-                if (!fragmentsAddedToFragmentManager) {
-                    FragmentTransaction transaction = mFragmentManager.beginTransaction();
-                    transaction.add(R.id.about_fragment_container, mDetailFragment,
-                            ContactDetailViewPagerAdapter.ABOUT_FRAGMENT_TAG);
-                    transaction.add(R.id.updates_fragment_container, mUpdatesFragment,
-                            ContactDetailViewPagerAdapter.UPDATES_FRAGMENT_TAG);
-                    transaction.commitAllowingStateLoss();
-                    mFragmentManager.executePendingTransactions();
-                }
-                break;
-            }
-            case LayoutMode.FRAGMENT_CAROUSEL:
-            case LayoutMode.TWO_COLUMN_FRAGMENT_CAROUSEL: {
-                // Add the fragments to the fragment containers in the carousel using a
-                // {@link FragmentTransaction} if they haven't already been added to the
-                // {@link FragmentManager}.
-                if (!fragmentsAddedToFragmentManager) {
-                    FragmentTransaction transaction = mFragmentManager.beginTransaction();
-                    transaction.add(R.id.about_fragment_container, mDetailFragment,
-                            ContactDetailViewPagerAdapter.ABOUT_FRAGMENT_TAG);
-                    transaction.add(R.id.updates_fragment_container, mUpdatesFragment,
-                            ContactDetailViewPagerAdapter.UPDATES_FRAGMENT_TAG);
-                    transaction.commitAllowingStateLoss();
-                    mFragmentManager.executePendingTransactions();
-                }
-
-                mFragmentCarousel.setFragmentViews(
-                        (FrameLayoutWithOverlay) mDetailFragmentView,
-                        (FrameLayoutWithOverlay) mUpdatesFragmentView);
-                mFragmentCarousel.setCurrentPage(currentPageIndex);
-
-                break;
-            }
-        }
-
-        // Setup the layout if we already have a saved state
-        if (savedState != null) {
-            if (mContactHasUpdates) {
-                showContactWithUpdates(false);
-            } else {
-                showContactWithoutUpdates();
-            }
-        }
-    }
-
-    public void setContactData(Contact data) {
-        final boolean contactWasLoaded;
-        final boolean contactHadUpdates;
-        final boolean isDifferentContact;
-        if (mContactData == null) {
-            contactHadUpdates = false;
-            contactWasLoaded = false;
-            isDifferentContact = true;
-        } else {
-            contactHadUpdates = mContactHasUpdates;
-            contactWasLoaded = true;
-            isDifferentContact =
-                    !UriUtils.areEqual(mContactData.getLookupUri(), data.getLookupUri());
-        }
-        mContactData = data;
-
-        if (PhoneCapabilityTester.isUsingTwoPanes(mActivity)) {
-            // Tablet: If we already showed data before, we want to cross-fade from screen to screen
-            if (contactWasLoaded && mTransitionAnimationView != null && isDifferentContact) {
-                mTransitionAnimationView.startMaskTransition(mContactData == null, -1);
-            }
-        } else {
-            // Small screen: We are on our own screen. Fade the data in, but only the first time
-            if (!contactWasLoaded) {
-                mViewContainer.setAlpha(0.0f);
-                final ViewPropertyAnimator animator = mViewContainer.animate();
-                animator.alpha(1.0f);
-                animator.setDuration(SINGLE_PANE_FADE_IN_DURATION);
-            }
-        }
-
-        showContactWithoutUpdates();
-    }
-
-    public void showEmptyState() {
-        switch (mLayoutMode) {
-            case LayoutMode.FRAGMENT_CAROUSEL: {
-                mFragmentCarousel.setCurrentPage(0);
-                mFragmentCarousel.enableSwipe(false);
-                mDetailFragment.showEmptyState();
-                break;
-            }
-            case LayoutMode.TWO_COLUMN: {
-                mDetailFragment.setShowStaticPhoto(false);
-                mUpdatesFragmentView.setVisibility(View.GONE);
-                mDetailFragment.showEmptyState();
-                break;
-            }
-            case LayoutMode.TWO_COLUMN_FRAGMENT_CAROUSEL: {
-                mFragmentCarousel.setCurrentPage(0);
-                mFragmentCarousel.enableSwipe(false);
-                mDetailFragment.setShowStaticPhoto(false);
-                mUpdatesFragmentView.setVisibility(View.GONE);
-                mDetailFragment.showEmptyState();
-                break;
-            }
-            case LayoutMode.VIEW_PAGER_AND_TAB_CAROUSEL: {
-                mDetailFragment.setShowStaticPhoto(false);
-                mDetailFragment.showEmptyState();
-                mTabCarousel.loadData(null);
-                mTabCarousel.setVisibility(View.GONE);
-                mViewPagerAdapter.enableSwipe(false);
-                mViewPager.setCurrentItem(0);
-                break;
-            }
-            default:
-                throw new IllegalStateException("Invalid LayoutMode " + mLayoutMode);
-        }
-    }
-
-    /**
-     * Setup the layout for the contact with updates.
-     * TODO: Clean up this method so it's easier to understand.
-     */
-    private void showContactWithUpdates(boolean animateStateChange) {
-        if (mContactData == null) {
-            return;
-        }
-
-        Uri previousContactUri = mContactUri;
-        mContactUri = mContactData.getLookupUri();
-        boolean isDifferentContact = !UriUtils.areEqual(previousContactUri, mContactUri);
-
-        switch (mLayoutMode) {
-            case LayoutMode.TWO_COLUMN: {
-                if (!isDifferentContact && animateStateChange) {
-                    // This is screen is very hard to animate properly, because there is such a hard
-                    // cut from the regular version. A proper animation would have to reflow text
-                    // and move things around. Doing a simple cross-fade instead.
-                    mTransitionAnimationView.startMaskTransition(false, -1);
-                }
-
-                // Set the contact data (hide the static photo because the photo will already be in
-                // the header that scrolls with contact details).
-                mDetailFragment.setShowStaticPhoto(false);
-                // Show the updates fragment
-                mUpdatesFragmentView.setVisibility(View.VISIBLE);
-                break;
-            }
-            case LayoutMode.VIEW_PAGER_AND_TAB_CAROUSEL: {
-                // Update and show the tab carousel (also restore its last saved position)
-                mTabCarousel.loadData(mContactData);
-                mTabCarousel.restoreYCoordinate();
-                mTabCarousel.setVisibility(View.VISIBLE);
-                // Update ViewPager to allow swipe between all the fragments (to see updates)
-                mViewPagerAdapter.enableSwipe(true);
-                // If this is a different contact than before, then reset some views.
-                if (isDifferentContact) {
-                    resetViewPager();
-                    resetTabCarousel();
-                }
-                if (!isDifferentContact && animateStateChange) {
-                    mTabCarousel.animateAppear(mViewContainer.getWidth(),
-                            mDetailFragment.getFirstListItemOffset());
-                }
-                break;
-            }
-            case LayoutMode.FRAGMENT_CAROUSEL: {
-                // Allow swiping between all fragments
-                mFragmentCarousel.enableSwipe(true);
-                if (!isDifferentContact && animateStateChange) {
-                    mFragmentCarousel.animateAppear();
-                }
-                break;
-            }
-            case LayoutMode.TWO_COLUMN_FRAGMENT_CAROUSEL: {
-                // Allow swiping between all fragments
-                mFragmentCarousel.enableSwipe(true);
-                if (isDifferentContact) {
-                    mFragmentCarousel.reset();
-                }
-                if (!isDifferentContact && animateStateChange) {
-                    mFragmentCarousel.animateAppear();
-                }
-                mDetailFragment.setShowStaticPhoto(false);
-                break;
-            }
-            default:
-                throw new IllegalStateException("Invalid LayoutMode " + mLayoutMode);
-        }
-
-        if (isDifferentContact) {
-            resetFragments();
-        }
-
-        mDetailFragment.setData(mContactUri, mContactData);
-        mUpdatesFragment.setData(mContactUri, mContactData);
-    }
-
-    /**
-     * Setup the layout for the contact without updates.
-     * TODO: Clean up this method so it's easier to understand.
-     */
-    private void showContactWithoutUpdates() {
-        if (mContactData == null) {
-            return;
-        }
-
-        Uri previousContactUri = mContactUri;
-        mContactUri = mContactData.getLookupUri();
-        boolean isDifferentContact = !UriUtils.areEqual(previousContactUri, mContactUri);
-
-        switch (mLayoutMode) {
-            case LayoutMode.TWO_COLUMN:
-                // Show the static photo which is next to the list of scrolling contact details
-                mDetailFragment.setShowStaticPhoto(true);
-                // Hide the updates fragment
-                mUpdatesFragmentView.setVisibility(View.GONE);
-                break;
-            case LayoutMode.VIEW_PAGER_AND_TAB_CAROUSEL:
-                // Hide the tab carousel
-                mTabCarousel.setVisibility(View.GONE);
-                // Update ViewPager to disable swipe so that it only shows the detail fragment
-                // and switch to the detail fragment
-                mViewPagerAdapter.enableSwipe(false);
-                mViewPager.setCurrentItem(0, false /* smooth transition */);
-                break;
-            case LayoutMode.FRAGMENT_CAROUSEL:
-                // Disable swipe so only the detail fragment shows
-                mFragmentCarousel.setCurrentPage(0);
-                mFragmentCarousel.enableSwipe(false);
-                break;
-            case LayoutMode.TWO_COLUMN_FRAGMENT_CAROUSEL:
-                mFragmentCarousel.setCurrentPage(0);
-                mFragmentCarousel.enableSwipe(false);
-                mDetailFragment.setShowStaticPhoto(true);
-                break;
-            default:
-                throw new IllegalStateException("Invalid LayoutMode " + mLayoutMode);
-        }
-
-        if (isDifferentContact) {
-            resetFragments();
-        }
-
-        mDetailFragment.setData(mContactUri, mContactData);
-    }
-
-    private void resetTabCarousel() {
-        mTabCarousel.reset();
-    }
-
-    private void resetViewPager() {
-        mViewPager.setCurrentItem(0, false /* smooth transition */);
-    }
-
-    private void resetFragments() {
-        mDetailFragment.resetAdapter();
-        mUpdatesFragment.resetAdapter();
-    }
-
-    public FragmentKeyListener getCurrentPage() {
-        switch (getCurrentPageIndex()) {
-            case 0:
-                return mDetailFragment;
-            case 1:
-                return mUpdatesFragment;
-            default:
-                throw new IllegalStateException("Invalid current item for ViewPager");
-        }
-    }
-
-    private int getCurrentPageIndex() {
-        // If the contact has social updates, then retrieve the current page based on the
-        // {@link ViewPager} or fragment carousel.
-        if (mContactHasUpdates) {
-            if (mViewPager != null) {
-                return mViewPager.getCurrentItem();
-            } else if (mFragmentCarousel != null) {
-                return mFragmentCarousel.getCurrentPage();
-            }
-        }
-        // Otherwise return the default page (detail fragment).
-        return 0;
-    }
-
-    public void onSaveInstanceState(Bundle outState) {
-        outState.putParcelable(KEY_CONTACT_URI, mContactUri);
-        outState.putBoolean(KEY_CONTACT_HAS_UPDATES, mContactHasUpdates);
-        outState.putInt(KEY_CURRENT_PAGE_INDEX, getCurrentPageIndex());
-    }
-
-    private final OnPageChangeListener mOnPageChangeListener = new OnPageChangeListener() {
-
-        private ObjectAnimator mTabCarouselAnimator;
-
-        @Override
-        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-            // The user is horizontally dragging the {@link ViewPager}, so send
-            // these scroll changes to the tab carousel. Ignore these events though if the carousel
-            // is actually controlling the {@link ViewPager} scrolls because it will already be
-            // in the correct position.
-            if (mViewPager.isFakeDragging()) return;
-
-            int x = (int) ((position + positionOffset) *
-                    mTabCarousel.getAllowedHorizontalScrollLength());
-            mTabCarousel.scrollTo(x, 0);
-        }
-
-        @Override
-        public void onPageSelected(int position) {
-            // Since the {@link ViewPager} has committed to a new page now (but may not have
-            // finished scrolling yet), update the tab selection in the carousel.
-            mTabCarousel.setCurrentTab(position);
-        }
-
-        @Override
-        public void onPageScrollStateChanged(int state) {
-            if (mViewPagerState == ViewPager.SCROLL_STATE_IDLE) {
-
-                // If we are leaving the IDLE state, we are starting a swipe.
-                // First cancel any pending animations on the tab carousel.
-                cancelTabCarouselAnimator();
-
-                // Sync the two lists because the list on the other page will start to show as
-                // we swipe over more.
-                syncScrollStateBetweenLists(mViewPager.getCurrentItem());
-
-            } else if (state == ViewPager.SCROLL_STATE_IDLE) {
-
-                // Otherwise if the {@link ViewPager} is idle now, a page has been selected and
-                // scrolled into place. Perform an animation of the tab carousel is needed.
-                int currentPageIndex = mViewPager.getCurrentItem();
-                int tabCarouselOffset = (int) mTabCarousel.getY();
-                boolean shouldAnimateTabCarousel;
-
-                // Find the offset position of the first item in the list of the current page.
-                int listOffset = getOffsetOfFirstItemInList(currentPageIndex);
-
-                // If the list was able to successfully offset by the tab carousel amount, then
-                // log this as the new Y coordinate for that page, and no animation is needed.
-                if (listOffset == tabCarouselOffset) {
-                    mTabCarousel.storeYCoordinate(currentPageIndex, tabCarouselOffset);
-                    shouldAnimateTabCarousel = false;
-                } else if (listOffset == Integer.MIN_VALUE) {
-                    // If the offset of the first item in the list is unknown (i.e. the item
-                    // is no longer visible on screen) then just animate the tab carousel to the
-                    // previously logged position.
-                    shouldAnimateTabCarousel = true;
-                } else if (Math.abs(listOffset) < Math.abs(tabCarouselOffset)) {
-                    // If the list could not offset the full amount of the tab carousel offset (i.e.
-                    // the list can only be scrolled a tiny amount), then animate the carousel down
-                    // to compensate.
-                    mTabCarousel.storeYCoordinate(currentPageIndex, listOffset);
-                    shouldAnimateTabCarousel = true;
-                } else {
-                    // By default, animate back to the Y coordinate of the tab carousel the last
-                    // time the other page was selected.
-                    shouldAnimateTabCarousel = true;
-                }
-
-                if (shouldAnimateTabCarousel) {
-                    float desiredOffset = mTabCarousel.getStoredYCoordinateForTab(currentPageIndex);
-                    if (desiredOffset != tabCarouselOffset) {
-                        createTabCarouselAnimator(desiredOffset);
-                        mTabCarouselAnimator.start();
-                    }
-                }
-            }
-            mViewPagerState = state;
-        }
-
-        private void createTabCarouselAnimator(float desiredValue) {
-            mTabCarouselAnimator = ObjectAnimator.ofFloat(
-                    mTabCarousel, "y", desiredValue).setDuration(75);
-            mTabCarouselAnimator.setInterpolator(AnimationUtils.loadInterpolator(
-                    mActivity, android.R.anim.accelerate_decelerate_interpolator));
-            mTabCarouselAnimator.addListener(mTabCarouselAnimatorListener);
-        }
-
-        private void cancelTabCarouselAnimator() {
-            if (mTabCarouselAnimator != null) {
-                mTabCarouselAnimator.cancel();
-                mTabCarouselAnimator = null;
-                mTabCarouselIsAnimating = false;
-            }
-        }
-    };
-
-    private void syncScrollStateBetweenLists(int currentPageIndex) {
-        // Since the user interacted with the currently visible page, we need to sync the
-        // list on the other page (i.e. if the updates page is the current page, modify the
-        // list in the details page).
-        if (currentPageIndex == TAB_INDEX_UPDATES) {
-            mDetailFragment.requestToMoveToOffset((int) mTabCarousel.getY());
-        } else {
-            mUpdatesFragment.requestToMoveToOffset((int) mTabCarousel.getY());
-        }
-    }
-
-    private int getOffsetOfFirstItemInList(int currentPageIndex) {
-        if (currentPageIndex == TAB_INDEX_DETAIL) {
-            return mDetailFragment.getFirstListItemOffset();
-        } else {
-            return mUpdatesFragment.getFirstListItemOffset();
-        }
-    }
-
-    /**
-     * This listener keeps track of whether the tab carousel animation is currently going on or not,
-     * in order to prevent other simultaneous changes to the Y position of the tab carousel which
-     * can cause flicker.
-     */
-    private final AnimatorListener mTabCarouselAnimatorListener = new AnimatorListener() {
-
-        @Override
-        public void onAnimationCancel(Animator animation) {
-            mTabCarouselIsAnimating = false;
-        }
-
-        @Override
-        public void onAnimationEnd(Animator animation) {
-            mTabCarouselIsAnimating = false;
-        }
-
-        @Override
-        public void onAnimationRepeat(Animator animation) {
-            mTabCarouselIsAnimating = true;
-        }
-
-        @Override
-        public void onAnimationStart(Animator animation) {
-            mTabCarouselIsAnimating = true;
-        }
-    };
-
-    private final ContactDetailTabCarousel.Listener mTabCarouselListener
-            = new ContactDetailTabCarousel.Listener() {
-
-        @Override
-        public void onTouchDown() {
-            // The user just started scrolling the carousel, so begin
-            // "fake dragging" the {@link ViewPager} if it's not already
-            // doing so.
-            if (!mViewPager.isFakeDragging()) mViewPager.beginFakeDrag();
-        }
-
-        @Override
-        public void onTouchUp() {
-            // The user just stopped scrolling the carousel, so stop
-            // "fake dragging" the {@link ViewPager} if it was doing so
-            // before.
-            if (mViewPager.isFakeDragging()) mViewPager.endFakeDrag();
-        }
-
-        @Override
-        public void onScrollChanged(int l, int t, int oldl, int oldt) {
-            // The user is scrolling the carousel, so send the scroll
-            // deltas to the {@link ViewPager} so it can move in sync.
-            if (mViewPager.isFakeDragging()) {
-                mViewPager.fakeDragBy(oldl - l);
-            }
-        }
-
-        @Override
-        public void onTabSelected(int position) {
-            // The user selected a tab, so update the {@link ViewPager}
-            mViewPager.setCurrentItem(position);
-        }
-    };
-
-    private final class VerticalScrollListener implements OnScrollListener {
-
-        private final int mPageIndex;
-
-        public VerticalScrollListener(int pageIndex) {
-            mPageIndex = pageIndex;
-        }
-
-        @Override
-        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
-                int totalItemCount) {
-            int currentPageIndex = mViewPager.getCurrentItem();
-            // Don't move the carousel if: 1) the contact does not have social updates because then
-            // tab carousel must not be visible, 2) if the view pager is still being scrolled,
-            // 3) if the current page being viewed is not this one, or 4) if the tab carousel
-            // is already being animated vertically.
-            if (!mContactHasUpdates || mViewPagerState != ViewPager.SCROLL_STATE_IDLE ||
-                    mPageIndex != currentPageIndex || mTabCarouselIsAnimating) {
-                return;
-            }
-            // If the FIRST item is not visible on the screen, then the carousel must be pinned
-            // at the top of the screen.
-            if (firstVisibleItem != 0) {
-                mTabCarousel.moveToYCoordinate(mPageIndex,
-                        -mTabCarousel.getAllowedVerticalScrollLength());
-                return;
-            }
-            View topView = view.getChildAt(firstVisibleItem);
-            if (topView == null) {
-                return;
-            }
-            int amtToScroll = Math.max((int) view.getChildAt(firstVisibleItem).getY(),
-                    -mTabCarousel.getAllowedVerticalScrollLength());
-            mTabCarousel.moveToYCoordinate(mPageIndex, amtToScroll);
-        }
-
-        @Override
-        public void onScrollStateChanged(AbsListView view, int scrollState) {
-            // Once the list has become IDLE, check if we need to sync the scroll position of
-            // the other list now. This will make swiping faster by doing the re-layout now
-            // (instead of at the start of a swipe). However, there will still be another check
-            // when we start swiping if the scroll positions are correct (to catch the edge case
-            // where the user flings and immediately starts a swipe so we never get the idle state).
-            if (scrollState == SCROLL_STATE_IDLE) {
-                syncScrollStateBetweenLists(mPageIndex);
-            }
-        }
-    }
-}
diff --git a/src/com/android/contacts/detail/ContactDetailTabCarousel.java b/src/com/android/contacts/detail/ContactDetailTabCarousel.java
deleted file mode 100644
index 25bcac6..0000000
--- a/src/com/android/contacts/detail/ContactDetailTabCarousel.java
+++ /dev/null
@@ -1,516 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.detail;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.util.TypedValue;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.View.OnTouchListener;
-import android.view.ViewPropertyAnimator;
-import android.widget.HorizontalScrollView;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import com.android.contacts.R;
-import com.android.contacts.common.model.Contact;
-import com.android.contacts.util.MoreMath;
-import com.android.contacts.util.SchedulingUtils;
-
-/**
- * This is a horizontally scrolling carousel with 2 tabs: one to see info about the contact and
- * one to see updates from the contact.
- */
-public class ContactDetailTabCarousel extends HorizontalScrollView implements OnTouchListener {
-
-    private static final String TAG = ContactDetailTabCarousel.class.getSimpleName();
-
-    private static final int TRANSITION_TIME = 200;
-    private static final int TRANSITION_MOVE_IN_TIME = 150;
-
-    private static final int TAB_INDEX_ABOUT = 0;
-    private static final int TAB_INDEX_UPDATES = 1;
-    private static final int TAB_COUNT = 2;
-
-    /** Tab width as defined as a fraction of the screen width */
-    private float mTabWidthScreenWidthFraction;
-
-    /** Tab height as defined as a fraction of the screen width */
-    private float mTabHeightScreenWidthFraction;
-
-    /** Height in pixels of the shadow under the tab carousel */
-    private int mTabShadowHeight;
-
-    private ImageView mPhotoView;
-    private View mPhotoViewOverlay;
-    private TextView mStatusView;
-    private ImageView mStatusPhotoView;
-    private final ContactDetailPhotoSetter mPhotoSetter = new ContactDetailPhotoSetter();
-
-    private Listener mListener;
-
-    private int mCurrentTab = TAB_INDEX_ABOUT;
-
-    private View mTabAndShadowContainer;
-    private View mShadow;
-    private CarouselTab mAboutTab;
-    private View mTabDivider;
-    private CarouselTab mUpdatesTab;
-
-    /** Last Y coordinate of the carousel when the tab at the given index was selected */
-    private final float[] mYCoordinateArray = new float[TAB_COUNT];
-
-    private int mTabDisplayLabelHeight;
-
-    private boolean mScrollToCurrentTab = false;
-    private int mLastScrollPosition = Integer.MIN_VALUE;
-    private int mAllowedHorizontalScrollLength = Integer.MIN_VALUE;
-    private int mAllowedVerticalScrollLength = Integer.MIN_VALUE;
-
-    /** Factor to scale scroll-amount sent to listeners. */
-    private float mScrollScaleFactor = 1.0f;
-
-    private static final float MAX_ALPHA = 0.5f;
-
-    /**
-     * Interface for callbacks invoked when the user interacts with the carousel.
-     */
-    public interface Listener {
-        public void onTouchDown();
-        public void onTouchUp();
-
-        public void onScrollChanged(int l, int t, int oldl, int oldt);
-        public void onTabSelected(int position);
-    }
-
-    public ContactDetailTabCarousel(Context context, AttributeSet attrs) {
-        super(context, attrs);
-
-        setOnTouchListener(this);
-
-        Resources resources = mContext.getResources();
-        mTabDisplayLabelHeight = resources.getDimensionPixelSize(
-                R.dimen.detail_tab_carousel_tab_label_height);
-        mTabShadowHeight = resources.getDimensionPixelSize(
-                R.dimen.detail_contact_photo_shadow_height);
-        mTabWidthScreenWidthFraction = resources.getFraction(
-                R.fraction.tab_width_screen_width_percentage, 1, 1);
-        mTabHeightScreenWidthFraction = resources.getFraction(
-                R.fraction.tab_height_screen_width_percentage, 1, 1);
-    }
-
-    @Override
-    protected void onFinishInflate() {
-        super.onFinishInflate();
-        mTabAndShadowContainer = findViewById(R.id.tab_and_shadow_container);
-        mAboutTab = (CarouselTab) findViewById(R.id.tab_about);
-        mAboutTab.setLabel(mContext.getString(R.string.contactDetailAbout));
-        mAboutTab.setOverlayOnClickListener(mAboutTabTouchInterceptListener);
-
-        mTabDivider = findViewById(R.id.tab_divider);
-
-        mUpdatesTab = (CarouselTab) findViewById(R.id.tab_update);
-        mUpdatesTab.setLabel(mContext.getString(R.string.contactDetailUpdates));
-        mUpdatesTab.setOverlayOnClickListener(mUpdatesTabTouchInterceptListener);
-
-        mShadow = findViewById(R.id.shadow);
-
-        // Retrieve the photo view for the "about" tab
-        // TODO: This should be moved down to mAboutTab, so that it hosts its own controls
-        mPhotoView = (ImageView) mAboutTab.findViewById(R.id.photo);
-        mPhotoViewOverlay = mAboutTab.findViewById(R.id.photo_overlay);
-
-        // Retrieve the social update views for the "updates" tab
-        // TODO: This should be moved down to mUpdatesTab, so that it hosts its own controls
-        mStatusView = (TextView) mUpdatesTab.findViewById(R.id.status);
-        mStatusPhotoView = (ImageView) mUpdatesTab.findViewById(R.id.status_photo);
-
-        // Workaround for framework issue... it shouldn't be necessary to have a
-        // clickable object in the hierarchy, but if not the horizontal scroll
-        // behavior doesn't work. Note: the "About" tab doesn't need this
-        // because we set a real click-handler elsewhere.
-        mStatusView.setClickable(true);
-        mStatusPhotoView.setClickable(true);
-    }
-
-    @Override
-    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        int screenWidth = MeasureSpec.getSize(widthMeasureSpec);
-        // Compute the width of a tab as a fraction of the screen width
-        int tabWidth = Math.round(mTabWidthScreenWidthFraction * screenWidth);
-
-        // Find the allowed scrolling length by subtracting the current visible screen width
-        // from the total length of the tabs.
-        mAllowedHorizontalScrollLength = tabWidth * TAB_COUNT - screenWidth;
-
-        // Scrolling by mAllowedHorizontalScrollLength causes listeners to
-        // scroll by the entire screen amount; compute the scale-factor
-        // necessary to make this so.
-        if (mAllowedHorizontalScrollLength == 0) {
-            // Guard against divide-by-zero.
-            // Note: this hard-coded value prevents a crash, but won't result in the
-            // desired scrolling behavior.  We rely on the framework calling onMeasure()
-            // again with a non-zero screen width.
-            mScrollScaleFactor = 1.0f;
-            Log.w(TAG, "set scale-factor to 1.0 to avoid divide-by-zero");
-        } else {
-            mScrollScaleFactor = screenWidth / mAllowedHorizontalScrollLength;
-        }
-
-        int tabHeight = Math.round(screenWidth * mTabHeightScreenWidthFraction) + mTabShadowHeight;
-        // Set the child {@link LinearLayout} to be TAB_COUNT * the computed tab width so that the
-        // {@link LinearLayout}'s children (which are the tabs) will evenly split that width.
-        if (getChildCount() > 0) {
-            View child = getChildAt(0);
-
-            // add 1 dip of separation between the tabs
-            final int seperatorPixels =
-                    (int)(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1,
-                    getResources().getDisplayMetrics()) + 0.5f);
-
-            child.measure(
-                    MeasureSpec.makeMeasureSpec(
-                            TAB_COUNT * tabWidth +
-                            (TAB_COUNT - 1) * seperatorPixels, MeasureSpec.EXACTLY),
-                    MeasureSpec.makeMeasureSpec(tabHeight, MeasureSpec.EXACTLY));
-        }
-
-        mAllowedVerticalScrollLength = tabHeight - mTabDisplayLabelHeight - mTabShadowHeight;
-        setMeasuredDimension(
-                resolveSize(screenWidth, widthMeasureSpec),
-                resolveSize(tabHeight, heightMeasureSpec));
-    }
-
-    @Override
-    protected void onLayout(boolean changed, int l, int t, int r, int b) {
-        super.onLayout(changed, l, t, r, b);
-
-        // Defer this stuff until after the layout has finished.  This is because
-        // updateAlphaLayers() ultimately results in another layout request, and
-        // the framework currently can't handle this safely.
-        if (!mScrollToCurrentTab) return;
-        mScrollToCurrentTab = false;
-        SchedulingUtils.doAfterLayout(this, new Runnable() {
-            @Override
-            public void run() {
-                scrollTo(mCurrentTab == TAB_INDEX_ABOUT ? 0 : mAllowedHorizontalScrollLength, 0);
-                updateAlphaLayers();
-            }
-        });
-    }
-
-    /** When clicked, selects the corresponding tab. */
-    private class TabClickListener implements OnClickListener {
-        private final int mTab;
-
-        public TabClickListener(int tab) {
-            super();
-            mTab = tab;
-        }
-
-        @Override
-        public void onClick(View v) {
-            mListener.onTabSelected(mTab);
-        }
-    }
-
-    private final TabClickListener mAboutTabTouchInterceptListener =
-            new TabClickListener(TAB_INDEX_ABOUT);
-
-    private final TabClickListener mUpdatesTabTouchInterceptListener =
-            new TabClickListener(TAB_INDEX_UPDATES);
-
-    /**
-     * Does in "appear" animation to allow a seamless transition from
-     * the "No updates" mode.
-     * @param width Width of the container. As we haven't been layed out yet, we can't know
-     * @param scrollOffset The offset by how far we scrolled, where 0=not scrolled, -x=scrolled by
-     * x pixels, Integer.MIN_VALUE=scrolled so far that the image is not visible in "no updates"
-     * mode of this screen
-     */
-    public void animateAppear(int width, int scrollOffset) {
-        final float photoHeight = mTabHeightScreenWidthFraction * width;
-        final boolean animateZoomAndFade;
-        int pixelsToScrollVertically = 0;
-
-        // Depending on how far we are scrolled down, there is one of three animations:
-        //   - Zoom and fade the picture (if it is still visible)
-        //   - Scroll, zoom and fade (if the picture is mostly invisible and we now have a
-        //     bigger visible region due to the pinning)
-        //   - Just scroll if the picture is completely invisible. This time, no zoom is needed
-        if (scrollOffset == Integer.MIN_VALUE) {
-            // animate in completely by scrolling. no need for zooming here
-            pixelsToScrollVertically = mTabDisplayLabelHeight;
-            animateZoomAndFade = false;
-        } else {
-            final int pixelsOfPhotoLeft = Math.round(photoHeight) + scrollOffset;
-            if (pixelsOfPhotoLeft > mTabDisplayLabelHeight) {
-                // nothing to scroll
-                pixelsToScrollVertically = 0;
-            } else {
-                pixelsToScrollVertically = mTabDisplayLabelHeight - pixelsOfPhotoLeft;
-            }
-            animateZoomAndFade = true;
-        }
-
-        if (pixelsToScrollVertically != 0) {
-            // We can't animate ourselves here, because our own translation is needed for the user's
-            // scrolling. Instead, we use our only child. As we are transparent, that is just as
-            // good
-            mTabAndShadowContainer.setTranslationY(-pixelsToScrollVertically);
-            final ViewPropertyAnimator animator = mTabAndShadowContainer.animate();
-            animator.translationY(0.0f);
-            animator.setDuration(TRANSITION_MOVE_IN_TIME);
-        }
-
-        if (animateZoomAndFade) {
-            // Hack: We have two types of possible layouts:
-            //   If the picture is square, it is square in both "with updates" and "without updates"
-            //     --> no need for scale animation here
-            //     example: 10inch tablet portrait
-            //   If the picture is non-square, it is full-width in "without updates" and something
-            //     arbitrary in "with updates"
-            //     --> do animation with container
-            //     example: 4.6inch phone portrait
-            final boolean squarePicture =
-                    mTabWidthScreenWidthFraction == mTabHeightScreenWidthFraction;
-            final int firstTransitionTime;
-            if (squarePicture) {
-                firstTransitionTime = 0;
-            } else {
-                // For x, we need to scale our container so we'll animate the whole tab
-                // (unfortunately, we need to have the text invisible during this transition as it
-                // would also be stretched)
-                float revScale = 1.0f/mTabWidthScreenWidthFraction;
-                mAboutTab.setScaleX(revScale);
-                mAboutTab.setPivotX(0.0f);
-                final ViewPropertyAnimator aboutAnimator = mAboutTab.animate();
-                aboutAnimator.setDuration(TRANSITION_TIME);
-                aboutAnimator.scaleX(1.0f);
-
-                // For y, we need to scale only the picture itself because we want it to be cropped
-                mPhotoView.setScaleY(revScale);
-                mPhotoView.setPivotY(photoHeight * 0.5f);
-                final ViewPropertyAnimator photoAnimator = mPhotoView.animate();
-                photoAnimator.setDuration(TRANSITION_TIME);
-                photoAnimator.scaleY(1.0f);
-                firstTransitionTime = TRANSITION_TIME;
-            }
-
-            // Animate in the labels after the above transition is finished
-            mAboutTab.fadeInLabelViewAnimator(firstTransitionTime, true);
-            mUpdatesTab.fadeInLabelViewAnimator(firstTransitionTime, false);
-
-            final float pixelsToTranslate = (1.0f - mTabWidthScreenWidthFraction) * width;
-            // Views to translate
-            for (View view : new View[] { mUpdatesTab, mTabDivider }) {
-                view.setTranslationX(pixelsToTranslate);
-                final ViewPropertyAnimator translateAnimator = view.animate();
-                translateAnimator.translationX(0.0f);
-                translateAnimator.setDuration(TRANSITION_TIME);
-            }
-
-            // Another hack: If the picture is square, there is no shadow in "Without updates"
-            //    --> fade it in after the translations are done
-            if (squarePicture) {
-                mShadow.setAlpha(0.0f);
-                mShadow.animate().setStartDelay(TRANSITION_TIME).alpha(1.0f);
-            }
-        }
-    }
-
-    private void updateAlphaLayers() {
-        float alpha = mLastScrollPosition * MAX_ALPHA / mAllowedHorizontalScrollLength;
-        alpha = MoreMath.clamp(alpha, 0.0f, 1.0f);
-        mAboutTab.setAlphaLayerValue(alpha);
-        mUpdatesTab.setAlphaLayerValue(MAX_ALPHA - alpha);
-    }
-
-    @Override
-    protected void onScrollChanged(int x, int y, int oldX, int oldY) {
-        super.onScrollChanged(x, y, oldX, oldY);
-
-        // Guard against framework issue where onScrollChanged() is called twice
-        // for each touch-move event.  This wreaked havoc on the tab-carousel: the
-        // view-pager moved twice as fast as it should because we called fakeDragBy()
-        // twice with the same value.
-        if (mLastScrollPosition == x) return;
-
-        // Since we never completely scroll the about/updates tabs off-screen,
-        // the draggable range is less than the width of the carousel. Our
-        // listeners don't care about this... if we scroll 75% percent of our
-        // draggable range, they want to scroll 75% of the entire carousel
-        // width, not the same number of pixels that we scrolled.
-        int scaledL = (int) (x * mScrollScaleFactor);
-        int oldScaledL = (int) (oldX * mScrollScaleFactor);
-        mListener.onScrollChanged(scaledL, y, oldScaledL, oldY);
-
-        mLastScrollPosition = x;
-        updateAlphaLayers();
-    }
-
-    /**
-     * Reset the carousel to the start position (i.e. because new data will be loaded in for a
-     * different contact).
-     */
-    public void reset() {
-        scrollTo(0, 0);
-        setCurrentTab(0);
-        moveToYCoordinate(0, 0);
-    }
-
-    /**
-     * Set the current tab that should be restored when the view is first laid out.
-     */
-    public void restoreCurrentTab(int position) {
-        setCurrentTab(position);
-        // It is only possible to scroll the view after onMeasure() has been called (where the
-        // allowed horizontal scroll length is determined). Hence, set a flag that will be read
-        // in onLayout() after the children and this view have finished being laid out.
-        mScrollToCurrentTab = true;
-    }
-
-    /**
-     * Restore the Y position of this view to the last manually requested value. This can be done
-     * after the parent has been re-laid out again, where this view's position could have been
-     * lost if the view laid outside its parent's bounds.
-     */
-    public void restoreYCoordinate() {
-        setY(getStoredYCoordinateForTab(mCurrentTab));
-    }
-
-    /**
-     * Request that the view move to the given Y coordinate. Also store the Y coordinate as the
-     * last requested Y coordinate for the given tabIndex.
-     */
-    public void moveToYCoordinate(int tabIndex, float y) {
-        setY(y);
-        storeYCoordinate(tabIndex, y);
-    }
-
-    /**
-     * Store this information as the last requested Y coordinate for the given tabIndex.
-     */
-    public void storeYCoordinate(int tabIndex, float y) {
-        mYCoordinateArray[tabIndex] = y;
-    }
-
-    /**
-     * Returns the stored Y coordinate of this view the last time the user was on the selected
-     * tab given by tabIndex.
-     */
-    public float getStoredYCoordinateForTab(int tabIndex) {
-        return mYCoordinateArray[tabIndex];
-    }
-
-    /**
-     * Returns the number of pixels that this view can be scrolled horizontally.
-     */
-    public int getAllowedHorizontalScrollLength() {
-        return mAllowedHorizontalScrollLength;
-    }
-
-    /**
-     * Returns the number of pixels that this view can be scrolled vertically while still allowing
-     * the tab labels to still show.
-     */
-    public int getAllowedVerticalScrollLength() {
-        return mAllowedVerticalScrollLength;
-    }
-
-    /**
-     * Updates the tab selection.
-     */
-    public void setCurrentTab(int position) {
-        final CarouselTab selected, deselected;
-
-        switch (position) {
-            case TAB_INDEX_ABOUT:
-                selected = mAboutTab;
-                deselected = mUpdatesTab;
-                break;
-            case TAB_INDEX_UPDATES:
-                selected = mUpdatesTab;
-                deselected = mAboutTab;
-                break;
-            default:
-                throw new IllegalStateException("Invalid tab position " + position);
-        }
-        selected.showSelectedState();
-        selected.setOverlayClickable(false);
-        deselected.showDeselectedState();
-        deselected.setOverlayClickable(true);
-        mCurrentTab = position;
-    }
-
-    /**
-     * Loads the data from the Loader-Result. This is the only function that has to be called
-     * from the outside to fully setup the View
-     */
-    public void loadData(Contact contactData) {
-        if (contactData == null) return;
-
-        // TODO: Move this into the {@link CarouselTab} class when the updates
-        // fragment code is more finalized.
-        final boolean expandOnClick = contactData.getPhotoUri() != null;
-        final OnClickListener listener = mPhotoSetter.setupContactPhotoForClick(
-                mContext, contactData, mPhotoView, expandOnClick);
-
-        if (expandOnClick || contactData.isWritableContact(mContext)) {
-            mPhotoViewOverlay.setOnClickListener(listener);
-        } else {
-            // Work around framework issue... if we instead use
-            // setClickable(false), then we can't swipe horizontally.
-            mPhotoViewOverlay.setOnClickListener(null);
-        }
-
-        ContactDetailDisplayUtils.setSocialSnippet(
-                mContext, contactData, mStatusView, mStatusPhotoView);
-    }
-
-    /**
-     * Set the given {@link Listener} to handle carousel events.
-     */
-    public void setListener(Listener listener) {
-        mListener = listener;
-    }
-
-    @Override
-    public boolean onTouch(View v, MotionEvent event) {
-        switch (event.getAction()) {
-            case MotionEvent.ACTION_DOWN:
-                mListener.onTouchDown();
-                return true;
-            case MotionEvent.ACTION_UP:
-                mListener.onTouchUp();
-                return true;
-        }
-        return super.onTouchEvent(event);
-    }
-
-    @Override
-    public boolean onInterceptTouchEvent(MotionEvent ev) {
-        boolean interceptTouch = super.onInterceptTouchEvent(ev);
-        if (interceptTouch) {
-            mListener.onTouchDown();
-        }
-        return interceptTouch;
-    }
-}
diff --git a/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java b/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
deleted file mode 100644
index 71186fe..0000000
--- a/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.contacts.detail;
-
-import android.app.ListFragment;
-import android.content.ContentUris;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.ContactsContract.StreamItems;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AbsListView.OnScrollListener;
-import android.widget.ListView;
-
-import com.android.contacts.R;
-import com.android.contacts.activities.ContactDetailActivity.FragmentKeyListener;
-import com.android.contacts.detail.ContactDetailDisplayUtils.StreamPhotoTag;
-import com.android.contacts.util.StreamItemEntry;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.Contact;
-import com.android.contacts.common.model.account.AccountType;
-
-public class ContactDetailUpdatesFragment extends ListFragment implements FragmentKeyListener {
-
-    private static final String TAG = "ContactDetailUpdatesFragment";
-
-    private Contact mContactData;
-    private Uri mLookupUri;
-
-    private LayoutInflater mInflater;
-    private StreamItemAdapter mStreamItemAdapter;
-
-    private OnScrollListener mVerticalScrollListener;
-
-    /**
-     * Listener on clicks on a stream item.
-     * <p>
-     * It assumes the view has a tag of type {@link StreamItemEntry} associated with it.
-     */
-    private final View.OnClickListener mStreamItemClickListener = new View.OnClickListener() {
-        @Override
-        public void onClick(View view) {
-            StreamItemEntry streamItemEntry = (StreamItemEntry) view.getTag();
-            if (streamItemEntry == null) {
-                // Ignore if this item does not have a stream item associated with it.
-                return;
-            }
-            final AccountType accountType = getAccountTypeForStreamItemEntry(streamItemEntry);
-
-            final Uri uri = ContentUris.withAppendedId(StreamItems.CONTENT_URI,
-                    streamItemEntry.getId());
-            final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
-            intent.setClassName(accountType.syncAdapterPackageName,
-                    accountType.getViewStreamItemActivity());
-            startActivity(intent);
-        }
-    };
-
-    private final View.OnClickListener mStreamItemPhotoItemClickListener
-            = new View.OnClickListener() {
-        @Override
-        public void onClick(View view) {
-            StreamPhotoTag tag = (StreamPhotoTag) view.getTag();
-            if (tag == null) {
-                return;
-            }
-            final AccountType accountType = getAccountTypeForStreamItemEntry(tag.streamItem);
-
-            final Intent intent = new Intent(Intent.ACTION_VIEW, tag.getStreamItemPhotoUri());
-            intent.setClassName(accountType.syncAdapterPackageName,
-                    accountType.getViewStreamItemPhotoActivity());
-            startActivity(intent);
-        }
-    };
-
-    private AccountType getAccountTypeForStreamItemEntry(StreamItemEntry streamItemEntry) {
-        return AccountTypeManager.getInstance(getActivity()).getAccountType(
-                streamItemEntry.getAccountType(), streamItemEntry.getDataSet());
-    }
-
-    public ContactDetailUpdatesFragment() {
-        // Explicit constructor for inflation
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
-        mInflater = inflater;
-        return mInflater.inflate(R.layout.contact_detail_updates_fragment, container, false);
-    }
-
-    @Override
-    public void onViewCreated(View view, Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
-        mStreamItemAdapter = new StreamItemAdapter(getActivity(), mStreamItemClickListener,
-                mStreamItemPhotoItemClickListener);
-        setListAdapter(mStreamItemAdapter);
-        getListView().setOnScrollListener(mVerticalScrollListener);
-    }
-
-    public void setData(Uri lookupUri, Contact result) {
-        if (result == null) {
-            return;
-        }
-        mLookupUri = lookupUri;
-        mContactData = result;
-    }
-
-    /**
-     * Reset the list adapter in this {@link Fragment} to get rid of any saved scroll position
-     * from a previous contact.
-     */
-    public void resetAdapter() {
-        setListAdapter(mStreamItemAdapter);
-    }
-
-    @Override
-    public boolean handleKeyDown(int keyCode) {
-        return false;
-    }
-
-    public void setVerticalScrollListener(OnScrollListener listener) {
-        mVerticalScrollListener = listener;
-    }
-
-    /**
-     * 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 int getFirstListItemOffset() {
-        return ContactDetailDisplayUtils.getFirstListItemOffset(getListView());
-    }
-
-    /**
-     * Tries to scroll the first item to the given offset (this can be a no-op if the list is
-     * already in the correct position).
-     * @param offset which should be <= 0
-     */
-    public void requestToMoveToOffset(int offset) {
-        ContactDetailDisplayUtils.requestToMoveToOffset(getListView(), offset);
-    }
-}
diff --git a/src/com/android/contacts/detail/ContactDetailViewPagerAdapter.java b/src/com/android/contacts/detail/ContactDetailViewPagerAdapter.java
deleted file mode 100644
index 4213490..0000000
--- a/src/com/android/contacts/detail/ContactDetailViewPagerAdapter.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.contacts.detail;
-
-import android.os.Parcelable;
-import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.view.View;
-import android.view.ViewGroup;
-
-/**
- * Adapter for the {@link ViewPager} for the contact detail page for a contact in 2 cases:
- * 1) without social updates, and 2) with social updates. The default initial case is for
- * the contact with social updates which uses all possible pages.
- */
-public class ContactDetailViewPagerAdapter extends PagerAdapter {
-
-    public static final String ABOUT_FRAGMENT_TAG = "view-pager-about-fragment";
-    public static final String UPDATES_FRAGMENT_TAG = "view-pager-updates-fragment";
-
-    private static final int INDEX_ABOUT_FRAGMENT = 0;
-    private static final int INDEX_UPDATES_FRAGMENT = 1;
-
-    private static final int MAX_FRAGMENT_VIEW_COUNT = 2;
-
-    /**
-     * The initial value for the view count needs to be MAX_FRAGMENT_VIEW_COUNT,
-     * otherwise anything smaller would break screen rotation functionality for a user viewing
-     * a contact with social updates (i.e. the user was viewing the second page, rotates the
-     * device, the view pager requires the second page to exist immediately on launch).
-     */
-    private int mFragmentViewCount = MAX_FRAGMENT_VIEW_COUNT;
-
-    private View mAboutFragmentView;
-    private View mUpdatesFragmentView;
-
-    public ContactDetailViewPagerAdapter() {
-    }
-
-    public void setAboutFragmentView(View view) {
-        mAboutFragmentView = view;
-    }
-
-    public void setUpdatesFragmentView(View view) {
-        mUpdatesFragmentView = view;
-    }
-
-    /**
-     * Enable swiping if the detail and update fragments should be showing. Otherwise diable
-     * swiping if only the detail fragment should be showing.
-     */
-    public void enableSwipe(boolean enable) {
-        mFragmentViewCount = enable ? MAX_FRAGMENT_VIEW_COUNT : 1;
-        notifyDataSetChanged();
-    }
-
-    @Override
-    public int getCount() {
-        return mFragmentViewCount;
-    }
-
-    /** Gets called when the number of items changes. */
-    @Override
-    public int getItemPosition(Object object) {
-        // Always return a valid index for the about fragment view because it's always shown
-        // whether the contact has social updates or not.
-        if (object == mAboutFragmentView) {
-            return INDEX_ABOUT_FRAGMENT;
-        }
-        // Only return a valid index for the updates fragment view if our view count > 1.
-        if (object == mUpdatesFragmentView && mFragmentViewCount > 1) {
-            return INDEX_UPDATES_FRAGMENT;
-        }
-        // Otherwise the view should have no position.
-        return POSITION_NONE;
-    }
-
-    @Override
-    public void startUpdate(ViewGroup container) {
-    }
-
-    @Override
-    public Object instantiateItem(ViewGroup container, int position) {
-        switch (position) {
-            case INDEX_ABOUT_FRAGMENT:
-                mAboutFragmentView.setVisibility(View.VISIBLE);
-                return mAboutFragmentView;
-            case INDEX_UPDATES_FRAGMENT:
-                mUpdatesFragmentView.setVisibility(View.VISIBLE);
-                return mUpdatesFragmentView;
-        }
-        throw new IllegalArgumentException("Invalid position: " + position);
-    }
-
-    @Override
-    public void destroyItem(ViewGroup container, int position, Object object) {
-        ((View) object).setVisibility(View.GONE);
-    }
-
-    @Override
-    public void finishUpdate(ViewGroup container) {
-    }
-
-    @Override
-    public boolean isViewFromObject(View view, Object object) {
-        return ((View) object) == view;
-    }
-
-    @Override
-    public Parcelable saveState() {
-        return null;
-    }
-
-    @Override
-    public void restoreState(Parcelable state, ClassLoader loader) {
-    }
-}
diff --git a/src/com/android/contacts/detail/ContactDetailDisplayUtils.java b/src/com/android/contacts/detail/ContactDisplayUtils.java
similarity index 65%
rename from src/com/android/contacts/detail/ContactDetailDisplayUtils.java
rename to src/com/android/contacts/detail/ContactDisplayUtils.java
index 5adc57a..1180219 100644
--- a/src/com/android/contacts/detail/ContactDetailDisplayUtils.java
+++ b/src/com/android/contacts/detail/ContactDisplayUtils.java
@@ -16,7 +16,16 @@
 
 package com.android.contacts.detail;
 
-import android.content.ContentUris;
+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;
@@ -24,37 +33,16 @@
 import android.content.res.Resources.NotFoundException;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
-import android.provider.ContactsContract;
 import android.provider.ContactsContract.DisplayNameSources;
-import android.provider.ContactsContract.Preferences;
-import android.provider.ContactsContract.StreamItems;
 import android.text.Html;
-import android.text.Html.ImageGetter;
 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.ImageView;
 import android.widget.ListView;
 import android.widget.TextView;
 
-import com.android.contacts.common.ContactPhotoManager;
-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.StreamItemEntry;
-import com.android.contacts.util.ContactBadgeUtil;
-import com.android.contacts.util.HtmlUtils;
-import com.android.contacts.util.MoreMath;
-import com.android.contacts.util.StreamItemPhotoEntry;
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.Iterables;
-
 import java.util.List;
 
 /**
@@ -62,33 +50,8 @@
  * (meaning name, phonetic name, job, and attribution) from a
  * {@link Contact} data object to appropriate {@link View}s.
  */
-public class ContactDetailDisplayUtils {
-    private static final String TAG = "ContactDetailDisplayUtils";
-
-    /**
-     * Tag object used for stream item photos.
-     */
-    public static class StreamPhotoTag {
-        public final StreamItemEntry streamItem;
-        public final StreamItemPhotoEntry streamItemPhoto;
-
-        public StreamPhotoTag(StreamItemEntry streamItem, StreamItemPhotoEntry streamItemPhoto) {
-            this.streamItem = streamItem;
-            this.streamItemPhoto = streamItemPhoto;
-        }
-
-        public Uri getStreamItemPhotoUri() {
-            final Uri.Builder builder = StreamItems.CONTENT_URI.buildUpon();
-            ContentUris.appendId(builder, streamItem.getId());
-            builder.appendPath(StreamItems.StreamItemPhotos.CONTENT_DIRECTORY);
-            ContentUris.appendId(builder, streamItemPhoto.getId());
-            return builder.build();
-        }
-    }
-
-    private ContactDetailDisplayUtils() {
-        // Disallow explicit creation of this class.
-    }
+public class ContactDisplayUtils {
+    private static final String TAG = "ContactDisplayUtils";
 
     /**
      * Returns the display name of the contact, using the current display order setting.
@@ -97,7 +60,7 @@
     public static CharSequence getDisplayName(Context context, Contact contactData) {
         ContactsPreferences prefs = new ContactsPreferences(context);
         final CharSequence displayName = contactData.getDisplayName();
-        if (prefs.getDisplayOrder() == Preferences.DISPLAY_ORDER_PRIMARY) {
+        if (prefs.getDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
             if (!TextUtils.isEmpty(displayName)) {
                 return displayName;
             }
@@ -212,8 +175,8 @@
         if (!isDirectoryEntry && !isUserProfile) {
             starredMenuItem.setVisible(true);
             final int resId = isStarred
-                    ? R.drawable.btn_star_on_normal_holo_light
-                    : R.drawable.btn_star_off_normal_holo_light;
+                    ? 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);
@@ -223,146 +186,6 @@
     }
 
     /**
-     * Set the social snippet text. If there isn't one, then set the view to gone.
-     */
-    public static void setSocialSnippet(Context context, Contact contactData, TextView statusView,
-            ImageView statusPhotoView) {
-        if (statusView == null) {
-            return;
-        }
-
-        CharSequence snippet = null;
-        String photoUri = null;
-        setDataOrHideIfNone(snippet, statusView);
-        if (photoUri != null) {
-            ContactPhotoManager.getInstance(context).loadPhoto(
-                    statusPhotoView, Uri.parse(photoUri), -1, false, null);
-            statusPhotoView.setVisibility(View.VISIBLE);
-        } else {
-            statusPhotoView.setVisibility(View.GONE);
-        }
-    }
-
-    /** Creates the view that represents a stream item. */
-    public static View createStreamItemView(LayoutInflater inflater, Context context,
-            View convertView, StreamItemEntry streamItem, View.OnClickListener photoClickListener) {
-
-        // Try to recycle existing views.
-        final View container;
-        if (convertView != null) {
-            container = convertView;
-        } else {
-            container = inflater.inflate(R.layout.stream_item_container, null, false);
-        }
-
-        final ContactPhotoManager contactPhotoManager = ContactPhotoManager.getInstance(context);
-        final List<StreamItemPhotoEntry> photos = streamItem.getPhotos();
-        final int photoCount = photos.size();
-
-        // Add the text part.
-        addStreamItemText(context, streamItem, container);
-
-        // Add images.
-        final ViewGroup imageRows = (ViewGroup) container.findViewById(R.id.stream_item_image_rows);
-
-        if (photoCount == 0) {
-            // This stream item only has text.
-            imageRows.setVisibility(View.GONE);
-        } else {
-            // This stream item has text and photos.
-            imageRows.setVisibility(View.VISIBLE);
-
-            // Number of image rows needed, which is cailing(photoCount / 2)
-            final int numImageRows = (photoCount + 1) / 2;
-
-            // Actual image rows.
-            final int numOldImageRows = imageRows.getChildCount();
-
-            // Make sure we have enough stream_item_row_images.
-            if (numOldImageRows == numImageRows) {
-                // Great, we have the just enough number of rows...
-
-            } else if (numOldImageRows < numImageRows) {
-                // Need to add more image rows.
-                for (int i = numOldImageRows; i < numImageRows; i++) {
-                    View imageRow = inflater.inflate(R.layout.stream_item_row_images, imageRows,
-                            true);
-                }
-            } else {
-                // We have exceeding image rows.  Hide them.
-                for (int i = numImageRows; i < numOldImageRows; i++) {
-                    imageRows.getChildAt(i).setVisibility(View.GONE);
-                }
-            }
-
-            // Put images, two by two.
-            for (int i = 0; i < photoCount; i += 2) {
-                final View imageRow = imageRows.getChildAt(i / 2);
-                // Reused image rows may not visible, so make sure they're shown.
-                imageRow.setVisibility(View.VISIBLE);
-
-                // Show first image.
-                loadPhoto(contactPhotoManager, streamItem, photos.get(i), imageRow,
-                        R.id.stream_item_first_image, photoClickListener);
-                final View secondContainer = imageRow.findViewById(R.id.second_image_container);
-                if (i + 1 < photoCount) {
-                    // Show the second image too.
-                    loadPhoto(contactPhotoManager, streamItem, photos.get(i + 1), imageRow,
-                            R.id.stream_item_second_image, photoClickListener);
-                    secondContainer.setVisibility(View.VISIBLE);
-                } else {
-                    // Hide the second image, but it still has to occupy the space.
-                    secondContainer.setVisibility(View.INVISIBLE);
-                }
-            }
-        }
-
-        return container;
-    }
-
-    /** Loads a photo into an image view. The image view is identified by the given id. */
-    private static void loadPhoto(ContactPhotoManager contactPhotoManager,
-            final StreamItemEntry streamItem, final StreamItemPhotoEntry streamItemPhoto,
-            View photoContainer, int imageViewId, View.OnClickListener photoClickListener) {
-        final View frame = photoContainer.findViewById(imageViewId);
-        final View pushLayerView = frame.findViewById(R.id.push_layer);
-        final ImageView imageView = (ImageView) frame.findViewById(R.id.image);
-        if (photoClickListener != null) {
-            pushLayerView.setOnClickListener(photoClickListener);
-            pushLayerView.setTag(new StreamPhotoTag(streamItem, streamItemPhoto));
-            pushLayerView.setFocusable(true);
-            pushLayerView.setEnabled(true);
-        } else {
-            pushLayerView.setOnClickListener(null);
-            pushLayerView.setTag(null);
-            pushLayerView.setFocusable(false);
-            // setOnClickListener makes it clickable, so we need to overwrite it
-            pushLayerView.setClickable(false);
-            pushLayerView.setEnabled(false);
-        }
-        contactPhotoManager.loadPhoto(imageView, Uri.parse(streamItemPhoto.getPhotoUri()), -1,
-                false, null);
-    }
-
-    @VisibleForTesting
-    static View addStreamItemText(Context context, StreamItemEntry streamItem, View rootView) {
-        TextView htmlView = (TextView) rootView.findViewById(R.id.stream_item_html);
-        TextView attributionView = (TextView) rootView.findViewById(
-                R.id.stream_item_attribution);
-        TextView commentsView = (TextView) rootView.findViewById(R.id.stream_item_comments);
-        ImageGetter imageGetter = new DefaultImageGetter(context.getPackageManager());
-
-        // Stream item text
-        setDataOrHideIfNone(streamItem.getDecodedText(), htmlView);
-        // Attribution
-        setDataOrHideIfNone(ContactBadgeUtil.getSocialDate(streamItem, context),
-                attributionView);
-        // Comments
-        setDataOrHideIfNone(streamItem.getDecodedComments(), commentsView);
-        return rootView;
-    }
-
-    /**
      * Sets the display name of this contact to the given {@link TextView}. If
      * there is none, then set the view to gone.
      */
diff --git a/src/com/android/contacts/detail/ContactLoaderFragment.java b/src/com/android/contacts/detail/ContactLoaderFragment.java
deleted file mode 100644
index 0b420f7..0000000
--- a/src/com/android/contacts/detail/ContactLoaderFragment.java
+++ /dev/null
@@ -1,470 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.contacts.detail;
-
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.LoaderManager;
-import android.app.LoaderManager.LoaderCallbacks;
-import android.content.ActivityNotFoundException;
-import android.content.Context;
-import android.content.Intent;
-import android.content.Loader;
-import android.media.RingtoneManager;
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.Contacts;
-import android.util.Log;
-import android.view.KeyEvent;
-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.Toast;
-
-import com.android.contacts.ContactSaveService;
-import com.android.contacts.R;
-import com.android.contacts.activities.ContactDetailActivity.FragmentKeyListener;
-import com.android.contacts.common.list.ShortcutIntentBuilder;
-import com.android.contacts.common.list.ShortcutIntentBuilder.OnShortcutIntentCreatedListener;
-import com.android.contacts.common.model.Contact;
-import com.android.contacts.common.model.ContactLoader;
-import com.android.contacts.util.PhoneCapabilityTester;
-import com.google.common.base.Objects;
-
-/**
- * This is an invisible worker {@link Fragment} that loads the contact details for the contact card.
- * The data is then passed to the listener, who can then pass the data to other {@link View}s.
- */
-public class ContactLoaderFragment extends Fragment implements FragmentKeyListener {
-
-    private static final String TAG = ContactLoaderFragment.class.getSimpleName();
-
-    /** The launch code when picking a ringtone */
-    private static final int REQUEST_CODE_PICK_RINGTONE = 1;
-
-    /** 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";
-
-    private boolean mOptionsMenuOptions;
-    private boolean mOptionsMenuEditable;
-    private boolean mOptionsMenuShareable;
-    private boolean mOptionsMenuCanCreateShortcut;
-    private boolean mSendToVoicemailState;
-    private String mCustomRingtone;
-
-    /**
-     * This is a listener to the {@link ContactLoaderFragment} and will be notified when the
-     * contact details have finished loading or if the user selects any menu options.
-     */
-    public static interface ContactLoaderFragmentListener {
-        /**
-         * Contact was not found, so somehow close this fragment. This is raised after a contact
-         * is removed via Menu/Delete
-         */
-        public void onContactNotFound();
-
-        /**
-         * Contact details have finished loading.
-         */
-        public void onDetailsLoaded(Contact result);
-
-        /**
-         * User decided to go to Edit-Mode
-         */
-        public void onEditRequested(Uri lookupUri);
-
-        /**
-         * User decided to delete the contact
-         */
-        public void onDeleteRequested(Uri lookupUri);
-
-    }
-
-    private static final int LOADER_DETAILS = 1;
-
-    private static final String KEY_CONTACT_URI = "contactUri";
-    private static final String LOADER_ARG_CONTACT_URI = "contactUri";
-
-    private Context mContext;
-    private Uri mLookupUri;
-    private ContactLoaderFragmentListener mListener;
-
-    private Contact mContactData;
-
-    public ContactLoaderFragment() {
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        if (savedInstanceState != null) {
-            mLookupUri = savedInstanceState.getParcelable(KEY_CONTACT_URI);
-        }
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putParcelable(KEY_CONTACT_URI, mLookupUri);
-    }
-
-    @Override
-    public void onAttach(Activity activity) {
-        super.onAttach(activity);
-        mContext = activity;
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
-        setHasOptionsMenu(true);
-        // This is an invisible view.  This fragment is declared in a layout, so it can't be
-        // "viewless".  (i.e. can't return null here.)
-        // See also the comment in the layout file.
-        return inflater.inflate(R.layout.contact_detail_loader_fragment, container, false);
-    }
-
-    @Override
-    public void onActivityCreated(Bundle savedInstanceState) {
-        super.onActivityCreated(savedInstanceState);
-
-        if (mLookupUri != null) {
-            Bundle args = new Bundle();
-            args.putParcelable(LOADER_ARG_CONTACT_URI, mLookupUri);
-            getLoaderManager().initLoader(LOADER_DETAILS, args, mDetailLoaderListener);
-        }
-    }
-
-    public void loadUri(Uri lookupUri) {
-        if (Objects.equal(lookupUri, mLookupUri)) {
-            // Same URI, no need to load the data again
-            return;
-        }
-
-        mLookupUri = lookupUri;
-        if (mLookupUri == null) {
-            getLoaderManager().destroyLoader(LOADER_DETAILS);
-            mContactData = null;
-            if (mListener != null) {
-                mListener.onDetailsLoaded(mContactData);
-            }
-        } else if (getActivity() != null) {
-            Bundle args = new Bundle();
-            args.putParcelable(LOADER_ARG_CONTACT_URI, mLookupUri);
-            getLoaderManager().restartLoader(LOADER_DETAILS, args, mDetailLoaderListener);
-        }
-    }
-
-    public void setListener(ContactLoaderFragmentListener value) {
-        mListener = value;
-    }
-
-    /**
-     * The listener for the detail loader
-     */
-    private final LoaderManager.LoaderCallbacks<Contact> mDetailLoaderListener =
-            new LoaderCallbacks<Contact>() {
-        @Override
-        public Loader<Contact> onCreateLoader(int id, Bundle args) {
-            Uri lookupUri = args.getParcelable(LOADER_ARG_CONTACT_URI);
-            return new ContactLoader(mContext, lookupUri, true /* loadGroupMetaData */,
-                    true /* load invitable account types */, true /* postViewNotification */,
-                    true /* computeFormattedPhoneNumber */);
-        }
-
-        @Override
-        public void onLoadFinished(Loader<Contact> loader, Contact data) {
-            if (!mLookupUri.equals(data.getRequestedUri())) {
-                Log.e(TAG, "Different URI: requested=" + mLookupUri + "  actual=" + data);
-                return;
-            }
-
-            if (data.isError()) {
-                // This shouldn't ever happen, so throw an exception. The {@link ContactLoader}
-                // should log the actual exception.
-                throw new IllegalStateException("Failed to load contact", data.getException());
-            } else if (data.isNotFound()) {
-                Log.i(TAG, "No contact found: " + ((ContactLoader)loader).getLookupUri());
-                mContactData = null;
-            } else {
-                mContactData = data;
-            }
-
-            if (mListener != null) {
-                if (mContactData == null) {
-                    mListener.onContactNotFound();
-                } else {
-                    mListener.onDetailsLoaded(mContactData);
-                }
-            }
-            // Make sure the options menu is setup correctly with the loaded data.
-            if (getActivity() != null) getActivity().invalidateOptionsMenu();
-        }
-
-        @Override
-        public void onLoaderReset(Loader<Contact> loader) {}
-    };
-
-    @Override
-    public void onCreateOptionsMenu(Menu menu, final MenuInflater inflater) {
-        inflater.inflate(R.menu.view_contact, menu);
-    }
-
-    public boolean isOptionsMenuChanged() {
-        return mOptionsMenuOptions != isContactOptionsChangeEnabled()
-                || mOptionsMenuEditable != isContactEditable()
-                || mOptionsMenuShareable != isContactShareable()
-                || mOptionsMenuCanCreateShortcut != isContactCanCreateShortcut();
-    }
-
-    @Override
-    public void onPrepareOptionsMenu(Menu menu) {
-        mOptionsMenuOptions = isContactOptionsChangeEnabled();
-        mOptionsMenuEditable = isContactEditable();
-        mOptionsMenuShareable = isContactShareable();
-        mOptionsMenuCanCreateShortcut = isContactCanCreateShortcut();
-        if (mContactData != null) {
-            mSendToVoicemailState = mContactData.isSendToVoicemail();
-            mCustomRingtone = mContactData.getCustomRingtone();
-        }
-
-        // Hide telephony-related settings (ringtone, send to voicemail)
-        // if we don't have a telephone
-        final MenuItem optionsSendToVoicemail = menu.findItem(R.id.menu_send_to_voicemail);
-        if (optionsSendToVoicemail != null) {
-            optionsSendToVoicemail.setChecked(mSendToVoicemailState);
-            optionsSendToVoicemail.setVisible(mOptionsMenuOptions);
-        }
-        final MenuItem optionsRingtone = menu.findItem(R.id.menu_set_ringtone);
-        if (optionsRingtone != null) {
-            optionsRingtone.setVisible(mOptionsMenuOptions);
-        }
-
-        final MenuItem editMenu = menu.findItem(R.id.menu_edit);
-        if (editMenu != null) {
-            editMenu.setVisible(mOptionsMenuEditable);
-        }
-
-        final MenuItem deleteMenu = menu.findItem(R.id.menu_delete);
-        if (deleteMenu != null) {
-            deleteMenu.setVisible(mOptionsMenuEditable);
-        }
-
-        final MenuItem shareMenu = menu.findItem(R.id.menu_share);
-        if (shareMenu != null) {
-            shareMenu.setVisible(mOptionsMenuShareable);
-        }
-
-        final MenuItem createContactShortcutMenu = menu.findItem(R.id.menu_create_contact_shortcut);
-        if (createContactShortcutMenu != null) {
-            createContactShortcutMenu.setVisible(mOptionsMenuCanCreateShortcut);
-        }
-    }
-
-    public boolean isContactOptionsChangeEnabled() {
-        return mContactData != null && !mContactData.isDirectoryEntry()
-                && PhoneCapabilityTester.isPhone(mContext);
-    }
-
-    public boolean isContactEditable() {
-        return mContactData != null && !mContactData.isDirectoryEntry();
-    }
-
-    public boolean isContactShareable() {
-        return mContactData != null && !mContactData.isDirectoryEntry();
-    }
-
-    public boolean isContactCanCreateShortcut() {
-        return mContactData != null && !mContactData.isUserProfile()
-                && !mContactData.isDirectoryEntry();
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case R.id.menu_edit: {
-                if (mListener != null) mListener.onEditRequested(mLookupUri);
-                break;
-            }
-            case R.id.menu_delete: {
-                if (mListener != null) mListener.onDeleteRequested(mLookupUri);
-                return true;
-            }
-            case R.id.menu_set_ringtone: {
-                if (mContactData == null) return false;
-                doPickRingtone();
-                return true;
-            }
-            case R.id.menu_share: {
-                if (mContactData == null) return false;
-
-                final String lookupKey = mContactData.getLookupKey();
-                Uri shareUri = Uri.withAppendedPath(Contacts.CONTENT_VCARD_URI, lookupKey);
-                if (mContactData.isUserProfile()) {
-                    // User is sharing the profile.  We don't want to force the receiver to have
-                    // the highly-privileged READ_PROFILE permission, so we need to request a
-                    // pre-authorized URI from the provider.
-                    shareUri = getPreAuthorizedUri(shareUri);
-                }
-
-                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 = mContext.getText(R.string.share_via);
-                final Intent chooseIntent = Intent.createChooser(intent, chooseTitle);
-
-                try {
-                    mContext.startActivity(chooseIntent);
-                } catch (ActivityNotFoundException ex) {
-                    Toast.makeText(mContext, R.string.share_error, Toast.LENGTH_SHORT).show();
-                }
-                return true;
-            }
-            case R.id.menu_send_to_voicemail: {
-                // Update state and save
-                mSendToVoicemailState = !mSendToVoicemailState;
-                item.setChecked(mSendToVoicemailState);
-                Intent intent = ContactSaveService.createSetSendToVoicemail(
-                        mContext, mLookupUri, mSendToVoicemailState);
-                mContext.startService(intent);
-                return true;
-            }
-            case R.id.menu_create_contact_shortcut: {
-                // Create a launcher shortcut with this contact
-                createLauncherShortcutWithContact();
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Creates a launcher shortcut with the current contact.
-     */
-    private void createLauncherShortcutWithContact() {
-        // Hold the parent activity of this fragment in case this fragment is destroyed
-        // before the callback to onShortcutIntentCreated(...)
-        final Activity parentActivity = getActivity();
-
-        ShortcutIntentBuilder builder = new ShortcutIntentBuilder(parentActivity,
-                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);
-                parentActivity.sendBroadcast(shortcutIntent);
-
-                // Send a toast to give feedback to the user that a shortcut to this
-                // contact was added to the launcher.
-                Toast.makeText(parentActivity,
-                        R.string.createContactShortcutSuccessful,
-                        Toast.LENGTH_SHORT).show();
-            }
-
-        });
-        builder.createContactShortcutIntent(mLookupUri);
-    }
-
-    /**
-     * Calls into the contacts provider to get a pre-authorized version of the given URI.
-     */
-    private Uri getPreAuthorizedUri(Uri uri) {
-        Bundle uriBundle = new Bundle();
-        uriBundle.putParcelable(ContactsContract.Authorization.KEY_URI_TO_AUTHORIZE, uri);
-        Bundle authResponse = mContext.getContentResolver().call(
-                ContactsContract.AUTHORITY_URI,
-                ContactsContract.Authorization.AUTHORIZATION_METHOD,
-                null,
-                uriBundle);
-        if (authResponse != null) {
-            return (Uri) authResponse.getParcelable(
-                    ContactsContract.Authorization.KEY_AUTHORIZED_URI);
-        } else {
-            return uri;
-        }
-    }
-
-    @Override
-    public boolean handleKeyDown(int keyCode) {
-        switch (keyCode) {
-            case KeyEvent.KEYCODE_DEL: {
-                if (mListener != null) mListener.onDeleteRequested(mLookupUri);
-                return true;
-            }
-        }
-        return false;
-    }
-
-    private void doPickRingtone() {
-
-        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);
-
-        Uri ringtoneUri;
-        if (mCustomRingtone != null) {
-            ringtoneUri = Uri.parse(mCustomRingtone);
-        } else {
-            // Otherwise pick default ringtone Uri so that something is selected.
-            ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
-        }
-
-        // Put checkmark next to the current ringtone for this contact
-        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtoneUri);
-
-        // Launch!
-        startActivityForResult(intent, REQUEST_CODE_PICK_RINGTONE);
-    }
-
-    @Override
-    public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (resultCode != Activity.RESULT_OK) {
-            return;
-        }
-
-        switch (requestCode) {
-            case REQUEST_CODE_PICK_RINGTONE: {
-                Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
-                handleRingtonePicked(pickedUri);
-                break;
-            }
-        }
-    }
-
-    private void handleRingtonePicked(Uri pickedUri) {
-        if (pickedUri == null || RingtoneManager.isDefault(pickedUri)) {
-            mCustomRingtone = null;
-        } else {
-            mCustomRingtone = pickedUri.toString();
-        }
-        Intent intent = ContactSaveService.createSetRingtone(
-                mContext, mLookupUri, mCustomRingtone);
-        mContext.startService(intent);
-    }
-}
diff --git a/src/com/android/contacts/detail/StreamItemAdapter.java b/src/com/android/contacts/detail/StreamItemAdapter.java
deleted file mode 100644
index 6e1adc5..0000000
--- a/src/com/android/contacts/detail/StreamItemAdapter.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.contacts.detail;
-
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-
-import com.android.contacts.R;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.util.StreamItemEntry;
-
-import com.google.common.collect.Lists;
-
-import java.util.List;
-
-/**
- * List adapter for stream items of a given contact.
- */
-public class StreamItemAdapter extends BaseAdapter {
-    /** The header view, hidden under the tab carousel, if present. */
-    private static final int ITEM_VIEW_TYPE_HEADER = 0;
-    /** The updates in the list. */
-    private static final int ITEM_VIEW_TYPE_STREAM_ITEM = 1;
-
-    private final Context mContext;
-    private final View.OnClickListener mItemClickListener;
-    private final View.OnClickListener mPhotoClickListener;
-    private final LayoutInflater mInflater;
-
-    private List<StreamItemEntry> mStreamItems;
-
-    public StreamItemAdapter(Context context, View.OnClickListener itemClickListener,
-            View.OnClickListener photoClickListener) {
-        mContext = context;
-        mItemClickListener = itemClickListener;
-        mPhotoClickListener = photoClickListener;
-        mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        mStreamItems = Lists.newArrayList();
-    }
-
-    @Override
-    public int getCount() {
-        // The header should only be included as items in the list if there are other
-        // stream items.
-        int count = mStreamItems.size();
-        return (count == 0) ? 0 : (count + 1);
-    }
-
-    @Override
-    public Object getItem(int position) {
-        if (position == 0) {
-            return null;
-        }
-        return mStreamItems.get(position - 1);
-    }
-
-    @Override
-    public long getItemId(int position) {
-        if (position == 0) {
-            return -1;
-        }
-        return position - 1;
-    }
-
-    @Override
-    public boolean isEnabled(int position) {
-        // Make all list items disabled, so they're not clickable.
-        // We make child views clickable in getvView() if the account type supports
-        // viewStreamItemActivity or viewStreamItemPhotoActivity.
-        return false;
-    }
-
-    @Override
-    public boolean areAllItemsEnabled() {
-        // See isEnabled().
-        return false;
-    }
-
-    @Override
-    public View getView(int position, View convertView, ViewGroup parent) {
-        if (position == 0) {
-            return mInflater.inflate(R.layout.updates_header_contact, null);
-        }
-        final StreamItemEntry streamItem = (StreamItemEntry) getItem(position);
-        final AccountTypeManager manager = AccountTypeManager.getInstance(mContext);
-        final AccountType accountType =
-                manager.getAccountType(streamItem.getAccountType(), streamItem.getDataSet());
-
-        final View view = ContactDetailDisplayUtils.createStreamItemView(
-                mInflater, mContext, convertView, streamItem,
-                // Only pass the photo click listener if the account type has the photo
-                // view activity.
-                (accountType.getViewStreamItemPhotoActivity() == null) ? null : mPhotoClickListener
-                );
-        final View contentView = view.findViewById(R.id.stream_item_content);
-
-        // If the account type has the stream item view activity, make the stream container
-        // clickable.
-        if (accountType.getViewStreamItemActivity() != null) {
-            contentView.setTag(streamItem);
-            contentView.setFocusable(true);
-            contentView.setOnClickListener(mItemClickListener);
-            contentView.setEnabled(true);
-        } else {
-            contentView.setTag(null);
-            contentView.setFocusable(false);
-            contentView.setOnClickListener(null);
-            // setOnClickListener makes it clickable, so we need to overwrite it.
-            contentView.setClickable(false);
-            contentView.setEnabled(false);
-        }
-        return view;
-    }
-
-    @Override
-    public int getViewTypeCount() {
-        // ITEM_VIEW_TYPE_HEADER and ITEM_VIEW_TYPE_STREAM_ITEM
-        return 2;
-    }
-
-    @Override
-    public int getItemViewType(int position) {
-        if (position == 0) {
-            return ITEM_VIEW_TYPE_HEADER;
-        }
-        return ITEM_VIEW_TYPE_STREAM_ITEM;
-    }
-
-    public void setStreamItems(List<StreamItemEntry> streamItems) {
-        mStreamItems = streamItems;
-        notifyDataSetChanged();
-    }
-}
diff --git a/src/com/android/contacts/editor/AggregationSuggestionEngine.java b/src/com/android/contacts/editor/AggregationSuggestionEngine.java
index f121605..91df272 100644
--- a/src/com/android/contacts/editor/AggregationSuggestionEngine.java
+++ b/src/com/android/contacts/editor/AggregationSuggestionEngine.java
@@ -335,25 +335,24 @@
         }
     }
 
-    private boolean updateSuggestedContactIds(Cursor cursor) {
-        int count = cursor.getCount();
+    private boolean updateSuggestedContactIds(final Cursor cursor) {
+        final int count = cursor.getCount();
         boolean changed = count != mSuggestedContactIds.length;
-        if (!changed) {
-            while (cursor.moveToNext()) {
-                long contactId = cursor.getLong(0);
-                if (Arrays.binarySearch(mSuggestedContactIds, contactId) < 0) {
-                    changed = true;
-                    break;
-                }
+        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[count];
-            cursor.moveToPosition(-1);
-            for (int i = 0; i < count; i++) {
-                cursor.moveToNext();
-                mSuggestedContactIds[i] = cursor.getLong(0);
+            mSuggestedContactIds = new long[newIds.size()];
+            int i = 0;
+            for (final Long newId : newIds) {
+                mSuggestedContactIds[i++] = newId;
             }
             Arrays.sort(mSuggestedContactIds);
         }
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index 54c9d3b..b4ec7f9 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -24,6 +24,7 @@
 import android.app.Fragment;
 import android.app.LoaderManager;
 import android.app.LoaderManager.LoaderCallbacks;
+import android.content.ActivityNotFoundException;
 import android.content.ContentUris;
 import android.content.ContentValues;
 import android.content.Context;
@@ -34,6 +35,8 @@
 import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
+import android.graphics.Rect;
+import android.media.RingtoneManager;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.SystemClock;
@@ -46,6 +49,8 @@
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Groups;
 import android.provider.ContactsContract.Intents;
+import android.provider.ContactsContract.Intents.UI;
+import android.provider.ContactsContract.QuickContact;
 import android.provider.ContactsContract.RawContacts;
 import android.text.TextUtils;
 import android.util.Log;
@@ -67,7 +72,6 @@
 import com.android.contacts.R;
 import com.android.contacts.activities.ContactEditorAccountsChangedActivity;
 import com.android.contacts.activities.ContactEditorActivity;
-import com.android.contacts.activities.JoinContactActivity;
 import com.android.contacts.common.model.AccountTypeManager;
 import com.android.contacts.common.model.ValuesDelta;
 import com.android.contacts.common.model.account.AccountType;
@@ -84,13 +88,14 @@
 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.quickcontact.QuickContactActivity;
 import com.android.contacts.util.ContactPhotoUtils;
 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.io.File;
 import java.io.FileNotFoundException;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -201,6 +206,7 @@
 
     private static final int REQUEST_CODE_JOIN = 0;
     private static final int REQUEST_CODE_ACCOUNTS_CHANGED = 1;
+    private static final int REQUEST_CODE_PICK_RINGTONE = 2;
 
     /**
      * The raw contact for which we started "take photo" or "choose photo from gallery" most
@@ -252,6 +258,11 @@
     private boolean mIsEdit = false;
     private boolean mExistingContactDataReady = false;
 
+    // Variables related to phone specific option menus
+    private boolean mSendToVoicemailState;
+    private boolean mArePhoneOptionsChangable;
+    private String mCustomRingtone;
+
     // This is used to pre-populate the editor with a display name when a user edits a read-only
     // contact.
     private String mDefaultDisplayName;
@@ -552,6 +563,8 @@
         // If displayName is null at this point it is simply ignored later on by the editor.
         bindEditorsForExistingContact(displayName, contact.isUserProfile(),
                 mRawContacts);
+
+        bindMenuItemsForPhone(contact);
     }
 
     @Override
@@ -597,6 +610,17 @@
         bindEditors();
     }
 
+    private void bindMenuItemsForPhone(Contact contact) {
+        mSendToVoicemailState = contact.isSendToVoicemail();
+        mCustomRingtone = contact.getCustomRingtone();
+        mArePhoneOptionsChangable = arePhoneOptionsChangable(contact);
+    }
+
+    private boolean arePhoneOptionsChangable(Contact contact) {
+        return contact != null && !contact.isDirectoryEntry()
+                && PhoneCapabilityTester.isPhone(mContext);
+    }
+
     /**
      * Merges extras from the intent.
      */
@@ -892,7 +916,7 @@
     */
     private Bitmap updatedBitmapForRawContact(long rawContactId) {
         String path = mUpdatedPhotos.getString(String.valueOf(rawContactId));
-        return BitmapFactory.decodeFile(path);
+        return path == null ? null : BitmapFactory.decodeFile(path);
     }
 
     private void bindPhotoHandler(BaseRawContactEditorView editor, AccountType type,
@@ -1020,32 +1044,40 @@
         final MenuItem joinMenu = menu.findItem(R.id.menu_join);
         final MenuItem helpMenu = menu.findItem(R.id.menu_help);
         final MenuItem discardMenu = menu.findItem(R.id.menu_discard);
+        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
         doneMenu.setVisible(false);
 
-        // Split only if more than one raw profile and not a user profile
-        splitMenu.setVisible(mState.size() > 1 && !isEditingUserProfile());
-
-        // Cannot join a user profile
-        joinMenu.setVisible(!isEditingUserProfile());
-
         // Discard menu is only available if at least one raw contact is editable
         discardMenu.setVisible(mState != null &&
                 mState.getFirstWritableRawContact(mContext) != null);
 
         // help menu depending on whether this is inserting or editing
         if (Intent.ACTION_INSERT.equals(mAction)) {
-            // inserting
             HelpUtils.prepareHelpMenuItem(mContext, helpMenu, R.string.help_url_people_add);
+            splitMenu.setVisible(false);
+            joinMenu.setVisible(false);
+            deleteMenu.setVisible(false);
         } else if (Intent.ACTION_EDIT.equals(mAction)) {
-            // editing
             HelpUtils.prepareHelpMenuItem(mContext, helpMenu, R.string.help_url_people_edit);
+            // Split only if more than one raw profile and not a user profile
+            splitMenu.setVisible(mState.size() > 1 && !isEditingUserProfile());
+            // Cannot join a user profile
+            joinMenu.setVisible(!isEditingUserProfile());
         } else {
             // something else, so don't show the help menu
             helpMenu.setVisible(false);
         }
 
+        // 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);
@@ -1059,11 +1091,26 @@
                 return save(SaveMode.CLOSE);
             case R.id.menu_discard:
                 return revert();
+            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;
     }
 
@@ -1155,6 +1202,46 @@
         return true;
     }
 
+    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;
+        if (mCustomRingtone != null) {
+            ringtoneUri = Uri.parse(mCustomRingtone);
+        } else {
+            // Otherwise pick default ringtone Uri so that something is selected.
+            ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
+        }
+
+        // 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();
+        }
+    }
+
+    private void handleRingtonePicked(Uri pickedUri) {
+        if (pickedUri == null || RingtoneManager.isDefault(pickedUri)) {
+            mCustomRingtone = null;
+        } else {
+            mCustomRingtone = pickedUri.toString();
+        }
+        Intent intent = ContactSaveService.createSetRingtone(
+                mContext, mLookupUri, mCustomRingtone);
+        mContext.startService(intent);
+    }
+
     public static class CancelEditDialogFragment extends DialogFragment {
 
         public static void show(ContactEditorFragment fragment) {
@@ -1225,9 +1312,7 @@
                             mLookupUri == null ? null : mLookupUri.getAuthority();
 
                     final String legacyAuthority = "contacts";
-
-                    resultIntent = new Intent();
-                    resultIntent.setAction(Intent.ACTION_VIEW);
+                    final Uri lookupUri;
                     if (legacyAuthority.equals(requestAuthority)) {
                         // Build legacy Uri when requested by caller
                         final long contactId = ContentUris.parseId(Contacts.lookupContact(
@@ -1235,12 +1320,15 @@
                         final Uri legacyContentUri = Uri.parse("content://contacts/people");
                         final Uri legacyUri = ContentUris.withAppendedId(
                                 legacyContentUri, contactId);
-                        resultIntent.setData(legacyUri);
+                        lookupUri = legacyUri;
                     } else {
                         // Otherwise pass back a lookup-style Uri
-                        resultIntent.setData(contactLookupUri);
+                        lookupUri = contactLookupUri;
                     }
-
+                    resultIntent = QuickContact.composeQuickContactsIntent(getActivity(),
+                            (Rect) null, lookupUri, QuickContactActivity.MODE_FULLY_EXPANDED, null);
+                    // Make sure not to show QuickContacts on top of another QuickContacts.
+                    resultIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                 } else {
                     resultIntent = null;
                 }
@@ -1289,8 +1377,8 @@
 
         mContactIdForJoin = ContentUris.parseId(contactLookupUri);
         mContactWritableForJoin = isContactWritable();
-        final Intent intent = new Intent(JoinContactActivity.JOIN_CONTACT);
-        intent.putExtra(JoinContactActivity.EXTRA_TARGET_CONTACT_ID, mContactIdForJoin);
+        final Intent intent = new Intent(UI.PICK_JOIN_CONTACT_ACTION);
+        intent.putExtra(UI.TARGET_CONTACT_ID_EXTRA_KEY, mContactIdForJoin);
         startActivityForResult(intent, REQUEST_CODE_JOIN);
     }
 
@@ -1371,6 +1459,8 @@
          */
         void onCustomEditContactActivityRequested(AccountWithDataSet account, Uri rawContactUri,
                 Bundle intentExtras, boolean redirect);
+
+        void onDeleteRequested(Uri contactUri);
     }
 
     private class EntityDeltaComparator implements Comparator<RawContactDelta> {
@@ -1728,6 +1818,14 @@
                 createContact();
                 break;
             }
+            case REQUEST_CODE_PICK_RINGTONE: {
+                if (data != null) {
+                    final Uri pickedUri = data.getParcelableExtra(
+                            RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
+                    handleRingtonePicked(pickedUri);
+                }
+                break;
+            }
         }
     }
 
diff --git a/src/com/android/contacts/editor/ContactEditorUtils.java b/src/com/android/contacts/editor/ContactEditorUtils.java
index e93d3c8..b132217 100644
--- a/src/com/android/contacts/editor/ContactEditorUtils.java
+++ b/src/com/android/contacts/editor/ContactEditorUtils.java
@@ -26,7 +26,7 @@
 import android.text.TextUtils;
 import android.util.Log;
 
-import com.android.contacts.common.test.NeededForTesting;
+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;
diff --git a/src/com/android/contacts/editor/StructuredNameEditorView.java b/src/com/android/contacts/editor/StructuredNameEditorView.java
index bf548f6..3408435 100644
--- a/src/com/android/contacts/editor/StructuredNameEditorView.java
+++ b/src/com/android/contacts/editor/StructuredNameEditorView.java
@@ -155,6 +155,7 @@
 
         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));
         }
diff --git a/src/com/android/contacts/editor/TextFieldsEditorView.java b/src/com/android/contacts/editor/TextFieldsEditorView.java
index 85cbac8..e658f53 100644
--- a/src/com/android/contacts/editor/TextFieldsEditorView.java
+++ b/src/com/android/contacts/editor/TextFieldsEditorView.java
@@ -58,6 +58,8 @@
     private boolean mHideOptional = true;
     private boolean mHasShortAndLongForms;
     private int mMinFieldHeight;
+    private int mEditTextTopPadding;
+    private int mEditTextBottomPadding;
     private int mPreviousViewHeight;
 
     public TextFieldsEditorView(Context context) {
@@ -82,6 +84,10 @@
 
         mMinFieldHeight = mContext.getResources().getDimensionPixelSize(
                 R.dimen.editor_min_line_item_height);
+        mEditTextBottomPadding = mContext.getResources().getDimensionPixelSize(
+                R.dimen.editor_text_field_bottom_padding);
+        mEditTextTopPadding = mContext.getResources().getDimensionPixelSize(
+                R.dimen.editor_text_field_top_padding);
         mFields = (ViewGroup) findViewById(R.id.editors);
         mExpansionView = (ImageView) findViewById(R.id.expansion_view);
         mExpansionViewContainer = findViewById(R.id.expansion_view_container);
@@ -196,7 +202,7 @@
             final EditField field = kind.fieldList.get(index);
             final EditText fieldView = new EditText(mContext);
             fieldView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
-                    field.isMultiLine() ? LayoutParams.WRAP_CONTENT : mMinFieldHeight));
+                    LayoutParams.WRAP_CONTENT));
             // 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 != 0) {
@@ -205,6 +211,9 @@
                 fieldView.setMinHeight(mMinFieldHeight);
             }
             fieldView.setTextAppearance(getContext(), android.R.style.TextAppearance_Medium);
+            fieldView.setPadding(fieldView.getPaddingLeft(), mEditTextTopPadding,
+                    fieldView.getPaddingRight(), mEditTextBottomPadding);
+            fieldView.setHintTextColor(R.color.secondary_text_color);
             fieldView.setGravity(Gravity.TOP);
             mFieldEditTexts[index] = fieldView;
             fieldView.setId(vig.getId(state, kind, entry, index));
diff --git a/src/com/android/contacts/group/GroupDetailFragment.java b/src/com/android/contacts/group/GroupDetailFragment.java
index 9d46583..c12595d 100644
--- a/src/com/android/contacts/group/GroupDetailFragment.java
+++ b/src/com/android/contacts/group/GroupDetailFragment.java
@@ -245,6 +245,10 @@
 
         @Override
         public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+            if (data == null || data.isClosed()) {
+                Log.e(TAG, "Failed to load group metadata");
+                return;
+            }
             data.moveToPosition(-1);
             if (data.moveToNext()) {
                 boolean deleted = data.getInt(GroupMetaDataLoader.DELETED) == 1;
@@ -277,6 +281,10 @@
 
         @Override
         public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+            if (data == null || data.isClosed()) {
+                Log.e(TAG, "Failed to load group members");
+                return;
+            }
             updateSize(data.getCount());
             mAdapter.setContactCursor(data);
             mMemberListView.setEmptyView(mEmptyView);
diff --git a/src/com/android/contacts/group/GroupEditorFragment.java b/src/com/android/contacts/group/GroupEditorFragment.java
index 91800f8..3d13bdd 100644
--- a/src/com/android/contacts/group/GroupEditorFragment.java
+++ b/src/com/android/contacts/group/GroupEditorFragment.java
@@ -974,9 +974,10 @@
                 });
             }
             DefaultImageRequest request = new DefaultImageRequest(member.getDisplayName(),
-                    member.getLookupKey());
+                    member.getLookupKey(), true /* isCircular */);
             mPhotoManager.loadPhoto(badge, member.getPhotoUri(),
-                    ViewUtil.getConstantPreLayoutWidth(badge), false, request);
+                    ViewUtil.getConstantPreLayoutWidth(badge), false, true /* isCircular */,
+                            request);
             return result;
         }
 
diff --git a/src/com/android/contacts/interactions/CalendarInteraction.java b/src/com/android/contacts/interactions/CalendarInteraction.java
new file mode 100644
index 0000000..b3862a2
--- /dev/null
+++ b/src/com/android/contacts/interactions/CalendarInteraction.java
@@ -0,0 +1,279 @@
+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.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.getAsBoolean(Attendees.ALL_DAY);
+    }
+
+    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);
+    }
+}
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..7d7a8f2
--- /dev/null
+++ b/src/com/android/contacts/interactions/CalendarInteractionsLoader.java
@@ -0,0 +1,228 @@
+package com.android.contacts.interactions;
+
+import com.google.common.base.Preconditions;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+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 (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));
+
+        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 + " < ? ";
+
+        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..28b9655
--- /dev/null
+++ b/src/com/android/contacts/interactions/CallLogInteraction.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.BitmapUtil;
+
+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.util.Log;
+
+/**
+ * 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 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() {
+        return mValues.getAsString(Calls.NUMBER);
+    }
+
+    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);
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/interactions/CallLogInteractionsLoader.java b/src/com/android/contacts/interactions/CallLogInteractionsLoader.java
new file mode 100644
index 0000000..9cbc0b4
--- /dev/null
+++ b/src/com/android/contacts/interactions/CallLogInteractionsLoader.java
@@ -0,0 +1,167 @@
+/*
+ * 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 com.android.internal.annotations.VisibleForTesting;
+
+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 int mMaxToRetrieve;
+    private List<ContactInteraction> mData;
+
+    public CallLogInteractionsLoader(Context context, String[] phoneNumbers,
+            int maxToRetrieve) {
+        super(context);
+        mPhoneNumbers = phoneNumbers;
+        mMaxToRetrieve = maxToRetrieve;
+    }
+
+    @Override
+    public List<ContactInteraction> loadInBackground() {
+        if (!getContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)
+                || mPhoneNumbers == null || mPhoneNumbers.length <= 0 || mMaxToRetrieve <= 0) {
+            return Collections.emptyList();
+        }
+
+        final List<ContactInteraction> interactions = new ArrayList<>();
+        for (String number : mPhoneNumbers) {
+            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 (mPhoneNumbers.length == 1) {
+            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.
+        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
index 2880f77..458556e 100644
--- a/src/com/android/contacts/interactions/ContactDeletionInteraction.java
+++ b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
@@ -54,6 +54,7 @@
     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
@@ -317,6 +318,7 @@
     protected void doDeleteContact(Uri contactUri) {
         mContext.startService(ContactSaveService.createDeleteContactIntent(mContext, contactUri));
         if (isAdded() && mFinishActivityWhenDone) {
+            getActivity().setResult(RESULT_CODE_DELETED);
             getActivity().finish();
         }
     }
diff --git a/src/com/android/contacts/interactions/ContactInteraction.java b/src/com/android/contacts/interactions/ContactInteraction.java
new file mode 100644
index 0000000..3f7a842
--- /dev/null
+++ b/src/com/android/contacts/interactions/ContactInteraction.java
@@ -0,0 +1,35 @@
+/*
+ * 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;
+
+/**
+ * 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);
+}
diff --git a/src/com/android/contacts/interactions/ContactInteractionUtil.java b/src/com/android/contacts/interactions/ContactInteractionUtil.java
new file mode 100644
index 0000000..98d45ee
--- /dev/null
+++ b/src/com/android/contacts/interactions/ContactInteractionUtil.java
@@ -0,0 +1,101 @@
+/*
+ * 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;
+
+import com.android.contacts.R;
+
+
+/**
+ * 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. If the timestamp occurs tomorrow or yesterday, that is displayed
+     * 3. Otherwise {Month Date} format is used
+     */
+    @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());
+        }
+
+        // Turn compareCalendar to yesterday
+        compareCalendar.add(Calendar.DAY_OF_YEAR, -1);
+        if (compareCalendarDayYear(interactionCalendar, compareCalendar)) {
+            return context.getString(R.string.yesterday);
+        }
+
+        // Turn compareCalendar to tomorrow
+        compareCalendar.add(Calendar.DAY_OF_YEAR, 2);
+        if (compareCalendarDayYear(interactionCalendar, compareCalendar)) {
+            return context.getString(R.string.tomorrow);
+        }
+        return DateUtils.formatDateTime(context, interactionCalendar.getTimeInMillis(),
+                DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NO_YEAR);
+    }
+
+    /**
+     * 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/SmsInteraction.java b/src/com/android/contacts/interactions/SmsInteraction.java
new file mode 100644
index 0000000..ac83786
--- /dev/null
+++ b/src/com/android/contacts/interactions/SmsInteraction.java
@@ -0,0 +1,151 @@
+/*
+ * 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 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;
+
+/**
+ * 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;
+
+    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) {
+        return getBody();
+    }
+
+    @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() {
+        return mValues.getAsString(Sms.ADDRESS);
+    }
+
+    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);
+    }
+}
diff --git a/src/com/android/contacts/interactions/SmsInteractionsLoader.java b/src/com/android/contacts/interactions/SmsInteractionsLoader.java
new file mode 100644
index 0000000..295c99a
--- /dev/null
+++ b/src/com/android/contacts/interactions/SmsInteractionsLoader.java
@@ -0,0 +1,146 @@
+/*
+ * 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 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) {
+            threadIdStrings.add(String.valueOf(
+                    Telephony.Threads.getOrCreateThreadId(getContext(), phone)));
+        }
+
+        // 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) {
+        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/TestLoaderManager.java b/src/com/android/contacts/interactions/TestLoaderManager.java
index fb6a49b..a85bf8f 100644
--- a/src/com/android/contacts/interactions/TestLoaderManager.java
+++ b/src/com/android/contacts/interactions/TestLoaderManager.java
@@ -93,6 +93,7 @@
 
     private LoaderManager mDelegate;
 
+    @VisibleForTesting
     public TestLoaderManager() {
         mFinishedLoaders = new HashSet<Integer>();
     }
diff --git a/src/com/android/contacts/list/ContactBrowseListFragment.java b/src/com/android/contacts/list/ContactBrowseListFragment.java
index 14e8949..855f923 100644
--- a/src/com/android/contacts/list/ContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/ContactBrowseListFragment.java
@@ -597,31 +597,15 @@
         mListener = listener;
     }
 
-    public void createNewContact() {
-        if (mListener != null) mListener.onCreateNewContactAction();
-    }
-
     public void viewContact(Uri contactUri) {
         setSelectedContactUri(contactUri, false, false, true, false);
         if (mListener != null) mListener.onViewContactAction(contactUri);
     }
 
-    public void editContact(Uri contactUri) {
-        if (mListener != null) mListener.onEditContactAction(contactUri);
-    }
-
     public void deleteContact(Uri contactUri) {
         if (mListener != null) mListener.onDeleteContactAction(contactUri);
     }
 
-    public void addToFavorites(Uri contactUri) {
-        if (mListener != null) mListener.onAddToFavoritesAction(contactUri);
-    }
-
-    public void removeFromFavorites(Uri contactUri) {
-        if (mListener != null) mListener.onRemoveFromFavoritesAction(contactUri);
-    }
-
     private void notifyInvalidSelection() {
         if (mListener != null) mListener.onInvalidSelection();
     }
diff --git a/src/com/android/contacts/list/ContactNameHighlightingAnimation.java b/src/com/android/contacts/list/ContactNameHighlightingAnimation.java
deleted file mode 100644
index 46fe88b..0000000
--- a/src/com/android/contacts/list/ContactNameHighlightingAnimation.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.list;
-
-import android.view.View;
-import android.widget.ListView;
-
-import com.android.contacts.common.list.ContactListItemView;
-import com.android.contacts.widget.TextHighlightingAnimation;
-
-/**
- * A {@link TextHighlightingAnimation} that redraws just the contact display name in a
- * list item.
- */
-public class ContactNameHighlightingAnimation extends TextHighlightingAnimation {
-    private final ListView mListView;
-    private boolean mSavedScrollingCacheEnabledFlag;
-
-    public ContactNameHighlightingAnimation(ListView listView, int duration) {
-        super(duration);
-        this.mListView = listView;
-    }
-
-    /**
-     * Redraws all visible items of the list corresponding to contacts
-     */
-    @Override
-    protected void invalidate() {
-        int childCount = mListView.getChildCount();
-        for (int i = 0; i < childCount; i++) {
-            View itemView = mListView.getChildAt(i);
-            if (itemView instanceof ContactListItemView) {
-                final ContactListItemView view = (ContactListItemView)itemView;
-                view.getNameTextView().invalidate();
-            }
-        }
-    }
-
-    @Override
-    protected void onAnimationStarted() {
-        mSavedScrollingCacheEnabledFlag = mListView.isScrollingCacheEnabled();
-        mListView.setScrollingCacheEnabled(false);
-    }
-
-    @Override
-    protected void onAnimationEnded() {
-        mListView.setScrollingCacheEnabled(mSavedScrollingCacheEnabledFlag);
-    }
-}
diff --git a/src/com/android/contacts/list/ContactPickerFragment.java b/src/com/android/contacts/list/ContactPickerFragment.java
index 3dc4330..442f5c7 100644
--- a/src/com/android/contacts/list/ContactPickerFragment.java
+++ b/src/com/android/contacts/list/ContactPickerFragment.java
@@ -28,7 +28,6 @@
 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.DefaultContactListAdapter;
 import com.android.contacts.common.list.DirectoryListLoader;
 import com.android.contacts.common.list.ShortcutIntentBuilder;
 import com.android.contacts.common.list.ShortcutIntentBuilder.OnShortcutIntentCreatedListener;
@@ -105,7 +104,9 @@
     @Override
     protected void onCreateView(LayoutInflater inflater, ViewGroup container) {
         super.onCreateView(inflater, container);
-        if (mCreateContactEnabled) {
+        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));
         }
     }
@@ -152,12 +153,14 @@
     @Override
     protected ContactEntryListAdapter createListAdapter() {
         if (!isLegacyCompatibilityMode()) {
-            DefaultContactListAdapter adapter = new DefaultContactListAdapter(getActivity());
+            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());
diff --git a/src/com/android/contacts/list/ContactTileFrequentFragment.java b/src/com/android/contacts/list/ContactTileFrequentFragment.java
deleted file mode 100644
index 605bdd3..0000000
--- a/src/com/android/contacts/list/ContactTileFrequentFragment.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.contacts.list;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import com.android.contacts.R;
-import com.android.contacts.common.MoreContactUtils;
-
-/**
- * Fragment containing a list of frequently contacted people.
- */
-public class ContactTileFrequentFragment extends ContactTileListFragment {
-    private static final String TAG = ContactTileFrequentFragment.class.getSimpleName();
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        View listLayout = inflateAndSetupView(inflater, container, savedInstanceState,
-                R.layout.contact_tile_list_frequent);
-        View headerView = MoreContactUtils.createHeaderView(getActivity(),
-                R.string.favoritesFrequentContacted);
-        ViewGroup headerContainer = (ViewGroup) listLayout.findViewById(R.id.header_container);
-        headerContainer.addView(headerView);
-        return listLayout;
-    }
-}
diff --git a/src/com/android/contacts/list/ContactTileListFragment.java b/src/com/android/contacts/list/ContactTileListFragment.java
index 55c87f3..bce7bfe 100644
--- a/src/com/android/contacts/list/ContactTileListFragment.java
+++ b/src/com/android/contacts/list/ContactTileListFragment.java
@@ -26,15 +26,18 @@
 import android.graphics.Rect;
 import android.net.Uri;
 import android.os.Bundle;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
 import android.widget.ListView;
 import android.widget.TextView;
 
+import com.android.contacts.R;
+import com.android.contacts.util.SchedulingUtils;
 import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.ContactTileLoaderFactory;
-import com.android.contacts.R;
 import com.android.contacts.common.list.ContactTileAdapter;
 import com.android.contacts.common.list.ContactTileView;
 import com.android.contacts.common.list.ContactTileAdapter.DisplayType;
@@ -61,6 +64,7 @@
     private TextView mEmptyView;
     private ListView mListView;
 
+    private boolean mContactAllListShowCardFrame;
     private boolean mOptionsMenuHasFrequents;
 
     @Override
@@ -69,6 +73,7 @@
 
         Resources res = getResources();
         int columnCount = res.getInteger(R.integer.contact_tile_column_count_in_favorites);
+        mContactAllListShowCardFrame = res.getBoolean(R.bool.contact_all_list_show_card_frame);
 
         mAdapter = new ContactTileAdapter(activity, mAdapterListener,
                 columnCount, mDisplayType);
@@ -91,6 +96,26 @@
 
         mListView.setItemsCanFocus(true);
         mListView.setAdapter(mAdapter);
+
+        // If the device is in the sw600dp class, set a padding on the list
+        // view so it appears in the center of the card in the layout.
+        if (mContactAllListShowCardFrame) {
+            SchedulingUtils.doOnPreDraw(mListView, true, new Runnable() {
+                @Override
+                public void run() {
+                    Resources res = getResources();
+                    int listSpaceWeight = res.getInteger(R.integer
+                            .people_activity_space_layout_weight);
+                    int listViewWeight = res.getInteger(R.integer
+                            .people_activity_list_view_layout_weight);
+                    double paddingPercent = (double) listSpaceWeight / (double)
+                            (listSpaceWeight * 2 + listViewWeight);
+                    int width = mListView.getWidth();
+                    mListView.setPadding((int) (width * paddingPercent), mListView.getPaddingTop(),
+                            (int)(width * paddingPercent), mListView.getPaddingBottom());
+                }
+            });
+        }
         return listLayout;
     }
 
@@ -151,8 +176,6 @@
                   return ContactTileLoaderFactory.createStarredLoader(getActivity());
               case STREQUENT:
                   return ContactTileLoaderFactory.createStrequentLoader(getActivity());
-              case STREQUENT_PHONE_ONLY:
-                  return ContactTileLoaderFactory.createStrequentPhoneOnlyLoader(getActivity());
               case FREQUENT_ONLY:
                   return ContactTileLoaderFactory.createFrequentLoader(getActivity());
               default:
@@ -163,6 +186,10 @@
 
         @Override
         public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+            if (data == null || data.isClosed()) {
+                Log.e(TAG, "Failed to load contacts");
+                return;
+            }
             mAdapter.setContactCursor(data);
             mEmptyView.setText(getEmptyStateText());
             mListView.setEmptyView(mEmptyView);
@@ -189,7 +216,6 @@
         String emptyText;
         switch (mDisplayType) {
             case STREQUENT:
-            case STREQUENT_PHONE_ONLY:
             case STARRED_ONLY:
                 emptyText = getString(R.string.listTotalAllContactsZeroStarred);
                 break;
diff --git a/src/com/android/contacts/list/ContactsIntentResolver.java b/src/com/android/contacts/list/ContactsIntentResolver.java
index 838393e..b4416be 100644
--- a/src/com/android/contacts/list/ContactsIntentResolver.java
+++ b/src/com/android/contacts/list/ContactsIntentResolver.java
@@ -173,6 +173,8 @@
             request.setContactUri(data);
             intent.setAction(Intent.ACTION_DEFAULT);
             intent.setData(null);
+        } else if (UI.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(UI.TITLE_EXTRA_KEY);
diff --git a/src/com/android/contacts/list/ContactsRequest.java b/src/com/android/contacts/list/ContactsRequest.java
index 2a26ddf..7955fde 100644
--- a/src/com/android/contacts/list/ContactsRequest.java
+++ b/src/com/android/contacts/list/ContactsRequest.java
@@ -77,6 +77,9 @@
     /** 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 Intent mRedirectIntent;
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index 90495fa..335a564 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -19,13 +19,16 @@
 import android.content.CursorLoader;
 import android.content.Intent;
 import android.database.Cursor;
+import android.graphics.Color;
 import android.provider.ContactsContract.Contacts;
 import android.text.TextUtils;
 import android.util.Log;
+import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
 import android.view.accessibility.AccessibilityEvent;
 import android.widget.Button;
 import android.widget.FrameLayout;
@@ -33,12 +36,14 @@
 import android.widget.TextView;
 
 import com.android.contacts.R;
+import com.android.contacts.util.SchedulingUtils;
 import com.android.contacts.common.list.ContactListAdapter;
 import com.android.contacts.common.list.ContactListFilter;
 import com.android.contacts.common.list.ContactListFilterController;
 import com.android.contacts.common.list.ContactListItemView;
 import com.android.contacts.common.list.DefaultContactListAdapter;
 import com.android.contacts.common.list.ProfileAndContactsLoader;
+import com.android.contacts.common.util.ViewUtil;
 import com.android.contacts.editor.ContactEditorFragment;
 import com.android.contacts.common.util.AccountFilterUtil;
 
@@ -51,16 +56,15 @@
 
     private static final int REQUEST_CODE_ACCOUNT_FILTER = 1;
 
-    private TextView mCounterHeaderView;
     private View mSearchHeaderView;
     private View mAccountFilterHeader;
     private FrameLayout mProfileHeaderContainer;
     private View mProfileHeader;
     private Button mProfileMessage;
-    private FrameLayout mMessageContainer;
     private TextView mProfileTitle;
     private View mSearchProgress;
     private TextView mSearchProgressText;
+    private boolean mContactAllListShowCardFrame;
 
     private class FilterHeaderClickListener implements OnClickListener {
         @Override
@@ -75,6 +79,9 @@
 
     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);
     }
@@ -93,12 +100,11 @@
     protected ContactListAdapter createListAdapter() {
         DefaultContactListAdapter adapter = new DefaultContactListAdapter(getContext());
         adapter.setSectionHeaderDisplayEnabled(isSectionHeaderDisplayEnabled());
-        boolean showPhoto = getResources().getBoolean(R.bool.config_browse_list_show_images);
-        adapter.setDisplayPhotos(showPhoto);
-        if (showPhoto) {
-            boolean reverse = getResources().getBoolean(R.bool.config_browse_list_reverse_images);
-            adapter.setPhotoPosition(ContactListItemView.getDefaultPhotoPosition(reverse));
-        }
+        mContactAllListShowCardFrame = getResources().getBoolean(
+                R.bool.contact_all_list_show_card_frame);
+        adapter.setDisplayPhotos(true);
+        adapter.setPhotoPosition(
+                ContactListItemView.getDefaultPhotoPosition(/* opposite = */ false));
         return adapter;
     }
 
@@ -113,7 +119,6 @@
 
         mAccountFilterHeader = getView().findViewById(R.id.account_filter_header_container);
         mAccountFilterHeader.setOnClickListener(mFilterHeaderClickListener);
-        mCounterHeaderView = (TextView) getView().findViewById(R.id.contacts_count);
 
         // Create an empty user profile header and hide it for now (it will be visible if the
         // contacts list will have no user profile).
@@ -128,6 +133,25 @@
         getListView().addHeaderView(headerContainer, null, false);
         checkHeaderViewVisibility();
 
+        // If the device is in the sw600dp class and in landscape mode, set a padding on the list
+        // view so it appears in the center of the card in the layout.
+        if (mContactAllListShowCardFrame) {
+            SchedulingUtils.doOnPreDraw(getListView(), true, new Runnable() {
+                @Override
+                public void run() {
+                    final ListView listView = getListView();
+                    final int width = listView.getWidth();
+                    listView.setPadding(width / 4, listView.getPaddingTop(),
+                            width / 4, listView.getPaddingBottom());
+                    mAccountFilterHeader.setPadding(
+                            mAccountFilterHeader.getPaddingLeft() + width / 4,
+                            mAccountFilterHeader.getPaddingTop(),
+                            mAccountFilterHeader.getPaddingRight() + width / 4,
+                            mAccountFilterHeader.getPaddingBottom());
+                }
+            });
+        }
+
         mSearchProgress = getView().findViewById(R.id.search_progress);
         mSearchProgressText = (TextView) mSearchHeaderView.findViewById(R.id.totalContactsText);
     }
@@ -141,16 +165,15 @@
 
     /** Show or hide the directory-search progress spinner. */
     private void showSearchProgress(boolean show) {
-        mSearchProgress.setVisibility(show ? View.VISIBLE : View.GONE);
+        if (mSearchProgress != null) {
+            mSearchProgress.setVisibility(show ? View.VISIBLE : View.GONE);
+        }
     }
 
     private void checkHeaderViewVisibility() {
-        if (mCounterHeaderView != null) {
-            mCounterHeaderView.setVisibility(isSearchMode() ? View.GONE : View.VISIBLE);
-        }
         updateFilterHeaderView();
 
-        // Hide the search header by default. See showCount().
+        // Hide the search header by default.
         if (mSearchHeaderView != null) {
             mSearchHeaderView.setVisibility(View.GONE);
         }
@@ -177,43 +200,11 @@
     }
 
     @Override
-    protected void showCount(int partitionIndex, Cursor data) {
-        if (!isSearchMode() && data != null) {
-            int count = data.getCount();
-            if (count != 0) {
-                count -= (mUserProfileExists ? 1: 0);
-                String format = getResources().getQuantityText(
-                        R.plurals.listTotalAllContacts, count).toString();
-                // Do not count the user profile in the contacts count
-                if (mUserProfileExists) {
-                    getAdapter().setContactsCount(String.format(format, count));
-                } else {
-                    mCounterHeaderView.setText(String.format(format, count));
-                }
-            } else {
-                ContactListFilter filter = getFilter();
-                int filterType = filter != null ? filter.filterType
-                        : ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS;
-                switch (filterType) {
-                    case ContactListFilter.FILTER_TYPE_ACCOUNT:
-                        mCounterHeaderView.setText(getString(
-                                R.string.listTotalAllContactsZeroGroup, filter.accountName));
-                        break;
-                    case ContactListFilter.FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY:
-                        mCounterHeaderView.setText(R.string.listTotalPhoneContactsZero);
-                        break;
-                    case ContactListFilter.FILTER_TYPE_STARRED:
-                        mCounterHeaderView.setText(R.string.listTotalAllContactsZeroStarred);
-                        break;
-                    case ContactListFilter.FILTER_TYPE_CUSTOM:
-                        mCounterHeaderView.setText(R.string.listTotalAllContactsZeroCustom);
-                        break;
-                    default:
-                        mCounterHeaderView.setText(R.string.listTotalAllContactsZero);
-                        break;
-                }
-            }
-        } else {
+    protected void setProfileHeader() {
+        mUserProfileExists = getAdapter().hasProfile();
+        showEmptyUserProfile(!mUserProfileExists && !isSearchMode());
+
+        if (isSearchMode()) {
             ContactListAdapter adapter = getAdapter();
             if (adapter == null) {
                 return;
@@ -240,12 +231,6 @@
     }
 
     @Override
-    protected void setProfileHeader() {
-        mUserProfileExists = getAdapter().hasProfile();
-        showEmptyUserProfile(!mUserProfileExists && !isSearchMode());
-    }
-
-    @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (requestCode == REQUEST_CODE_ACCOUNT_FILTER) {
             if (getActivity() != null) {
@@ -263,9 +248,7 @@
         // and mProfileTitle
         mProfileHeaderContainer.setVisibility(show ? View.VISIBLE : View.GONE);
         mProfileHeader.setVisibility(show ? View.VISIBLE : View.GONE);
-        mCounterHeaderView.setVisibility(show ? View.VISIBLE : View.GONE);
         mProfileTitle.setVisibility(show ? View.VISIBLE : View.GONE);
-        mMessageContainer.setVisibility(show ? View.VISIBLE : View.GONE);
         mProfileMessage.setVisibility(show ? View.VISIBLE : View.GONE);
     }
 
@@ -276,24 +259,17 @@
      * 2. A button that prompts the user to create a local profile
      */
     private void addEmptyUserProfileHeader(LayoutInflater inflater) {
-
         ListView list = getListView();
-        // Put a header with the "ME" name and a view for the number of contacts
-        // The view is embedded in a frame view since you cannot change the visibility of a
-        // view in a ListView without having a parent view.
-        mProfileHeaderContainer = new FrameLayout(inflater.getContext());
+        // Add a header with the "ME" name. The view is embedded in a frame view since you cannot
+        // change the visibility of a view in a ListView without having a parent view.
         mProfileHeader = inflater.inflate(R.layout.user_profile_header, null, false);
-        mCounterHeaderView = (TextView) mProfileHeader.findViewById(R.id.contacts_count);
         mProfileTitle = (TextView) mProfileHeader.findViewById(R.id.profile_title);
+        mProfileHeaderContainer = new FrameLayout(inflater.getContext());
         mProfileHeaderContainer.addView(mProfileHeader);
         list.addHeaderView(mProfileHeaderContainer, null, false);
 
-        // Add a selectable view with a message inviting the user to create a local profile
-        mMessageContainer = new FrameLayout(inflater.getContext());
-        mProfileMessage = (Button)inflater.inflate(R.layout.user_profile_button, null, false);
-        mMessageContainer.addView(mProfileMessage);
-        list.addHeaderView(mMessageContainer, null, true);
-
+        // Add a button with a message inviting the user to create a local profile
+        mProfileMessage = (Button) mProfileHeader.findViewById(R.id.user_profile_button);
         mProfileMessage.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
diff --git a/src/com/android/contacts/list/EmailAddressListAdapter.java b/src/com/android/contacts/list/EmailAddressListAdapter.java
index 960f29a..21b9c60 100644
--- a/src/com/android/contacts/list/EmailAddressListAdapter.java
+++ b/src/com/android/contacts/list/EmailAddressListAdapter.java
@@ -23,7 +23,6 @@
 import android.net.Uri.Builder;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.CommonDataKinds.Email;
-import android.provider.ContactsContract.ContactCounts;
 import android.provider.ContactsContract.Data;
 import android.text.TextUtils;
 import android.view.View;
@@ -32,6 +31,7 @@
 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.
@@ -86,7 +86,7 @@
         } else {
             builder = Email.CONTENT_URI.buildUpon();
             if (isSectionHeaderDisplayEnabled()) {
-                builder.appendQueryParameter(ContactCounts.ADDRESS_BOOK_INDEX_EXTRAS, "true");
+                builder.appendQueryParameter(Email.ADDRESS_BOOK_INDEX_EXTRAS, "true");
             }
         }
         builder.appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
@@ -94,13 +94,13 @@
         builder.appendQueryParameter(ContactsContract.REMOVE_DUPLICATE_ENTRIES, "true");
         loader.setUri(builder.build());
 
-        if (getContactNameDisplayOrder() == ContactsContract.Preferences.DISPLAY_ORDER_PRIMARY) {
+        if (getContactNameDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
             loader.setProjection(EmailQuery.PROJECTION_PRIMARY);
         } else {
             loader.setProjection(EmailQuery.PROJECTION_ALTERNATIVE);
         }
 
-        if (getSortOrder() == ContactsContract.Preferences.SORT_ORDER_PRIMARY) {
+        if (getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) {
             loader.setSortOrder(Email.SORT_KEY_PRIMARY);
         } else {
             loader.setSortOrder(Email.SORT_KEY_ALTERNATIVE);
@@ -122,9 +122,9 @@
     }
 
     @Override
-    protected View newView(Context context, int partition, Cursor cursor, int position,
-            ViewGroup parent) {
-        final ContactListItemView view = new ContactListItemView(context, null);
+    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;
@@ -158,16 +158,8 @@
             String title = (String)getSections()[section];
             view.setSectionHeader(title);
         } else {
-            view.setDividerVisible(false);
             view.setSectionHeader(null);
         }
-
-        // move the divider for the last item in a section
-        if (getPositionForSection(section + 1) - 1 == position) {
-            view.setDividerVisible(false);
-        } else {
-            view.setDividerVisible(true);
-        }
     }
 
     protected void bindName(final ContactListItemView view, Cursor cursor) {
@@ -184,7 +176,8 @@
              request = getDefaultImageRequestFromCursor(cursor, EmailQuery.EMAIL_DISPLAY_NAME,
                     EmailQuery.EMAIL_LOOKUP_KEY);
         }
-        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, request);
+        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, getCircularPhotos(),
+                request);
     }
 //
 //    protected void bindSearchSnippet(final ContactListItemView view, Cursor cursor) {
diff --git a/src/com/android/contacts/list/HeaderEntryContactListAdapter.java b/src/com/android/contacts/list/HeaderEntryContactListAdapter.java
new file mode 100644
index 0000000..a76a4a1
--- /dev/null
+++ b/src/com/android/contacts/list/HeaderEntryContactListAdapter.java
@@ -0,0 +1,117 @@
+/*
+ * 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.search_shortcut_background,
+                    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
index 88259c1..a9c9c94 100644
--- a/src/com/android/contacts/list/JoinContactListAdapter.java
+++ b/src/com/android/contacts/list/JoinContactListAdapter.java
@@ -34,6 +34,7 @@
 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 {
 
@@ -101,7 +102,7 @@
         loader.setUri(allContactsUri);
         loader.setSelection(Contacts._ID + "!=?");
         loader.setSelectionArgs(new String[]{ String.valueOf(mTargetContactId) });
-        if (getSortOrder() == ContactsContract.Preferences.SORT_ORDER_PRIMARY) {
+        if (getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) {
             loader.setSortOrder(Contacts.SORT_KEY_PRIMARY);
         } else {
             loader.setSortOrder(Contacts.SORT_KEY_ALTERNATIVE);
@@ -165,8 +166,8 @@
     }
 
     @Override
-    protected View newView(Context context, int partition, Cursor cursor, int position,
-            ViewGroup parent) {
+    protected ContactListItemView newView(
+            Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
         switch (partition) {
             case PARTITION_SUGGESTIONS:
             case PARTITION_ALL_CONTACTS:
diff --git a/src/com/android/contacts/list/LegacyContactListAdapter.java b/src/com/android/contacts/list/LegacyContactListAdapter.java
index defc4e7..27f0a8b 100644
--- a/src/com/android/contacts/list/LegacyContactListAdapter.java
+++ b/src/com/android/contacts/list/LegacyContactListAdapter.java
@@ -73,8 +73,8 @@
     }
 
     @Override
-    protected View newView(Context context, int partition, Cursor cursor, int position,
-            ViewGroup parent) {
+    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;
diff --git a/src/com/android/contacts/list/LegacyPhoneNumberListAdapter.java b/src/com/android/contacts/list/LegacyPhoneNumberListAdapter.java
index 6c310a6..85b9872 100644
--- a/src/com/android/contacts/list/LegacyPhoneNumberListAdapter.java
+++ b/src/com/android/contacts/list/LegacyPhoneNumberListAdapter.java
@@ -77,9 +77,10 @@
     }
 
     @Override
-    protected View newView(Context context, int partition, Cursor cursor, int position,
-            ViewGroup parent) {
-        final ContactListItemView view = new ContactListItemView(context, null);
+    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;
     }
@@ -106,6 +107,6 @@
             label = Phone.getTypeLabel(getContext().getResources(), type, customLabel);
         }
         view.setLabel(label);
-        view.showPhoneNumber(cursor, PHONE_NUMBER_COLUMN_INDEX);
+        view.setPhoneNumber(cursor.getString(PHONE_NUMBER_COLUMN_INDEX), /* countryIso */ null);
     }
 }
diff --git a/src/com/android/contacts/list/LegacyPostalAddressListAdapter.java b/src/com/android/contacts/list/LegacyPostalAddressListAdapter.java
index 2819ed6..86a4c4a 100644
--- a/src/com/android/contacts/list/LegacyPostalAddressListAdapter.java
+++ b/src/com/android/contacts/list/LegacyPostalAddressListAdapter.java
@@ -78,8 +78,8 @@
     }
 
     @Override
-    protected View newView(Context context, int partition, Cursor cursor, int position,
-            ViewGroup parent) {
+    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;
diff --git a/src/com/android/contacts/list/OnContactBrowserActionListener.java b/src/com/android/contacts/list/OnContactBrowserActionListener.java
index 6d28bac..d91fee4 100644
--- a/src/com/android/contacts/list/OnContactBrowserActionListener.java
+++ b/src/com/android/contacts/list/OnContactBrowserActionListener.java
@@ -36,31 +36,11 @@
     void onViewContactAction(Uri contactLookupUri);
 
     /**
-     * Creates a new contact.
-     */
-    void onCreateNewContactAction();
-
-    /**
-     * Opens the specified contact for editing.
-     */
-    void onEditContactAction(Uri contactLookupUri);
-
-    /**
      * Initiates the contact deletion process.
      */
     void onDeleteContactAction(Uri contactUri);
 
     /**
-     * Adds the specified contact to favorites
-     */
-    void onAddToFavoritesAction(Uri contactUri);
-
-    /**
-     * Removes the specified contact from favorites.
-     */
-    void onRemoveFromFavoritesAction(Uri contactUri);
-
-    /**
      * Closes the contact browser.
      */
     void onFinishAction();
diff --git a/src/com/android/contacts/list/PostalAddressListAdapter.java b/src/com/android/contacts/list/PostalAddressListAdapter.java
index 42c73bc..5194b69 100644
--- a/src/com/android/contacts/list/PostalAddressListAdapter.java
+++ b/src/com/android/contacts/list/PostalAddressListAdapter.java
@@ -23,7 +23,6 @@
 import android.net.Uri.Builder;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
-import android.provider.ContactsContract.ContactCounts;
 import android.provider.ContactsContract.Data;
 import android.view.View;
 import android.view.ViewGroup;
@@ -31,6 +30,7 @@
 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.
@@ -80,17 +80,17 @@
         final Builder builder = StructuredPostal.CONTENT_URI.buildUpon()
                 .appendQueryParameter(ContactsContract.REMOVE_DUPLICATE_ENTRIES, "true");
         if (isSectionHeaderDisplayEnabled()) {
-            builder.appendQueryParameter(ContactCounts.ADDRESS_BOOK_INDEX_EXTRAS, "true");
+            builder.appendQueryParameter(StructuredPostal.ADDRESS_BOOK_INDEX_EXTRAS, "true");
         }
         loader.setUri(builder.build());
 
-        if (getContactNameDisplayOrder() == ContactsContract.Preferences.DISPLAY_ORDER_PRIMARY) {
+        if (getContactNameDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
             loader.setProjection(PostalQuery.PROJECTION_PRIMARY);
         } else {
             loader.setProjection(PostalQuery.PROJECTION_ALTERNATIVE);
         }
 
-        if (getSortOrder() == ContactsContract.Preferences.SORT_ORDER_PRIMARY) {
+        if (getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) {
             loader.setSortOrder(StructuredPostal.SORT_KEY_PRIMARY);
         } else {
             loader.setSortOrder(StructuredPostal.SORT_KEY_ALTERNATIVE);
@@ -112,11 +112,12 @@
     }
 
     @Override
-    protected View newView(Context context, int partition, Cursor cursor, int position,
-            ViewGroup parent) {
-        final ContactListItemView view = new ContactListItemView(context, null);
+    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;
     }
 
@@ -148,16 +149,8 @@
             String title = (String)getSections()[section];
             view.setSectionHeader(title);
         } else {
-            view.setDividerVisible(false);
             view.setSectionHeader(null);
         }
-
-        // move the divider for the last item in a section
-        if (getPositionForSection(section + 1) - 1 == position) {
-            view.setDividerVisible(false);
-        } else {
-            view.setDividerVisible(true);
-        }
     }
 
     protected void bindName(final ContactListItemView view, Cursor cursor) {
@@ -176,7 +169,8 @@
                     PostalQuery.POSTAL_LOOKUP_KEY);
         }
 
-        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, request);
+        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, getCircularPhotos(),
+                request);
     }
 //
 //    protected void bindSearchSnippet(final ContactListItemView view, Cursor cursor) {
diff --git a/src/com/android/contacts/preference/DisplayOptionsPreferenceFragment.java b/src/com/android/contacts/preference/DisplayOptionsPreferenceFragment.java
deleted file mode 100644
index 02177d2..0000000
--- a/src/com/android/contacts/preference/DisplayOptionsPreferenceFragment.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.preference;
-
-import android.os.Bundle;
-import android.preference.PreferenceFragment;
-
-import com.android.contacts.R;
-
-/**
- * This fragment shows the preferences for the first header.
- */
-public class DisplayOptionsPreferenceFragment extends PreferenceFragment {
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        // Load the preferences from an XML resource
-        addPreferencesFromResource(R.xml.preference_display_options);
-    }
-}
-
diff --git a/src/com/android/contacts/preference/DisplayOrderPreference.java b/src/com/android/contacts/preference/DisplayOrderPreference.java
deleted file mode 100644
index 81489a0..0000000
--- a/src/com/android/contacts/preference/DisplayOrderPreference.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.preference;
-
-import android.app.AlertDialog.Builder;
-import android.content.Context;
-import android.preference.ListPreference;
-import android.provider.ContactsContract;
-import android.util.AttributeSet;
-
-import com.android.contacts.R;
-import com.android.contacts.common.preference.ContactsPreferences;
-
-/**
- * Custom preference: view-name-as (first name first or last name first).
- */
-public final class DisplayOrderPreference extends ListPreference {
-
-    private ContactsPreferences mPreferences;
-    private Context mContext;
-
-    public DisplayOrderPreference(Context context) {
-        super(context);
-        prepare();
-    }
-
-    public DisplayOrderPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        prepare();
-    }
-
-    private void prepare() {
-        mContext = getContext();
-        mPreferences = new ContactsPreferences(mContext);
-        setEntries(new String[]{
-                mContext.getString(R.string.display_options_view_given_name_first),
-                mContext.getString(R.string.display_options_view_family_name_first),
-        });
-        setEntryValues(new String[]{
-                String.valueOf(ContactsContract.Preferences.DISPLAY_ORDER_PRIMARY),
-                String.valueOf(ContactsContract.Preferences.DISPLAY_ORDER_ALTERNATIVE),
-        });
-        setValue(String.valueOf(mPreferences.getDisplayOrder()));
-    }
-
-    @Override
-    protected boolean shouldPersist() {
-        return false;   // This preference takes care of its own storage
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        switch (mPreferences.getDisplayOrder()) {
-            case ContactsContract.Preferences.DISPLAY_ORDER_PRIMARY:
-                return mContext.getString(R.string.display_options_view_given_name_first);
-            case ContactsContract.Preferences.DISPLAY_ORDER_ALTERNATIVE:
-                return mContext.getString(R.string.display_options_view_family_name_first);
-        }
-        return null;
-    }
-
-    @Override
-    protected boolean persistString(String value) {
-        int newValue = Integer.parseInt(value);
-        if (newValue != mPreferences.getDisplayOrder()) {
-            mPreferences.setDisplayOrder(newValue);
-            notifyChanged();
-        }
-        return true;
-    }
-
-    @Override
-    // UX recommendation is not to show cancel button on such lists.
-    protected void onPrepareDialogBuilder(Builder builder) {
-        super.onPrepareDialogBuilder(builder);
-        builder.setNegativeButton(null, null);
-    }
-}
diff --git a/src/com/android/contacts/preference/SortOrderPreference.java b/src/com/android/contacts/preference/SortOrderPreference.java
deleted file mode 100644
index da51eed..0000000
--- a/src/com/android/contacts/preference/SortOrderPreference.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.preference;
-
-import android.app.AlertDialog.Builder;
-import android.content.Context;
-import android.preference.ListPreference;
-import android.provider.ContactsContract;
-import android.util.AttributeSet;
-
-import com.android.contacts.R;
-import com.android.contacts.common.preference.ContactsPreferences;
-
-/**
- * Custom preference: sort-by.
- */
-public final class SortOrderPreference extends ListPreference {
-
-    private ContactsPreferences mPreferences;
-    private Context mContext;
-
-    public SortOrderPreference(Context context) {
-        super(context);
-        prepare();
-    }
-
-    public SortOrderPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        prepare();
-    }
-
-    private void prepare() {
-        mContext = getContext();
-        mPreferences = new ContactsPreferences(mContext);
-        setEntries(new String[]{
-                mContext.getString(R.string.display_options_sort_by_given_name),
-                mContext.getString(R.string.display_options_sort_by_family_name),
-        });
-        setEntryValues(new String[]{
-                String.valueOf(ContactsContract.Preferences.SORT_ORDER_PRIMARY),
-                String.valueOf(ContactsContract.Preferences.SORT_ORDER_ALTERNATIVE),
-        });
-        setValue(String.valueOf(mPreferences.getSortOrder()));
-    }
-
-    @Override
-    protected boolean shouldPersist() {
-        return false;   // This preference takes care of its own storage
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        switch (mPreferences.getSortOrder()) {
-            case ContactsContract.Preferences.SORT_ORDER_PRIMARY:
-                return mContext.getString(R.string.display_options_sort_by_given_name);
-            case ContactsContract.Preferences.SORT_ORDER_ALTERNATIVE:
-                return mContext.getString(R.string.display_options_sort_by_family_name);
-        }
-        return null;
-    }
-
-    @Override
-    protected boolean persistString(String value) {
-        int newValue = Integer.parseInt(value);
-        if (newValue != mPreferences.getSortOrder()) {
-            mPreferences.setSortOrder(newValue);
-            notifyChanged();
-        }
-        return true;
-    }
-
-    @Override
-    // UX recommendation is not to show cancel button on such lists.
-    protected void onPrepareDialogBuilder(Builder builder) {
-        super.onPrepareDialogBuilder(builder);
-        builder.setNegativeButton(null, null);
-    }
-}
diff --git a/src/com/android/contacts/quickcontact/Action.java b/src/com/android/contacts/quickcontact/Action.java
index fa23286..7d904ab 100644
--- a/src/com/android/contacts/quickcontact/Action.java
+++ b/src/com/android/contacts/quickcontact/Action.java
@@ -45,7 +45,10 @@
     public Intent getAlternateIntent();
 
     /** Checks if the contact data for this action is primary. */
-    public Boolean isPrimary();
+    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
@@ -61,4 +64,14 @@
 
     /** 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/DataAction.java b/src/com/android/contacts/quickcontact/DataAction.java
index e29b3ef..b590814 100644
--- a/src/com/android/contacts/quickcontact/DataAction.java
+++ b/src/com/android/contacts/quickcontact/DataAction.java
@@ -29,9 +29,9 @@
 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.R;
 import com.android.contacts.common.MoreContactUtils;
 import com.android.contacts.common.model.account.AccountType.EditType;
 import com.android.contacts.common.model.dataitem.DataItem;
@@ -55,6 +55,8 @@
     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;
@@ -67,6 +69,7 @@
     private Uri mDataUri;
     private long mDataId;
     private boolean mIsPrimary;
+    private boolean mIsSuperPrimary;
 
     /**
      * Create an action from common {@link Data} elements.
@@ -75,6 +78,8 @@
         mContext = context;
         mKind = kind;
         mMimeType = item.getMimeType();
+        mTimesUsed = item.getTimesUsed();
+        mLastTimeUsed = item.getLastTimeUsed();
 
         // Determine type for subtitle
         mSubtitle = "";
@@ -96,7 +101,8 @@
             }
         }
 
-        mIsPrimary = item.isSuperPrimary();
+        mIsPrimary = item.isPrimary();
+        mIsSuperPrimary = item.isSuperPrimary();
         mBody = item.buildDataStringForDisplay(context, kind);
 
         mDataId = item.getId();
@@ -265,11 +271,16 @@
     }
 
     @Override
-    public Boolean isPrimary() {
+    public boolean isPrimary() {
         return mIsPrimary;
     }
 
     @Override
+    public boolean isSuperPrimary() {
+        return mIsSuperPrimary;
+    }
+
+    @Override
     public Drawable getAlternateIcon() {
         if (mAlternateIconRes == 0) return null;
 
@@ -304,7 +315,7 @@
     }
 
     @Override
-    public boolean shouldCollapseWith(Action t) {
+    public boolean shouldCollapseWith(Action t, Context context) {
         if (t == null) {
             return false;
         }
@@ -322,4 +333,14 @@
         }
         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..d483af3
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/DirectoryContactUtil.java
@@ -0,0 +1,83 @@
+package com.android.contacts.quickcontact;
+
+import com.android.contacts.ContactSaveService;
+import com.android.contacts.R;
+import com.android.contacts.common.editor.SelectAccountDialogFragment;
+import com.android.contacts.common.model.AccountTypeManager;
+import com.android.contacts.common.model.Contact;
+import com.android.contacts.common.model.account.AccountWithDataSet;
+import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
+import com.android.contacts.quickcontact.QuickContactActivity.SelectAccountDialogFragmentListener;
+
+import android.app.FragmentManager;
+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;
+import java.util.List;
+
+/**
+ * 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 addToMyContacts(Contact contactData, Context context,
+            FragmentManager fragmentManager,
+            SelectAccountDialogFragmentListener selectAccountCallbacks) {
+        int exportSupport = contactData.getDirectoryExportSupport();
+        switch (exportSupport) {
+            case Directory.EXPORT_SUPPORT_SAME_ACCOUNT_ONLY: {
+                createCopy(contactData.getContentValues(),
+                        new AccountWithDataSet(contactData.getDirectoryAccountName(),
+                        contactData.getDirectoryAccountType(), null),
+                        context);
+                break;
+            }
+            case Directory.EXPORT_SUPPORT_ANY_ACCOUNT: {
+                final List<AccountWithDataSet> accounts =
+                        AccountTypeManager.getInstance(context).getAccounts(true);
+                if (accounts.isEmpty()) {
+                    createCopy(contactData.getContentValues(), null, context);
+                    return;  // Don't show a dialog.
+                }
+
+                // In the common case of a single writable account, auto-select
+                // it without showing a dialog.
+                if (accounts.size() == 1) {
+                    createCopy(contactData.getContentValues(), accounts.get(0), context);
+                    return;  // Don't show a dialog.
+                }
+
+                SelectAccountDialogFragment.show(fragmentManager,
+                        selectAccountCallbacks, R.string.dialog_new_contact_account,
+                        AccountListFilter.ACCOUNTS_CONTACT_WRITABLE, null);
+                break;
+            }
+        }
+    }
+
+    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..7501bb8
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
@@ -0,0 +1,884 @@
+/*
+ * 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.ObjectAnimator;
+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.support.v7.widget.CardView;
+import android.text.TextUtils;
+import android.transition.ChangeBounds;
+import android.transition.ChangeScroll;
+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.view.ContextMenu.ContextMenuInfo;
+import android.view.LayoutInflater;
+import android.view.TouchDelegate;
+import android.view.View;
+import android.view.View.OnCreateContextMenuListener;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.android.contacts.R;
+
+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 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;
+
+    /**
+     * Entry data.
+     */
+    public static final class Entry {
+
+        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 final Intent mIntent;
+        private final Drawable mAlternateIcon;
+        private final Intent mAlternateIntent;
+        private final String mAlternateContentDescription;
+        private final boolean mShouldApplyColor;
+        private final boolean mIsEditable;
+        private final EntryContextMenuInfo mEntryContextMenuInfo;
+
+        public Entry(int id, Drawable icon, String header, String subHeader, String text,
+                Intent intent, Drawable alternateIcon, Intent alternateIntent,
+                String alternateContentDescription, boolean shouldApplyColor,
+                boolean isEditable, EntryContextMenuInfo entryContextMenuInfo) {
+            this(id, icon, header, subHeader, null, text, null, intent, alternateIcon,
+                    alternateIntent, alternateContentDescription, shouldApplyColor, isEditable,
+                    entryContextMenuInfo);
+        }
+
+        public Entry(int id, Drawable mainIcon, String header, String subHeader,
+                Drawable subHeaderIcon, String text, Drawable textIcon, Intent intent,
+                Drawable alternateIcon, Intent alternateIntent, String alternateContentDescription,
+                boolean shouldApplyColor, boolean isEditable,
+                EntryContextMenuInfo entryContextMenuInfo) {
+            mId = id;
+            mIcon = mainIcon;
+            mHeader = header;
+            mSubHeader = subHeader;
+            mSubHeaderIcon = subHeaderIcon;
+            mText = text;
+            mTextIcon = textIcon;
+            mIntent = intent;
+            mAlternateIcon = alternateIcon;
+            mAlternateIntent = alternateIntent;
+            mAlternateContentDescription = alternateContentDescription;
+            mShouldApplyColor = shouldApplyColor;
+            mIsEditable = isEditable;
+            mEntryContextMenuInfo = entryContextMenuInfo;
+        }
+
+        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;
+        }
+
+        Intent getIntent() {
+            return mIntent;
+        }
+
+        Drawable getAlternateIcon() {
+            return mAlternateIcon;
+        }
+
+        Intent getAlternateIntent() {
+            return mAlternateIntent;
+        }
+
+        String getAlternateContentDescription() {
+            return mAlternateContentDescription;
+        }
+
+        boolean shouldApplyColor() {
+            return mShouldApplyColor;
+        }
+
+        boolean isEditable() {
+            return mIsEditable;
+        }
+
+        int getId() {
+            return mId;
+        }
+
+        EntryContextMenuInfo getEntryContextMenuInfo() {
+            return mEntryContextMenuInfo;
+        }
+    }
+
+    public interface ExpandingEntryCardViewListener {
+        void onCollapse(int heightDelta);
+        void onExpand(int heightDelta);
+    }
+
+    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;
+    private boolean mIsAlwaysExpanded;
+    /** The ViewGroup to run the expand/collapse animation on */
+    private ViewGroup mAnimationViewGroup;
+    private LinearLayout mBadgeContainer;
+    private final List<ImageView> mBadges;
+    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);
+
+        mBadges = new ArrayList<ImageView>();
+    }
+
+    /**
+     * 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) {
+        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;
+        for (List<Entry> entryList : mEntries) {
+            mNumEntries += entryList.size();
+            mEntryViews.add(new ArrayList<View>());
+        }
+        mCollapsedEntriesCount = Math.min(numInitialVisibleEntries, mNumEntries);
+        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 void insertEntriesIntoViewGroup() {
+        mEntriesViewGroup.removeAllViews();
+
+        if (mIsExpanded) {
+            for (List<View> viewList : mEntryViews) {
+                if (viewList != mEntryViews.get(0)) {
+                    addSeparator(viewList.get(0));
+                }
+                for (View view : viewList) {
+                    addEntry(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) {
+                    addSeparator(entryViewList.get(0));
+                }
+                addEntry(entryViewList.get(0));
+                numInViewGroup++;
+                // Insert entries in this list to hit mCollapsedEntriesCount.
+                for (int j = 1;
+                        j < entryViewList.size() && numInViewGroup < mCollapsedEntriesCount &&
+                        extraEntries > 0;
+                        j++) {
+                    addEntry(entryViewList.get(j));
+                    numInViewGroup++;
+                    extraEntries--;
+                }
+            }
+        }
+
+        removeView(mExpandCollapseButton);
+        if (mCollapsedEntriesCount < mNumEntries
+                && mExpandCollapseButton.getParent() == null && !mIsAlwaysExpanded) {
+            mContainer.addView(mExpandCollapseButton, -1);
+        }
+    }
+
+    private void addEntry(View entry) {
+        // If no title and the first entry in the group, add extra padding
+        if (TextUtils.isEmpty(mTitleTextView.getText()) &&
+                mEntriesViewGroup.getChildCount() == 0) {
+            entry.setPadding(entry.getPaddingLeft(),
+                    entry.getPaddingTop() + getResources().getDimensionPixelSize(
+                            R.dimen.expanding_entry_card_null_title_top_extra_padding),
+                    entry.getPaddingRight(),
+                    entry.getPaddingBottom());
+        }
+        mEntriesViewGroup.addView(entry);
+    }
+
+    private void addSeparator(View entry) {
+        View separator = new View(getContext());
+        Resources res = getResources();
+
+        separator.setBackgroundColor(res.getColor(
+                R.color.expanding_entry_card_item_separator_color));
+        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
+                ViewGroup.LayoutParams.MATCH_PARENT,
+                res.getDimensionPixelSize(R.dimen.expanding_entry_card_item_separator_height));
+        // 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);
+        mEntriesViewGroup.addView(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++;
+                // Inflate entries in this list to hit mCollapsedEntriesCount.
+                for (int j = 1; j < entryList.size() && numInflated < mCollapsedEntriesCount &&
+                        extraEntries > 0; j++) {
+                    entryViewList.add(createEntryView(layoutInflater, entryList.get(j),
+                            /* showIcon = */ View.VISIBLE));
+                    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);
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * 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.setColorFilter(mThemeColorFilter);
+                            }
+                        }
+                        Drawable alternateIcon = entry.getAlternateIcon();
+                        if (alternateIcon != null) {
+                            alternateIcon.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());
+
+        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 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);
+        }
+
+        final ImageView alternateIcon = (ImageView) view.findViewById(R.id.icon_alternate);
+        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());
+
+            // Expand the clickable area for alternate icon to be top to bottom and to end edge
+            // of the entry view
+            view.post(new Runnable() {
+                @Override
+                public void run() {
+                    final Rect alternateIconRect = new Rect();
+                    alternateIcon.getHitRect(alternateIconRect);
+
+                    alternateIconRect.bottom = view.getHeight();
+                    alternateIconRect.top = 0;
+                    if (getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
+                        alternateIconRect.left = 0;
+                    } else {
+                        alternateIconRect.right = view.getWidth();
+                    }
+                    final TouchDelegate touchDelegate =
+                            new TouchDelegate(alternateIconRect, alternateIcon);
+                    view.setTouchDelegate(touchDelegate);
+                }
+            });
+        }
+
+        // Decrease margin for entries that have an invisible icon
+        if (iconVisibility == View.INVISIBLE) {
+            view.setPaddingRelative(view.getPaddingStart(), 0, view.getPaddingEnd(),
+                    view.getPaddingBottom());
+        }
+
+
+        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 {
+            // Inflate badges if not yet created
+            if (mBadges.size() < mEntries.size() - mCollapsedEntriesCount) {
+                for (int i = mCollapsedEntriesCount; i < mEntries.size(); i++) {
+                    Drawable badgeDrawable = mEntries.get(i).get(0).getIcon();
+                    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);
+                    }
+                }
+            }
+            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);
+
+        final ViewGroup transitionViewContainer = mAnimationViewGroup == null ?
+                this : mAnimationViewGroup;
+
+        transitionSet.addListener(new TransitionListener() {
+            @Override
+            public void onTransitionStart(Transition transition) {
+                // The listener is used to turn off suppressing, the proper delta is not necessary
+                mListener.onExpand(0);
+            }
+
+            @Override
+            public void onTransitionEnd(Transition transition) {
+            }
+
+            @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 int startingHeight = mEntriesViewGroup.getMeasuredHeight();
+        mIsExpanded = false;
+        updateExpandCollapseButton(getExpandButtonText(),
+                DURATION_COLLAPSE_ANIMATION_CHANGE_BOUNDS);
+
+        final ChangeBounds boundsTransition = new ChangeBounds();
+        boundsTransition.setDuration(DURATION_COLLAPSE_ANIMATION_CHANGE_BOUNDS);
+
+        final ChangeScroll scrollTransition = new ChangeScroll();
+        scrollTransition.setDuration(DURATION_COLLAPSE_ANIMATION_CHANGE_BOUNDS);
+
+        TransitionSet transitionSet = new TransitionSet();
+        transitionSet.addTransition(boundsTransition);
+        transitionSet.addTransition(scrollTransition);
+
+        final ViewGroup transitionViewContainer = mAnimationViewGroup == null ?
+                this : mAnimationViewGroup;
+
+        boundsTransition.addListener(new TransitionListener() {
+            @Override
+            public void onTransitionStart(Transition transition) {
+                /*
+                 * onTransitionStart is called after the view hierarchy has been changed but before
+                 * the animation begins.
+                 */
+                int finishingHeight = mEntriesViewGroup.getMeasuredHeight();
+                mListener.onCollapse(startingHeight - finishingHeight);
+            }
+
+            @Override
+            public void onTransitionEnd(Transition transition) {
+            }
+
+            @Override
+            public void onTransitionCancel(Transition transition) {
+            }
+
+            @Override
+            public void onTransitionPause(Transition transition) {
+            }
+
+            @Override
+            public void onTransitionResume(Transition transition) {
+            }
+        });
+
+        TransitionManager.beginDelayedTransition(transitionViewContainer, transitionSet);
+
+        insertEntriesIntoViewGroup();
+    }
+
+    /**
+     * 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;
+
+        public EntryContextMenuInfo(String copyText, String copyLabel) {
+            mCopyText = copyText;
+            mCopyLabel = copyLabel;
+        }
+
+        public String getCopyText() {
+            return mCopyText;
+        }
+
+        public String getCopyLabel() {
+            return mCopyLabel;
+        }
+    }
+
+    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;
+        }
+    }
+}
diff --git a/src/com/android/contacts/quickcontact/FloatingChildLayout.java b/src/com/android/contacts/quickcontact/FloatingChildLayout.java
deleted file mode 100644
index 555f948..0000000
--- a/src/com/android/contacts/quickcontact/FloatingChildLayout.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.quickcontact;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.ObjectAnimator;
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.Rect;
-import android.graphics.drawable.ColorDrawable;
-import android.graphics.drawable.Drawable;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.animation.AnimationUtils;
-import android.widget.FrameLayout;
-import android.widget.PopupWindow;
-
-import com.android.contacts.R;
-import com.android.contacts.test.NeededForReflection;
-import com.android.contacts.util.SchedulingUtils;
-
-/**
- * Layout containing single child {@link View} which it attempts to center
- * around {@link #setChildTargetScreen(Rect)}.
- * <p>
- * Updates drawable state to be {@link android.R.attr#state_first} when child is
- * above target, and {@link android.R.attr#state_last} when child is below
- * target. Also updates {@link Drawable#setLevel(int)} on child
- * {@link View#getBackground()} to reflect horizontal center of target.
- * <p>
- * The reason for this approach is because target {@link Rect} is in screen
- * coordinates disregarding decor insets; otherwise something like
- * {@link PopupWindow} might work better.
- */
-public class FloatingChildLayout extends FrameLayout {
-    private static final String TAG = "FloatingChildLayout";
-    private int mFixedTopPosition;
-    private View mChild;
-    private Rect mTargetScreen = new Rect();
-    private final int mAnimationDuration;
-
-    /** The phase of the background dim. This is one of the values of {@link BackgroundPhase}  */
-    private int mBackgroundPhase = BackgroundPhase.BEFORE;
-
-    private ObjectAnimator mBackgroundAnimator = ObjectAnimator.ofInt(this,
-            "backgroundColorAlpha", 0, DIM_BACKGROUND_ALPHA);
-
-    private interface BackgroundPhase {
-        public static final int BEFORE = 0;
-        public static final int APPEARING_OR_VISIBLE = 1;
-        public static final int DISAPPEARING_OR_GONE = 3;
-    }
-
-    /** The phase of the contents window. This is one of the values of {@link ForegroundPhase}  */
-    private int mForegroundPhase = ForegroundPhase.BEFORE;
-
-    private interface ForegroundPhase {
-        public static final int BEFORE = 0;
-        public static final int APPEARING = 1;
-        public static final int IDLE = 2;
-        public static final int DISAPPEARING = 3;
-        public static final int AFTER = 4;
-    }
-
-    // Black, 50% alpha as per the system default.
-    private static final int DIM_BACKGROUND_ALPHA = 0x7F;
-
-    public FloatingChildLayout(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        final Resources resources = getResources();
-        mFixedTopPosition =
-                resources.getDimensionPixelOffset(R.dimen.quick_contact_top_position);
-        mAnimationDuration = resources.getInteger(android.R.integer.config_shortAnimTime);
-
-        super.setBackground(new ColorDrawable(0));
-    }
-
-    @Override
-    protected void onFinishInflate() {
-        mChild = findViewById(android.R.id.content);
-        mChild.setDuplicateParentStateEnabled(true);
-
-        // this will be expanded in showChild()
-        mChild.setScaleX(0.5f);
-        mChild.setScaleY(0.5f);
-        mChild.setAlpha(0.0f);
-    }
-
-    public View getChild() {
-        return mChild;
-    }
-
-    /**
-     * FloatingChildLayout manages its own background, don't set it.
-     */
-    @Override
-    public void setBackground(Drawable background) {
-        Log.wtf(TAG, "don't setBackground(), it is managed internally");
-    }
-
-    /**
-     * Set {@link Rect} in screen coordinates that {@link #getChild()} should be
-     * centered around.
-     */
-    public void setChildTargetScreen(Rect targetScreen) {
-        mTargetScreen = targetScreen;
-        requestLayout();
-    }
-
-    /**
-     * Return {@link #mTargetScreen} in local window coordinates, taking any
-     * decor insets into account.
-     */
-    private Rect getTargetInWindow() {
-        final Rect windowScreen = new Rect();
-        getWindowVisibleDisplayFrame(windowScreen);
-
-        final Rect target = new Rect(mTargetScreen);
-        target.offset(-windowScreen.left, -windowScreen.top);
-        return target;
-    }
-
-    @Override
-    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
-
-        final View child = mChild;
-        final Rect target = getTargetInWindow();
-
-        final int childWidth = child.getMeasuredWidth();
-        final int childHeight = child.getMeasuredHeight();
-
-        if (mFixedTopPosition != -1) {
-            // Horizontally centered, vertically fixed position
-            final int childLeft = (getWidth() - childWidth) / 2;
-            final int childTop = mFixedTopPosition;
-            layoutChild(child, childLeft, childTop);
-        } else {
-            // default is centered horizontally around target...
-            final int childLeft = target.centerX() - (childWidth / 2);
-            // ... and vertically aligned a bit below centered
-            final int childTop = target.centerY() - Math.round(childHeight * 0.35f);
-
-            // when child is outside bounds, nudge back inside
-            final int clampedChildLeft = clampDimension(childLeft, childWidth, getWidth());
-            final int clampedChildTop = clampDimension(childTop, childHeight, getHeight());
-
-            layoutChild(child, clampedChildLeft, clampedChildTop);
-        }
-    }
-
-    private static int clampDimension(int value, int size, int max) {
-        // when larger than bounds, just center
-        if (size > max) {
-            return (max - size) / 2;
-        }
-
-        // clamp to bounds
-        return Math.min(Math.max(value, 0), max - size);
-    }
-
-    private static void layoutChild(View child, int left, int top) {
-        child.layout(left, top, left + child.getMeasuredWidth(), top + child.getMeasuredHeight());
-    }
-
-    @NeededForReflection
-    public void setBackgroundColorAlpha(int alpha) {
-        setBackgroundColor(alpha << 24);
-    }
-
-    public void fadeInBackground() {
-        if (mBackgroundPhase == BackgroundPhase.BEFORE) {
-            mBackgroundPhase = BackgroundPhase.APPEARING_OR_VISIBLE;
-
-            createChildLayer();
-
-            SchedulingUtils.doAfterDraw(this, new Runnable() {
-                @Override
-                public void run() {
-                    mBackgroundAnimator.setDuration(mAnimationDuration).start();
-                }
-            });
-        }
-    }
-
-    public void fadeOutBackground() {
-        if (mBackgroundPhase == BackgroundPhase.APPEARING_OR_VISIBLE) {
-            mBackgroundPhase = BackgroundPhase.DISAPPEARING_OR_GONE;
-            if (mBackgroundAnimator.isRunning()) {
-                mBackgroundAnimator.reverse();
-            } else {
-                ObjectAnimator.ofInt(this, "backgroundColorAlpha", DIM_BACKGROUND_ALPHA, 0).
-                        setDuration(mAnimationDuration).start();
-            }
-        }
-    }
-
-    public boolean isContentFullyVisible() {
-        return mForegroundPhase == ForegroundPhase.IDLE;
-    }
-
-    /** Begin animating {@link #getChild()} visible. */
-    public void showContent(final Runnable onAnimationEndRunnable) {
-        if (mForegroundPhase == ForegroundPhase.BEFORE) {
-            mForegroundPhase = ForegroundPhase.APPEARING;
-            animateScale(false, onAnimationEndRunnable);
-        }
-    }
-
-    /**
-     * Begin animating {@link #getChild()} invisible. Returns false if animation is not valid in
-     * this state
-     */
-    public boolean hideContent(final Runnable onAnimationEndRunnable) {
-        if (mForegroundPhase == ForegroundPhase.APPEARING ||
-                mForegroundPhase == ForegroundPhase.IDLE) {
-            mForegroundPhase = ForegroundPhase.DISAPPEARING;
-
-            createChildLayer();
-
-            animateScale(true, onAnimationEndRunnable);
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    private void createChildLayer() {
-        mChild.invalidate();
-        mChild.setLayerType(LAYER_TYPE_HARDWARE, null);
-        mChild.buildLayer();
-    }
-
-    /** Creates the open/close animation */
-    private void animateScale(
-            final boolean isExitAnimation,
-            final Runnable onAnimationEndRunnable) {
-        mChild.setPivotX(mTargetScreen.centerX() - mChild.getLeft());
-        mChild.setPivotY(mTargetScreen.centerY() - mChild.getTop());
-
-        final int scaleInterpolator = isExitAnimation
-                ? android.R.interpolator.accelerate_quint
-                : android.R.interpolator.decelerate_quint;
-        final float scaleTarget = isExitAnimation ? 0.5f : 1.0f;
-
-        mChild.animate()
-                .setDuration(mAnimationDuration)
-                .setInterpolator(AnimationUtils.loadInterpolator(getContext(), scaleInterpolator))
-                .scaleX(scaleTarget)
-                .scaleY(scaleTarget)
-                .alpha(isExitAnimation ? 0.0f : 1.0f)
-                .setListener(new AnimatorListenerAdapter() {
-                    @Override
-                    public void onAnimationEnd(Animator animation) {
-                        mChild.setLayerType(LAYER_TYPE_NONE, null);
-                        if (isExitAnimation) {
-                            if (mForegroundPhase == ForegroundPhase.DISAPPEARING) {
-                                mForegroundPhase = ForegroundPhase.AFTER;
-                                if (onAnimationEndRunnable != null) onAnimationEndRunnable.run();
-                            }
-                        } else {
-                            if (mForegroundPhase == ForegroundPhase.APPEARING) {
-                                mForegroundPhase = ForegroundPhase.IDLE;
-                                if (onAnimationEndRunnable != null) onAnimationEndRunnable.run();
-                            }
-                        }
-                    }
-                });
-    }
-
-    private View.OnTouchListener mOutsideTouchListener;
-
-    public void setOnOutsideTouchListener(View.OnTouchListener listener) {
-        mOutsideTouchListener = listener;
-    }
-
-    @Override
-    public boolean onTouchEvent(MotionEvent event) {
-        // at this point, touch wasn't handled by child view; assume outside
-        if (mOutsideTouchListener != null) {
-            return mOutsideTouchListener.onTouch(this, event);
-        }
-        return false;
-    }
-}
diff --git a/src/com/android/contacts/quickcontact/InvisibleContactUtil.java b/src/com/android/contacts/quickcontact/InvisibleContactUtil.java
new file mode 100644
index 0000000..3609fbc
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/InvisibleContactUtil.java
@@ -0,0 +1,113 @@
+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);
+        context.startService(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
index e950fcb..357cae6 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -16,196 +16,677 @@
 
 package com.android.contacts.quickcontact;
 
+import android.animation.ArgbEvaluator;
+import android.animation.ObjectAnimator;
 import android.app.Activity;
 import android.app.Fragment;
-import android.app.FragmentManager;
 import android.app.LoaderManager.LoaderCallbacks;
+import android.app.SearchManager;
 import android.content.ActivityNotFoundException;
 import android.content.ContentUris;
-import android.content.Context;
+import android.content.ContentValues;
 import android.content.Intent;
 import android.content.Loader;
 import android.content.pm.PackageManager;
-import android.graphics.Rect;
+import android.content.pm.ResolveInfo;
+import android.graphics.Bitmap;
+import android.graphics.Color;
+import android.graphics.Point;
+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.ParseException;
 import android.net.Uri;
+import android.net.WebAddress;
+import android.os.AsyncTask;
 import android.os.Bundle;
-import android.os.Handler;
+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.DisplayNameSources;
-import android.provider.ContactsContract.Intents.Insert;
-import android.provider.ContactsContract.Directory;
+import android.provider.ContactsContract.DataUsageFeedback;
 import android.provider.ContactsContract.QuickContact;
 import android.provider.ContactsContract.RawContacts;
-import android.support.v13.app.FragmentPagerAdapter;
-import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.support.v4.view.ViewPager.SimpleOnPageChangeListener;
+import android.support.v7.graphics.Palette;
+import android.telecomm.TelecommManager;
 import android.text.TextUtils;
 import android.util.Log;
-import android.view.MotionEvent;
+import android.util.Pair;
+import android.view.ContextMenu;
+import android.view.ContextMenu.ContextMenuInfo;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
 import android.view.View;
 import android.view.View.OnClickListener;
-import android.view.ViewGroup;
+import android.view.View.OnCreateContextMenuListener;
 import android.view.WindowManager;
-import android.widget.HorizontalScrollView;
 import android.widget.ImageView;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
 import android.widget.Toast;
+import android.widget.Toolbar;
 
 import com.android.contacts.ContactSaveService;
-import com.android.contacts.common.Collapser;
+import com.android.contacts.ContactsActivity;
+import com.android.contacts.NfcHandler;
 import com.android.contacts.R;
+import com.android.contacts.common.CallUtil;
+import com.android.contacts.common.ClipboardUtils;
+import com.android.contacts.common.Collapser;
+import com.android.contacts.common.ContactsUtils;
+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.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.util.Constants;
-import com.android.contacts.common.util.DataStatus;
-import com.android.contacts.common.util.UriUtils;
+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.util.DateUtils;
+import com.android.contacts.common.util.MaterialColorMapUtils;
+import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
+import com.android.contacts.common.util.ViewUtil;
+import com.android.contacts.detail.ContactDisplayUtils;
+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.util.ImageViewDrawableSetter;
+import com.android.contacts.util.PhoneCapabilityTester;
 import com.android.contacts.util.SchedulingUtils;
-import com.android.contacts.common.util.StopWatch;
+import com.android.contacts.util.StructuredPostalUtils;
+import com.android.contacts.widget.MultiShrinkScroller;
+import com.android.contacts.widget.MultiShrinkScroller.MultiShrinkScrollerListener;
+
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
 
+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.Set;
-
-// TODO: Save selected tab index during rotation
+import java.util.Map;
 
 /**
  * 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 Activity {
+public class QuickContactActivity extends ContactsActivity {
+
+    /**
+     * 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;
+
     private static final String TAG = "QuickContact";
 
-    private static final boolean TRACE_LAUNCH = false;
-    private static final String TRACE_TAG = "quickcontact";
-    private static final int POST_DRAW_WAIT_DURATION = 60;
-    private static final boolean ENABLE_STOPWATCH = false;
+    private static final String KEY_THEME_COLOR = "theme_color";
 
+    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(0xB2, 0, 0, 0);
+    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 INTENT_DATA_GPLUS_PROFILE_ADD_TO_CIRCLE = "Add to circle";
+    private static final String MIMETYPE_HANGOUTS =
+            "vnd.android.cursor.item/vnd.googleplus.profile.comm";
+    private static final String INTENT_DATA_HANGOUTS_VIDEO = "Start video call";
+
     private Uri mLookupUri;
     private String[] mExcludeMimes;
-    private List<String> mSortedActionMimeTypes = Lists.newArrayList();
-
-    private FloatingChildLayout mFloatingLayout;
-
-    private View mPhotoContainer;
-    private ViewGroup mTrack;
-    private HorizontalScrollView mTrackScroller;
-    private View mSelectedTabRectangle;
-    private View mLineAfterTrack;
+    private int mExtraMode;
+    private int mStatusBarColor;
+    private boolean mHasAlreadyBeenOpened;
 
     private ImageView mPhotoView;
-    private ImageView mOpenDetailsOrAddContactImage;
-    private ImageView mStarImage;
-    private ViewPager mListPager;
-    private ViewPagerAdapter mPagerAdapter;
+    private View mTransparentView;
+    private ExpandingEntryCardView mContactCard;
+    private ExpandingEntryCardView mNoContactDetailsCard;
+    private ExpandingEntryCardView mRecentCard;
+    private ExpandingEntryCardView mAboutCard;
+    /**
+     * This list contains all the {@link DataItem}s. Each nested list contains all data items of a
+     * specific mimetype in sorted order, using mWithinMimeTypeDataItemComparator. The mimetype
+     * lists are sorted using mAmongstMimeTypeDataItemComparator.
+     */
+    private List<List<DataItem>> mDataItemsList;
+    /**
+     * A map between a mimetype string and the corresponding list of data items. The data items
+     * are in sorted order using mWithinMimeTypeDataItemComparator.
+     */
+    private Map<String, List<DataItem>> mDataItemsMap;
+    private MultiShrinkScroller mScroller;
+    private SelectAccountDialogFragmentListener mSelectAccountFragmentListener;
+    private AsyncTask<Void, Void, Pair<List<List<DataItem>>, Map<String, List<DataItem>>>>
+            mEntriesAndActionsTask;
+    /**
+     *  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;
 
     private Contact mContactData;
     private ContactLoader mContactLoader;
+    private PorterDuffColorFilter mColorFilter;
 
     private final ImageViewDrawableSetter mPhotoSetter = new ImageViewDrawableSetter();
 
     /**
-     * Keeps the default action per mimetype. Empty if no default actions are set
-     */
-    private HashMap<String, Action> mDefaultsMap = new HashMap<String, Action>();
-
-    /**
-     * Set of {@link Action} that are associated with the aggregate currently
-     * displayed by this dialog, represented as a map from {@link String}
-     * MIME-type to a list of {@link Action}.
-     */
-    private ActionMultiMap mActions = new ActionMultiMap();
-
-    /**
-     * {@link #LEADING_MIMETYPES} and {@link #TRAILING_MIMETYPES} are used to sort MIME-types.
+     * {@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>
-     *
-     * <p>The ones in {@link #TRAILING_MIMETYPES} appear in the end of the dialog, in the order
-     * specified here.</p>
-     *
-     * <p>The rest go between them, in the order in the array.</p>
      */
     private static final List<String> LEADING_MIMETYPES = Lists.newArrayList(
-            Phone.CONTENT_ITEM_TYPE, SipAddress.CONTENT_ITEM_TYPE, Email.CONTENT_ITEM_TYPE);
+            Phone.CONTENT_ITEM_TYPE, SipAddress.CONTENT_ITEM_TYPE, Email.CONTENT_ITEM_TYPE,
+            StructuredPostal.CONTENT_ITEM_TYPE);
 
-    /** See {@link #LEADING_MIMETYPES}. */
-    private static final List<String> TRAILING_MIMETYPES = Lists.newArrayList(
-            StructuredPostal.CONTENT_ITEM_TYPE, Website.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);
 
-    /** Id for the background loader */
-    private static final int LOADER_ID = 0;
+    /** Id for the background contact loader */
+    private static final int LOADER_CONTACT_ID = 0;
 
-    private StopWatch mStopWatch = ENABLE_STOPWATCH
-            ? StopWatch.start("QuickContact") : StopWatch.getNullStopWatch();
+    private static final String KEY_LOADER_EXTRA_PHONES =
+            QuickContactActivity.class.getCanonicalName() + ".KEY_LOADER_EXTRA_PHONES";
 
-    final OnClickListener mOpenDetailsClickHandler = new OnClickListener() {
+    /** 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 =
+            180L * 24L * 60L * 60L * 1000L /* 180 days */;
+    private static final long FUTURE_MILLISECOND_TO_SEARCH_LOCAL_CALENDAR =
+            36L * 60L * 60L * 1000L /* 36 hours */;
+
+    /** 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[] mRecentLoaderIds = new int[]{
+        LOADER_SMS_ID,
+        LOADER_CALENDAR_ID,
+        LOADER_CALL_LOG_ID};
+    private Map<Integer, List<ContactInteraction>> mRecentLoaderResults = new HashMap<>();
+
+    private static final String FRAGMENT_TAG_SELECT_ACCOUNT = "select_account_fragment";
+
+    final OnClickListener mEntryClickHandler = new OnClickListener() {
         @Override
         public void onClick(View v) {
-            final Intent intent = new Intent(Intent.ACTION_VIEW, mLookupUri);
-            mContactLoader.cacheResult();
-            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
+            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;
+            }
+
+            // 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(CallUtil.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();
+                final boolean successful = getContentResolver().update(
+                        dataUsageUri, new ContentValues(), null, null) > 0;
+                if (!successful) {
+                    Log.w(TAG, "DataUsageFeedback increment failed");
+                }
+            } else {
+                Log.w(TAG, "Invalid Data ID");
+            }
+
+            // Pass the touch point through the intent for use in the InCallUI
+            if (Intent.ACTION_CALL.equals(intent.getAction())) {
+                final Point touchPoint = TouchPointManager.getInstance().getPoint();
+
+                if (touchPoint.x != 0 || touchPoint.y != 0) {
+                    Bundle extras = new Bundle();
+                    extras.putParcelable(TouchPointManager.TOUCH_POINT, touchPoint);
+                    intent.putExtra(TelecommManager.EXTRA_OUTGOING_CALL_EXTRAS, extras);
+                }
+            }
+
             startActivity(intent);
-            close(false);
         }
     };
 
-    final OnClickListener mAddToContactsClickHandler = new OnClickListener() {
+    final ExpandingEntryCardViewListener mExpandingEntryCardViewListener
+            = new ExpandingEntryCardViewListener() {
         @Override
-        public void onClick(View v) {
-            if (mContactData == null) {
-                Log.e(TAG, "Empty contact data when trying to add to contact");
+        public void onCollapse(int heightDelta) {
+            mScroller.prepareForShrinkingScrollChild(heightDelta);
+        }
+
+        @Override
+        public void onExpand(int heightDelta) {
+            mScroller.prepareForExpandingScrollChild();
+        }
+    };
+
+    private final OnCreateContextMenuListener mEntryContextMenuListener =
+            new OnCreateContextMenuListener() {
+        @Override
+        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
+            if (menuInfo == null) {
                 return;
             }
-            final Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
-            intent.setType(Contacts.CONTENT_ITEM_TYPE);
-
-            // Only pre-fill the name field if the provided display name is an organization
-            // name or better (e.g. structured name, nickname)
-            if (mContactData.getDisplayNameSource() >= DisplayNameSources.ORGANIZATION) {
-                intent.putExtra(Insert.NAME, mContactData.getDisplayName());
-            }
-            intent.putExtra(Insert.DATA, mContactData.getContentValues());
-            startActivity(intent);
+            EntryContextMenuInfo info = (EntryContextMenuInfo) menuInfo;
+            menu.setHeaderTitle(info.getCopyText());
+            menu.add(R.string.copy_text);
         }
     };
 
     @Override
-    protected void onCreate(Bundle icicle) {
-        mStopWatch.lap("c"); // create start
-        super.onCreate(icicle);
+    public boolean onContextItemSelected(MenuItem item) {
+        EntryContextMenuInfo menuInfo;
+        try {
+            menuInfo = (EntryContextMenuInfo) item.getMenuInfo();
+        } catch (ClassCastException e) {
+            Log.e(TAG, "bad menuInfo", e);
+            return false;
+        }
 
-        mStopWatch.lap("sc"); // super.onCreate
+        ClipboardUtils.copyText(this, menuInfo.getCopyLabel(), menuInfo.getCopyText(), true);
+        return true;
+    }
 
-        if (TRACE_LAUNCH) android.os.Debug.startMethodTracing(TRACE_TAG);
+    /**
+     * Headless fragment used to handle account selection callbacks invoked from
+     * {@link DirectoryContactUtil}.
+     */
+    public static class SelectAccountDialogFragmentListener extends Fragment
+            implements SelectAccountDialogFragment.Listener {
 
-        // Parse intent
-        final Intent intent = getIntent();
+        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. Times used
+     * 2. Last time used
+     * 3. Statically defined
+     */
+    private final Comparator<List<DataItem>> mAmongstMimeTypeDataItemComparator =
+            new Comparator<List<DataItem>> () {
+        @Override
+        public int compare(List<DataItem> lhsList, List<DataItem> rhsList) {
+            DataItem lhs = lhsList.get(0);
+            DataItem rhs = rhsList.get(0);
+            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;
+            }
+
+            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;
+            }
+
+            // Times used and last time used are the same. Resort to statically defined.
+            final String lhsMimeType = lhs.getMimeType();
+            final String rhsMimeType = rhs.getMimeType();
+            for (String mimeType : LEADING_MIMETYPES) {
+                if (lhsMimeType.equals(mimeType)) {
+                    return -1;
+                } else if (rhsMimeType.equals(mimeType)) {
+                    return 1;
+                }
+            }
+            return 0;
+        }
+    };
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        Trace.beginSection("onCreate()");
+        super.onCreate(savedInstanceState);
+
+        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);
+
+        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 = (ImageView) findViewById(R.id.photo);
+        mTransparentView = findViewById(R.id.transparent_view);
+        if (mScroller != null) {
+            mTransparentView.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);
+        // 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) {
+        if (requestCode == REQUEST_CODE_CONTACT_EDITOR_ACTIVITY &&
+                resultCode == ContactDeletionInteraction.RESULT_CODE_DELETED) {
+            // The contact that we were showing has been deleted.
+            finish();
+        }
+    }
+
+    @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, mColorFilter.getColor());
+        }
+    }
+
+    private void processIntent(Intent intent) {
         Uri lookupUri = intent.getData();
 
         // Check to see whether it comes from the old version.
@@ -214,137 +695,48 @@
             lookupUri = RawContacts.getContactLookupUri(getContentResolver(),
                     ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId));
         }
+        mExtraMode = getIntent().getIntExtra(QuickContact.EXTRA_MODE,
+                QuickContact.MODE_LARGE);
+        final Uri oldLookupUri = mLookupUri;
 
         mLookupUri = Preconditions.checkNotNull(lookupUri, "missing lookupUri");
-
         mExcludeMimes = intent.getStringArrayExtra(QuickContact.EXTRA_EXCLUDE_MIMES);
-
-        mStopWatch.lap("i"); // intent parsed
-
-        mContactLoader = (ContactLoader) getLoaderManager().initLoader(
-                LOADER_ID, null, mLoaderCallbacks);
-
-        mStopWatch.lap("ld"); // loader started
-
-        // 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);
-
-        mStopWatch.lap("l"); // layout inflated
-
-        mFloatingLayout = (FloatingChildLayout) findViewById(R.id.floating_layout);
-        mTrack = (ViewGroup) findViewById(R.id.track);
-        mTrackScroller = (HorizontalScrollView) findViewById(R.id.track_scroller);
-        mOpenDetailsOrAddContactImage = (ImageView) findViewById(R.id.contact_details_image);
-        mStarImage = (ImageView) findViewById(R.id.quickcontact_star_button);
-        mListPager = (ViewPager) findViewById(R.id.item_list_pager);
-        mSelectedTabRectangle = findViewById(R.id.selected_tab_rectangle);
-        mLineAfterTrack = findViewById(R.id.line_after_track);
-
-        mFloatingLayout.setOnOutsideTouchListener(new View.OnTouchListener() {
-            @Override
-            public boolean onTouch(View v, MotionEvent event) {
-                handleOutsideTouch();
-                return true;
+        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 restart the loader and reload the new contact.
+            for (int interactionLoaderId : mRecentLoaderIds) {
+                getLoaderManager().destroyLoader(interactionLoaderId);
             }
-        });
-
-        mOpenDetailsOrAddContactImage.setOnClickListener(mOpenDetailsClickHandler);
-
-        mPagerAdapter = new ViewPagerAdapter(getFragmentManager());
-        mListPager.setAdapter(mPagerAdapter);
-        mListPager.setOnPageChangeListener(new PageChangeListener());
-
-        final Rect sourceBounds = intent.getSourceBounds();
-        if (sourceBounds != null) {
-            mFloatingLayout.setChildTargetScreen(sourceBounds);
+            mContactLoader = (ContactLoader) getLoaderManager().restartLoader(
+                    LOADER_CONTACT_ID, null, mLoaderContactCallbacks);
         }
 
-        // find and prepare correct header view
-        mPhotoContainer = findViewById(R.id.photo_container);
-
-        setHeaderNameText(R.id.name, R.string.missing_name);
-
-        mPhotoView = (ImageView) mPhotoContainer.findViewById(R.id.photo);
-        mPhotoView.setOnClickListener(mOpenDetailsClickHandler);
-
-        mStopWatch.lap("v"); // view initialized
-
-        SchedulingUtils.doAfterLayout(mFloatingLayout, new Runnable() {
-            @Override
-            public void run() {
-                mFloatingLayout.fadeInBackground();
-            }
-        });
-
-        mStopWatch.lap("cf"); // onCreate finished
+        NfcHandler.register(this, mLookupUri);
     }
 
-    private void handleOutsideTouch() {
-        if (mFloatingLayout.isContentFullyVisible()) {
-            close(true);
+    private void runEntranceAnimation() {
+        if (mHasAlreadyBeenOpened) {
+            return;
         }
-    }
-
-    private void close(boolean withAnimation) {
-        // cancel any pending queries
-        getLoaderManager().destroyLoader(LOADER_ID);
-
-        if (withAnimation) {
-            mFloatingLayout.fadeOutBackground();
-            final boolean animated = mFloatingLayout.hideContent(new Runnable() {
-                @Override
-                public void run() {
-                    // Wait until the final animation frame has been drawn, otherwise
-                    // there is jank as the framework transitions to the next Activity.
-                    SchedulingUtils.doAfterDraw(mFloatingLayout, new Runnable() {
-                        @Override
-                        public void run() {
-                            // Unfortunately, we need to also use postDelayed() to wait a moment
-                            // for the frame to be drawn, else the framework's activity-transition
-                            // animation will kick in before the final frame is available to it.
-                            // This seems unavoidable.  The problem isn't merely that there is no
-                            // post-draw listener API; if that were so, it would be sufficient to
-                            // call post() instead of postDelayed().
-                            new Handler().postDelayed(new Runnable() {
-                                @Override
-                                public void run() {
-                                    finish();
-                                    overridePendingTransition(0, 0);
-                                }
-                            }, POST_DRAW_WAIT_DURATION);
-                        }
-                    });
-                }
-            });
-            if (!animated) {
-                // If we were in the wrong state, simply quit (this can happen for example
-                // if the user pushes BACK before anything has loaded)
-                finish();
-            }
-        } else {
-            finish();
-        }
-    }
-
-    @Override
-    public void onBackPressed() {
-        close(true);
+        mHasAlreadyBeenOpened = true;
+        mScroller.scrollUpForEntranceAnimation(mExtraMode != MODE_FULLY_EXPANDED);
     }
 
     /** Assign this string to the view if it is not empty. */
-    private void setHeaderNameText(int id, int resId) {
-        setHeaderNameText(id, getText(resId));
+    private void setHeaderNameText(int resId) {
+        if (mScroller != null) {
+            mScroller.setTitle(getText(resId) == null ? null : getText(resId).toString());
+        }
     }
 
     /** Assign this string to the view if it is not empty. */
-    private void setHeaderNameText(int id, CharSequence value) {
-        final View view = mPhotoContainer.findViewById(id);
-        if (view instanceof TextView) {
-            if (!TextUtils.isEmpty(value)) {
-                ((TextView)view).setText(value);
+    private void setHeaderNameText(String value) {
+        if (!TextUtils.isEmpty(value)) {
+            if (mScroller != null) {
+                mScroller.setTitle(value);
             }
         }
     }
@@ -366,249 +758,776 @@
     /**
      * Handle the result from the ContactLoader
      */
-    private void bindData(Contact data) {
+    private void bindContactData(final Contact data) {
+        Trace.beginSection("bindContactData");
         mContactData = data;
-        final ResolveCache cache = ResolveCache.getInstance(this);
-        final Context context = this;
+        invalidateOptionsMenu();
 
-        mOpenDetailsOrAddContactImage.setVisibility(isMimeExcluded(Contacts.CONTENT_ITEM_TYPE) ?
-                View.GONE : View.VISIBLE);
-        final boolean isStarred = data.getStarred();
-        if (isStarred) {
-            mStarImage.setImageResource(R.drawable.ic_favorite_on_lt);
-            mStarImage.setContentDescription(
-                getResources().getString(R.string.menu_removeStar));
-        } else {
-            mStarImage.setImageResource(R.drawable.ic_favorite_off_lt);
-            mStarImage.setContentDescription(
-                getResources().getString(R.string.menu_addStar));
-        }
-        final Uri lookupUri = data.getLookupUri();
-
-        // If this is a json encoded URI, there is no local contact to star
-        if (UriUtils.isEncodedContactUri(lookupUri)) {
-            mStarImage.setVisibility(View.GONE);
-
-            // If directory export support is not allowed, then don't allow the user to add
-            // to contacts
-            if (mContactData.getDirectoryExportSupport() == Directory.EXPORT_SUPPORT_NONE) {
-                configureHeaderClickActions(false);
-            } else {
-                configureHeaderClickActions(true);
-            }
-        } else {
-            configureHeaderClickActions(false);
-            mStarImage.setVisibility(View.VISIBLE);
-            mStarImage.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View view) {
-                    // Toggle "starred" state
-                    // Make sure there is a contact
-                    if (lookupUri != null) {
-                        // Changes the state of the image already before sending updates to the
-                        // database
-                        if (isStarred) {
-                            mStarImage.setImageResource(R.drawable.ic_favorite_off_lt);
-                        } else {
-                            mStarImage.setImageResource(R.drawable.ic_favorite_on_lt);
-                        }
-
-                        // Now perform the real save
-                        final Intent intent = ContactSaveService.createSetStarredIntent(context,
-                                lookupUri, !isStarred);
-                        context.startService(intent);
-                    }
-                }
-            });
-        }
-
-        mDefaultsMap.clear();
-
-        mStopWatch.lap("sph"); // Start photo setting
+        Trace.endSection();
+        Trace.beginSection("Set display photo & name");
 
         mPhotoSetter.setupContactPhoto(data, mPhotoView);
+        extractAndApplyTintFromPhotoViewAsynchronously();
+        analyzeWhitenessOfPhotoAsynchronously();
+        setHeaderNameText(ContactDisplayUtils.getDisplayName(this, data).toString());
 
-        mStopWatch.lap("ph"); // Photo set
+        Trace.endSection();
 
+        mEntriesAndActionsTask = new AsyncTask<Void, Void,
+                Pair<List<List<DataItem>>, Map<String, List<DataItem>>>>() {
+
+            @Override
+            protected Pair<List<List<DataItem>>, Map<String, List<DataItem>>> doInBackground(
+                    Void... params) {
+                return generateDataModelFromContact(data);
+            }
+
+            @Override
+            protected void onPostExecute(Pair<List<List<DataItem>>,
+                    Map<String, List<DataItem>>> dataItemsPair) {
+                super.onPostExecute(dataItemsPair);
+                mDataItemsList = dataItemsPair.first;
+                mDataItemsMap = dataItemsPair.second;
+                // 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();
+                    showActivity();
+                }
+            }
+        };
+        mEntriesAndActionsTask.execute();
+    }
+
+    private void bindDataToCards() {
+        startInteractionLoaders();
+        populateContactAndAboutCard();
+    }
+
+    private void startInteractionLoaders() {
+        final List<DataItem> phoneDataItems = mDataItemsMap.get(Phone.CONTENT_ITEM_TYPE);
+        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();
+            }
+        }
+        final Bundle phonesExtraBundle = new Bundle();
+        phonesExtraBundle.putStringArray(KEY_LOADER_EXTRA_PHONES, phoneNumbers);
+
+        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 = mDataItemsMap.get(Email.CONTENT_ITEM_TYPE);
+        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() {
+        final List<List<Entry>> aboutCardEntries = new ArrayList<>();
+        for (String mimetype : SORTED_ABOUT_CARD_MIMETYPES) {
+            final List<DataItem> mimeTypeItems = mDataItemsMap.get(mimetype);
+            if (mimeTypeItems == null) {
+                continue;
+            }
+            final List<Entry> aboutEntries = dataItemsToEntries(mimeTypeItems);
+            if (aboutEntries.size() > 0) {
+                aboutCardEntries.add(aboutEntries);
+            }
+        }
+        return aboutCardEntries;
+    }
+
+    private void populateContactAndAboutCard() {
+        Trace.beginSection("bind contact card");
+
+        final List<List<Entry>> contactCardEntries = new ArrayList<>();
+        final List<List<Entry>> aboutCardEntries = buildAboutCardEntries();
+
+        for (int i = 0; i < mDataItemsList.size(); ++i) {
+            final List<DataItem> dataItemsByMimeType = mDataItemsList.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(mDataItemsList.get(i));
+                if (contactEntries.size() > 0) {
+                    contactCardEntries.add(contactEntries);
+                }
+            }
+        }
+
+        if (contactCardEntries.size() > 0) {
+            mContactCard.initialize(contactCardEntries,
+                    /* numInitialVisibleEntries = */ MIN_NUM_CONTACT_ENTRIES_SHOWN,
+                    /* isExpanded = */ mContactCard.isExpanded(),
+                    /* isAlwaysExpanded = */ false,
+                    mExpandingEntryCardViewListener,
+                    mScroller);
+            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
+        final String phoneticName = mContactData.getPhoneticName();
+        if (!TextUtils.isEmpty(phoneticName)) {
+            Entry phoneticEntry = new Entry(/* viewId = */ -1,
+                    /* icon = */ null,
+                    getResources().getString(R.string.name_phonetic),
+                    phoneticName,
+                    /* text = */ null,
+                    /* intent = */ null,
+                    /* alternateIcon = */ null,
+                    /* alternateIntent = */ null,
+                    /* alternateContentDescription = */ null,
+                    /* shouldApplyColor = */ false,
+                    /* isEditable = */ false,
+                    /* EntryContextMenuInfo = */ new EntryContextMenuInfo(phoneticName,
+                            getResources().getString(R.string.name_phonetic)));
+            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);
+            }
+        }
+
+        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, /* text = */ null, getEditContactIntent(),
+                /* alternateIcon = */ null, /* alternateIntent = */ null,
+                /* alternateContentDescription = */ null, /* shouldApplyColor = */ true,
+                /* isEditable = */ false, /* EntryContextMenuInfo = */ null);
+
+        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,
+                /* text = */ null, getEditContactIntent(), /* alternateIcon = */ null,
+                /* alternateIntent = */ null, /* alternateContentDescription = */ null,
+                /* shouldApplyColor = */ true, /* isEditable = */ false,
+                /* EntryContextMenuInfo = */ null);
+
+        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 Pair<List<List<DataItem>>, Map<String, List<DataItem>>> 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;
 
-                // Skip this data item if MIME-type excluded
-                if (isMimeExcluded(mimeType)) continue;
+                dataItem.setDataKind(dataKind);
 
-                final long dataId = dataItem.getId();
-                final boolean isPrimary = dataItem.isPrimary();
-                final boolean isSuperPrimary = dataItem.isSuperPrimary();
+                final boolean hasData = !TextUtils.isEmpty(dataItem.buildDataString(this,
+                        dataKind));
 
-                if (dataKind != null) {
-                    // Build an action for this data entry, find a mapping to a UI
-                    // element, build its summary from the cursor, and collect it
-                    // along with all others of this MIME-type.
-                    final Action action = new DataAction(context, dataItem, dataKind);
-                    final boolean wasAdded = considerAdd(action, cache, isSuperPrimary);
-                    if (wasAdded) {
-                        // Remember the default
-                        if (isSuperPrimary || (isPrimary && (mDefaultsMap.get(mimeType) == null))) {
-                            mDefaultsMap.put(mimeType, action);
-                        }
-                    }
+                if (isMimeExcluded(mimeType) || !hasData) continue;
+
+                List<DataItem> dataItemListByType = dataItemsMap.get(mimeType);
+                if (dataItemListByType == null) {
+                    dataItemListByType = new ArrayList<>();
+                    dataItemsMap.put(mimeType, dataItemListByType);
                 }
-
-                // Handle Email rows with presence data as Im entry
-                final DataStatus status = data.getStatuses().get(dataId);
-                if (status != null && dataItem instanceof EmailDataItem) {
-                    final EmailDataItem email = (EmailDataItem) dataItem;
-                    final ImDataItem im = ImDataItem.createFromEmail(email);
-                    if (dataKind != null) {
-                        final DataAction action = new DataAction(context, im, dataKind);
-                        action.setPresence(status.getPresence());
-                        considerAdd(action, cache, isSuperPrimary);
-                    }
-                }
+                dataItemListByType.add(dataItem);
             }
         }
+        Trace.endSection();
 
-        mStopWatch.lap("e"); // Entities inflated
-
-        // Collapse Action Lists (remove e.g. duplicate e-mail addresses from different sources)
-        for (List<Action> actionChildren : mActions.values()) {
-            Collapser.collapseList(actionChildren);
+        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();
 
-        mStopWatch.lap("c"); // List collapsed
+        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();
 
-        setHeaderNameText(R.id.name, data.getDisplayName());
-
-        // All the mime-types to add.
-        final Set<String> containedTypes = new HashSet<String>(mActions.keySet());
-        mSortedActionMimeTypes.clear();
-        // First, add LEADING_MIMETYPES, which are most common.
-        for (String mimeType : LEADING_MIMETYPES) {
-            if (containedTypes.contains(mimeType)) {
-                mSortedActionMimeTypes.add(mimeType);
-                containedTypes.remove(mimeType);
-            }
-        }
-
-        // Add all the remaining ones that are not TRAILING
-        for (String mimeType : containedTypes.toArray(new String[containedTypes.size()])) {
-            if (!TRAILING_MIMETYPES.contains(mimeType)) {
-                mSortedActionMimeTypes.add(mimeType);
-                containedTypes.remove(mimeType);
-            }
-        }
-
-        // Then, add TRAILING_MIMETYPES, which are least common.
-        for (String mimeType : TRAILING_MIMETYPES) {
-            if (containedTypes.contains(mimeType)) {
-                containedTypes.remove(mimeType);
-                mSortedActionMimeTypes.add(mimeType);
-            }
-        }
-        mPagerAdapter.notifyDataSetChanged();
-
-        mStopWatch.lap("mt"); // Mime types initialized
-
-        // Add buttons for each mimetype
-        mTrack.removeAllViews();
-        for (String mimeType : mSortedActionMimeTypes) {
-            final View actionView = inflateAction(mimeType, cache, mTrack, data.getDisplayName());
-            mTrack.addView(actionView);
-        }
-
-        mStopWatch.lap("mt"); // Buttons added
-
-        final boolean hasData = !mSortedActionMimeTypes.isEmpty();
-        mTrackScroller.setVisibility(hasData ? View.VISIBLE : View.GONE);
-        mSelectedTabRectangle.setVisibility(hasData ? View.VISIBLE : View.GONE);
-        mLineAfterTrack.setVisibility(hasData ? View.VISIBLE : View.GONE);
-        mListPager.setVisibility(hasData ? View.VISIBLE : View.GONE);
+        return new Pair<>(dataItemsList, dataItemsMap);
     }
 
     /**
-     * Consider adding the given {@link Action}, which will only happen if
-     * {@link PackageManager} finds an application to handle
-     * {@link Action#getIntent()}.
-     * @param action the action to handle
-     * @param resolveCache cache of applications that can handle actions
-     * @param front indicates whether to add the action to the front of the list
-     * @return true if action has been added
+     * Converts a {@link DataItem} into an {@link ExpandingEntryCardView.Entry} for display.
+     * If the {@link ExpandingEntryCardView.Entry} has no visual elements, null is returned.
+     * @param dataItem The {@link DataItem} to convert.
+     * @return The {@link ExpandingEntryCardView.Entry}, or null if no visual elements are present.
      */
-    private boolean considerAdd(Action action, ResolveCache resolveCache, boolean front) {
-        if (resolveCache.hasResolve(action)) {
-            mActions.put(action.getMimeType(), action, front);
-            return true;
-        }
-        return false;
-    }
+    private Entry dataItemToEntry(DataItem dataItem) {
+        Drawable icon = null;
+        String header = null;
+        String subHeader = null;
+        Drawable subHeaderIcon = null;
+        String text = null;
+        Drawable textIcon = null;
+        Intent intent = null;
+        boolean shouldApplyColor = true;
+        Drawable alternateIcon = null;
+        Intent alternateIntent = null;
+        String alternateContentDescription = null;
+        final boolean isEditable = false;
+        EntryContextMenuInfo entryContextMenuInfo = null;
 
-    /**
-     * Bind the correct image resource and click handlers to the header views
-     *
-     * @param canAdd Whether or not the user can directly add information in this quick contact
-     * to their local contacts
-     */
-    private void configureHeaderClickActions(boolean canAdd) {
-        if (canAdd) {
-            mOpenDetailsOrAddContactImage.setImageResource(R.drawable.ic_add_contact_holo_dark);
-            mOpenDetailsOrAddContactImage.setOnClickListener(mAddToContactsClickHandler);
-            mPhotoView.setOnClickListener(mAddToContactsClickHandler);
+        DataKind kind = dataItem.getDataKind();
+
+        if (dataItem instanceof ImDataItem) {
+            final ImDataItem im = (ImDataItem) dataItem;
+            intent = ContactsUtils.buildImIntent(this, 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 = getResources().getString(R.string.header_im_entry);
+                subHeader = Im.getProtocolLabel(getResources(), protocol,
+                        im.getCustomProtocol()).toString();
+                text = im.getData();
+            } else {
+                header = Im.getProtocolLabel(getResources(), protocol,
+                        im.getCustomProtocol()).toString();
+                subHeader = im.getData();
+            }
+            entryContextMenuInfo = new EntryContextMenuInfo(im.getData(), header);
+        } else if (dataItem instanceof OrganizationDataItem) {
+            final OrganizationDataItem organization = (OrganizationDataItem) dataItem;
+            header = getResources().getString(R.string.header_organization_entry);
+            subHeader = organization.getCompany();
+            entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header);
+            text = organization.getTitle();
+        } else if (dataItem instanceof NicknameDataItem) {
+            final NicknameDataItem nickname = (NicknameDataItem) dataItem;
+            // Build nickname entries
+            final boolean isNameRawContact =
+                (mContactData.getNameRawContactId() == dataItem.getRawContactId());
+
+            final boolean duplicatesTitle =
+                isNameRawContact
+                && mContactData.getDisplayNameSource() == DisplayNameSources.NICKNAME;
+
+            if (!duplicatesTitle) {
+                header = getResources().getString(R.string.header_nickname_entry);
+                subHeader = nickname.getName();
+                entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header);
+            }
+        } else if (dataItem instanceof NoteDataItem) {
+            final NoteDataItem note = (NoteDataItem) dataItem;
+            header = getResources().getString(R.string.header_note_entry);
+            subHeader = note.getNote();
+            entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header);
+        } else if (dataItem instanceof WebsiteDataItem) {
+            final WebsiteDataItem website = (WebsiteDataItem) dataItem;
+            header = getResources().getString(R.string.header_website_entry);
+            subHeader = website.getUrl();
+            entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header);
+            try {
+                final WebAddress webAddress = new WebAddress(website.buildDataString(this, kind));
+                intent = new Intent(Intent.ACTION_VIEW, Uri.parse(webAddress.toString()));
+            } catch (final ParseException e) {
+                Log.e(TAG, "Couldn't parse website: " + website.buildDataString(this, kind));
+            }
+        } else if (dataItem instanceof EventDataItem) {
+            final EventDataItem event = (EventDataItem) dataItem;
+            final String dataString = event.buildDataString(this, 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 = getResources().getString(R.string.header_event_entry);
+            if (event.hasKindTypeColumn(kind)) {
+                subHeader = Event.getTypeLabel(getResources(), event.getKindTypeColumn(kind),
+                        event.getLabel()).toString();
+            }
+            text = DateUtils.formatDate(this, dataString);
+            entryContextMenuInfo = new EntryContextMenuInfo(text, header);
+        } else if (dataItem instanceof RelationDataItem) {
+            final RelationDataItem relation = (RelationDataItem) dataItem;
+            final String dataString = relation.buildDataString(this, kind);
+            if (!TextUtils.isEmpty(dataString)) {
+                intent = new Intent(Intent.ACTION_SEARCH);
+                intent.putExtra(SearchManager.QUERY, dataString);
+                intent.setType(Contacts.CONTENT_TYPE);
+            }
+            header = getResources().getString(R.string.header_relation_entry);
+            subHeader = relation.getName();
+            entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header);
+            if (relation.hasKindTypeColumn(kind)) {
+                text = Relation.getTypeLabel(getResources(), relation.getKindTypeColumn(kind),
+                        relation.getLabel()).toString();
+            }
+        } else if (dataItem instanceof PhoneDataItem) {
+            final PhoneDataItem phone = (PhoneDataItem) dataItem;
+            if (!TextUtils.isEmpty(phone.getNumber())) {
+                header = phone.buildDataString(this, kind);
+                entryContextMenuInfo = new EntryContextMenuInfo(header,
+                        getResources().getString(R.string.phoneLabelsGroup));
+                if (phone.hasKindTypeColumn(kind)) {
+                    text = Phone.getTypeLabel(getResources(), phone.getKindTypeColumn(kind),
+                            phone.getLabel()).toString();
+                }
+                icon = getResources().getDrawable(R.drawable.ic_phone_24dp);
+                if (PhoneCapabilityTester.isPhone(this)) {
+                    intent = CallUtil.getCallIntent(phone.getNumber());
+                }
+                alternateIntent = new Intent(Intent.ACTION_SENDTO,
+                        Uri.fromParts(CallUtil.SCHEME_SMSTO, phone.getNumber(), null));
+                alternateIcon = getResources().getDrawable(R.drawable.ic_message_24dp);
+                alternateContentDescription = getResources().getString(R.string.sms_other);
+            }
+        } else if (dataItem instanceof EmailDataItem) {
+            final EmailDataItem email = (EmailDataItem) dataItem;
+            final String address = email.getData();
+            if (!TextUtils.isEmpty(address)) {
+                final Uri mailUri = Uri.fromParts(CallUtil.SCHEME_MAILTO, address, null);
+                intent = new Intent(Intent.ACTION_SENDTO, mailUri);
+                header = email.getAddress();
+                entryContextMenuInfo = new EntryContextMenuInfo(header,
+                        getResources().getString(R.string.emailLabelsGroup));
+                if (email.hasKindTypeColumn(kind)) {
+                    text = Email.getTypeLabel(getResources(), email.getKindTypeColumn(kind),
+                            email.getLabel()).toString();
+                }
+                icon = getResources().getDrawable(R.drawable.ic_email_24dp);
+            }
+        } else if (dataItem instanceof StructuredPostalDataItem) {
+            StructuredPostalDataItem postal = (StructuredPostalDataItem) dataItem;
+            final String postalAddress = postal.getFormattedAddress();
+            if (!TextUtils.isEmpty(postalAddress)) {
+                intent = StructuredPostalUtils.getViewPostalAddressIntent(postalAddress);
+                header = postal.getFormattedAddress();
+                entryContextMenuInfo = new EntryContextMenuInfo(header,
+                        getResources().getString(R.string.postalLabelsGroup));
+                if (postal.hasKindTypeColumn(kind)) {
+                    text = StructuredPostal.getTypeLabel(getResources(),
+                            postal.getKindTypeColumn(kind), postal.getLabel()).toString();
+                }
+                alternateIntent =
+                        StructuredPostalUtils.getViewPostalAddressDirectionsIntent(postalAddress);
+                alternateIcon = getResources().getDrawable(R.drawable.ic_directions_24dp);
+                icon = getResources().getDrawable(R.drawable.ic_place_24dp);
+            }
+        } else if (dataItem instanceof SipAddressDataItem) {
+            if (PhoneCapabilityTester.isSipPhone(this)) {
+                final SipAddressDataItem sip = (SipAddressDataItem) dataItem;
+                final String address = sip.getSipAddress();
+                if (!TextUtils.isEmpty(address)) {
+                    final Uri callUri = Uri.fromParts(CallUtil.SCHEME_SIP, address, null);
+                    intent = CallUtil.getCallIntent(callUri);
+                    header = address;
+                    entryContextMenuInfo = new EntryContextMenuInfo(header,
+                            getResources().getString(R.string.phoneLabelsGroup));
+                    if (sip.hasKindTypeColumn(kind)) {
+                        text = SipAddress.getTypeLabel(getResources(), sip.getKindTypeColumn(kind),
+                            sip.getLabel()).toString();
+                    }
+                    // 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.
+                    icon = ResolveCache.getInstance(this).getIcon(sip.getMimeType(), intent);
+                    // Call mutate to create a new Drawable.ConstantState for color filtering
+                    if (icon != null) {
+                        icon.mutate();
+                    }
+                }
+            }
+        } else if (dataItem instanceof StructuredNameDataItem) {
+            final String givenName = ((StructuredNameDataItem) dataItem).getGivenName();
+            if (!TextUtils.isEmpty(givenName)) {
+                mAboutCard.setTitle(getResources().getString(R.string.about_card_title) +
+                        " " + givenName);
+            } else {
+                mAboutCard.setTitle(getResources().getString(R.string.about_card_title));
+            }
         } else {
-            mOpenDetailsOrAddContactImage.setImageResource(R.drawable.ic_contacts_holo_dark);
-            mOpenDetailsOrAddContactImage.setOnClickListener(mOpenDetailsClickHandler);
-            mPhotoView.setOnClickListener(mOpenDetailsClickHandler);
+            // Custom DataItem
+            header = dataItem.buildDataStringForDisplay(this, 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();
+
+                // Attempt to use known icons for known 3p types. Otherwise default to ResolveCache
+                switch (mimetype) {
+                    case MIMETYPE_GPLUS_PROFILE:
+                        if (INTENT_DATA_GPLUS_PROFILE_ADD_TO_CIRCLE.equals(
+                                intent.getDataString())) {
+                            icon = getResources().getDrawable(
+                                    R.drawable.ic_add_to_circles_black_24);
+                        } else {
+                            icon = getResources().getDrawable(R.drawable.ic_google_plus_24dp);
+                        }
+                        break;
+                    case MIMETYPE_HANGOUTS:
+                        if (INTENT_DATA_HANGOUTS_VIDEO.equals(intent.getDataString())) {
+                            icon = getResources().getDrawable(R.drawable.ic_hangout_video_24dp);
+                        } else {
+                            icon = getResources().getDrawable(R.drawable.ic_hangout_24dp);
+                        }
+                        break;
+                    default:
+                        entryContextMenuInfo = new EntryContextMenuInfo(header, mimetype);
+                        icon = ResolveCache.getInstance(this).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(this, intent)) {
+                intent = null;
+            }
+        }
+
+        if (alternateIntent != null) {
+            // Do not set the alternate intent is there are no resolves
+            if (!PhoneCapabilityTester.isIntentRegistered(this, alternateIntent)) {
+                alternateIntent = null;
+            }
+
+            // Attempt to use package manager to find a suitable content description if needed
+            if (TextUtils.isEmpty(alternateContentDescription)) {
+                alternateContentDescription = getIntentResolveLabel(alternateIntent);
+            }
+        }
+
+        // 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, intent,
+                alternateIcon, alternateIntent, alternateContentDescription, shouldApplyColor,
+                isEditable, entryContextMenuInfo);
+    }
+
+    private List<Entry> dataItemsToEntries(List<DataItem> dataItems) {
+        final List<Entry> entries = new ArrayList<>();
+        for (DataItem dataItem : dataItems) {
+            final Entry entry = dataItemToEntry(dataItem);
+            if (entry != null) {
+                entries.add(entry);
+            }
+        }
+        return entries;
+    }
+
+    private String getIntentResolveLabel(Intent intent) {
+        final List<ResolveInfo> matches = 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(this).getBestResolve(intent, matches);
+        }
+
+        if (bestResolve == null) {
+            return null;
+        }
+
+        return String.valueOf(bestResolve.loadLabel(getPackageManager()));
     }
 
     /**
-     * Inflate the in-track view for the action of the given MIME-type, collapsing duplicate values.
-     * Will use the icon provided by the {@link DataKind}.
+     * 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 View inflateAction(String mimeType, ResolveCache resolveCache,
-                               ViewGroup root, String name) {
-        final CheckableImageView typeView = (CheckableImageView) getLayoutInflater().inflate(
-                R.layout.quickcontact_track_button, root, false);
+    private void extractAndApplyTintFromPhotoViewAsynchronously() {
+        if (mScroller == null) {
+            return;
+        }
+        final Drawable imageViewDrawable = mPhotoView.getDrawable();
+        new AsyncTask<Void, Void, MaterialPalette>() {
+            @Override
+            protected MaterialPalette doInBackground(Void... params) {
 
-        List<Action> children = mActions.get(mimeType);
-        typeView.setTag(mimeType);
-        final Action firstInfo = children.get(0);
+                if (imageViewDrawable instanceof BitmapDrawable) {
+                    final Bitmap bitmap = ((BitmapDrawable) imageViewDrawable).getBitmap();
+                    final int primaryColor = colorFromBitmap(bitmap);
+                    if (primaryColor != 0) {
+                        return mMaterialColorMapUtils.calculatePrimaryAndSecondaryColor(
+                                primaryColor);
+                    }
+                }
+                if (imageViewDrawable instanceof LetterTileDrawable) {
+                    final int primaryColor = ((LetterTileDrawable) imageViewDrawable).getColor();
+                    return mMaterialColorMapUtils.calculatePrimaryAndSecondaryColor(primaryColor);
+                }
+                return MaterialColorMapUtils.getDefaultPrimaryAndSecondaryColors(getResources());
+            }
 
-        // Set icon and listen for clicks
-        final CharSequence descrip = resolveCache.getDescription(firstInfo, name);
-        final Drawable icon = resolveCache.getIcon(firstInfo);
-        typeView.setChecked(false);
-        typeView.setContentDescription(descrip);
-        typeView.setImageDrawable(icon);
-        typeView.setOnClickListener(mTypeViewClickListener);
-
-        return typeView;
+            @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);
+                }
+            }
+        }.execute();
     }
 
-    private CheckableImageView getActionViewAt(int position) {
-        return (CheckableImageView) mTrack.getChildAt(position);
+    /**
+     * Examine how many white pixels are in the bitmap in order to determine whether or not
+     * we need gradient overlays on top of the image.
+     */
+    private void analyzeWhitenessOfPhotoAsynchronously() {
+        final Drawable imageViewDrawable = mPhotoView.getDrawable();
+        new AsyncTask<Void, Void, Boolean>() {
+            @Override
+            protected Boolean doInBackground(Void... params) {
+                if (imageViewDrawable instanceof BitmapDrawable) {
+                    final Bitmap bitmap = ((BitmapDrawable) imageViewDrawable).getBitmap();
+                    return WhitenessUtils.isBitmapWhiteAtTopOrBottom(bitmap);
+                }
+                return !(imageViewDrawable instanceof LetterTileDrawable);
+            }
+
+            @Override
+            protected void onPostExecute(Boolean isWhite) {
+                super.onPostExecute(isWhite);
+                mScroller.setUseGradient(isWhite);
+            }
+        }.execute();
     }
 
-    @Override
-    public void onAttachFragment(Fragment fragment) {
-        final QuickContactListFragment listFragment = (QuickContactListFragment) fragment;
-        listFragment.setListener(mListFragmentListener);
+    private void setThemeColor(MaterialPalette palette) {
+        // If the color is invalid, use the predefined default
+        final int primaryColor = palette.mPrimaryColor;
+        mScroller.setHeaderTintColor(primaryColor);
+        mStatusBarColor = palette.mSecondaryColor;
+        updateStatusBarColor();
+
+        mColorFilter =
+                new PorterDuffColorFilter(primaryColor, PorterDuff.Mode.SRC_ATOP);
+        mContactCard.setColorAndFilter(primaryColor, mColorFilter);
+        mRecentCard.setColorAndFilter(primaryColor, mColorFilter);
+        mAboutCard.setColorAndFilter(primaryColor, mColorFilter);
     }
 
-    private LoaderCallbacks<Contact> mLoaderCallbacks =
+    private void updateStatusBarColor() {
+        if (mScroller == null) {
+            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) {
+            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.getIntent(),
+                    /* alternateIcon = */ null,
+                    /* alternateIntent = */ null,
+                    /* alternateContentDescription = */ null,
+                    /* shouldApplyColor = */ true,
+                    /* isEditable = */ false,
+                    /* EntryContextMenuInfo = */ null));
+        }
+        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) {
-            mStopWatch.lap("lf"); // onLoadFinished
+            Trace.beginSection("onLoadFinished()");
+
             if (isFinishing()) {
-                close(false);
                 return;
             }
             if (data.isError()) {
@@ -617,37 +1536,19 @@
                 throw new IllegalStateException("Failed to load contact", data.getException());
             }
             if (data.isNotFound()) {
-                Log.i(TAG, "No contact found: " + ((ContactLoader)loader).getLookupUri());
-                Toast.makeText(QuickContactActivity.this, R.string.invalidContactMessage,
-                        Toast.LENGTH_LONG).show();
-                close(false);
+                if (mHasAlreadyBeenOpened) {
+                    finish();
+                } else {
+                    Log.i(TAG, "No contact found: " + ((ContactLoader)loader).getLookupUri());
+                    Toast.makeText(QuickContactActivity.this, R.string.invalidContactMessage,
+                            Toast.LENGTH_LONG).show();
+                }
                 return;
             }
 
-            bindData(data);
+            bindContactData(data);
 
-            mStopWatch.lap("bd"); // bindData finished
-
-            if (TRACE_LAUNCH) android.os.Debug.stopMethodTracing();
-            if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) {
-                Log.d(Constants.PERFORMANCE_TAG, "QuickContact shown");
-            }
-
-            // Data bound and ready, pull curtain to show. Put this on the Handler to ensure
-            // that the layout passes are completed
-            SchedulingUtils.doAfterLayout(mFloatingLayout, new Runnable() {
-                @Override
-                public void run() {
-                    mFloatingLayout.showContent(new Runnable() {
-                        @Override
-                        public void run() {
-                            mContactLoader.upgradeToFullContact();
-                        }
-                    });
-                }
-            });
-            mStopWatch.stopAndLog(TAG, 0);
-            mStopWatch = StopWatch.getNullStopWatch(); // We're done with it.
+            Trace.endSection();
         }
 
         @Override
@@ -655,117 +1556,327 @@
             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,
-                    false /*loadGroupMetaData*/, false /*loadInvitableAccountTypes*/,
-                    false /*postViewNotification*/, true /*computeFormattedPhoneNumber*/);
+                    true /*loadGroupMetaData*/, false /*loadInvitableAccountTypes*/,
+                    true /*postViewNotification*/, true /*computeFormattedPhoneNumber*/);
         }
     };
 
-    /** A type (e.g. Call/Addresses was clicked) */
-    private final OnClickListener mTypeViewClickListener = new OnClickListener() {
-        @Override
-        public void onClick(View view) {
-            final CheckableImageView actionView = (CheckableImageView)view;
-            final String mimeType = (String) actionView.getTag();
-            int index = mSortedActionMimeTypes.indexOf(mimeType);
-            mListPager.setCurrentItem(index, true);
-        }
-    };
-
-    private class ViewPagerAdapter extends FragmentPagerAdapter {
-        public ViewPagerAdapter(FragmentManager fragmentManager) {
-            super(fragmentManager);
-        }
-
-        @Override
-        public Fragment getItem(int position) {
-            final String mimeType = mSortedActionMimeTypes.get(position);
-            QuickContactListFragment fragment = new QuickContactListFragment(mimeType);
-            final List<Action> actions = mActions.get(mimeType);
-            fragment.setActions(actions);
-            return fragment;
-        }
-
-        @Override
-        public int getCount() {
-            return mSortedActionMimeTypes.size();
-        }
-
-        @Override
-        public int getItemPosition(Object object) {
-            final QuickContactListFragment fragment = (QuickContactListFragment) object;
-            final String mimeType = fragment.getMimeType();
-            for (int i = 0; i < mSortedActionMimeTypes.size(); i++) {
-                if (mimeType.equals(mSortedActionMimeTypes.get(i))) {
-                    return i;
-                }
+    @Override
+    public void onBackPressed() {
+        if (mScroller != null) {
+            if (!mIsExitAnimationInProgress) {
+                mScroller.scrollOffBottom();
             }
-            return PagerAdapter.POSITION_NONE;
+        } else {
+            super.onBackPressed();
         }
     }
 
-    private class PageChangeListener extends SimpleOnPageChangeListener {
-        private int mScrollingState = ViewPager.SCROLL_STATE_IDLE;
+    @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 void onPageSelected(int position) {
-            final CheckableImageView actionView = getActionViewAt(position);
-            mTrackScroller.requestChildRectangleOnScreen(actionView,
-                    new Rect(0, 0, actionView.getWidth(), actionView.getHeight()), false);
-            // Don't render rectangle if we are currently scrolling to prevent it from flickering
-            if (mScrollingState == ViewPager.SCROLL_STATE_IDLE) {
-                renderSelectedRectangle(position, 0);
+        public Loader<List<ContactInteraction>> onCreateLoader(int id, Bundle args) {
+            Log.v(TAG, "onCreateLoader");
+            Loader<List<ContactInteraction>> loader = null;
+            switch (id) {
+                case LOADER_SMS_ID:
+                    Log.v(TAG, "LOADER_SMS_ID");
+                    loader = new SmsInteractionsLoader(
+                            QuickContactActivity.this,
+                            args.getStringArray(KEY_LOADER_EXTRA_PHONES),
+                            MAX_SMS_RETRIEVE);
+                    break;
+                case LOADER_CALENDAR_ID:
+                    Log.v(TAG, "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:
+                    Log.v(TAG, "LOADER_CALL_LOG_ID");
+                    loader = new CallLogInteractionsLoader(
+                            QuickContactActivity.this,
+                            args.getStringArray(KEY_LOADER_EXTRA_PHONES),
+                            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 onPageScrollStateChanged(int state) {
-            super.onPageScrollStateChanged(state);
-            mScrollingState = state;
+        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<>();
+        for (List<ContactInteraction> loaderInteractions : mRecentLoaderResults.values()) {
+            allInteractions.addAll(loaderInteractions);
         }
 
-        @Override
-        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-            renderSelectedRectangle(position, positionOffset);
+        // Sort the interactions by most recent
+        Collections.sort(allInteractions, new Comparator<ContactInteraction>() {
+            @Override
+            public int compare(ContactInteraction a, ContactInteraction b) {
+                return a.getInteractionDate() >= b.getInteractionDate() ? -1 : 1;
+            }
+        });
+
+        // Wrap each interaction in its own list so that an icon is displayed for each entry
+        List<List<Entry>> interactionsWrapper = new ArrayList<>();
+        for (Entry contactInteraction : contactInteractionsToEntries(allInteractions)) {
+            List<Entry> entryListWrapper = new ArrayList<>(1);
+            entryListWrapper.add(contactInteraction);
+            interactionsWrapper.add(entryListWrapper);
+        }
+        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);
         }
 
-        private void renderSelectedRectangle(int position, float positionOffset) {
-            final RelativeLayout.LayoutParams layoutParams =
-                    (RelativeLayout.LayoutParams) mSelectedTabRectangle.getLayoutParams();
-            final int width = layoutParams.width;
-            layoutParams.setMarginStart((int) ((position + positionOffset) * width));
-            mSelectedTabRectangle.setLayoutParams(layoutParams);
+        // 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);
         }
     }
 
-    private final QuickContactListFragment.Listener mListFragmentListener =
-            new QuickContactListFragment.Listener() {
-        @Override
-        public void onOutsideClick() {
-            // If there is no background, we want to dismiss, because to the user it seems
-            // like he had touched outside. If the ViewPager is solid however, those taps
-            // must be ignored
-            final boolean isTransparent = mListPager.getBackground() == null;
-            if (isTransparent) handleOutsideTouch();
+    @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);
+        }
+    }
+
+    /**
+     * 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() {
+        final Intent intent = new Intent(Intent.ACTION_EDIT, mLookupUri);
+        mContactLoader.cacheResult();
+        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
+        return intent;
+    }
+
+    private void editContact() {
+        startActivityForResult(getEditContactIntent(), REQUEST_CODE_CONTACT_EDITOR_ACTIVITY);
+    }
+
+    private void toggleStar(MenuItem starredMenuItem) {
+        // Make sure there is a contact
+        if (mLookupUri != 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, mLookupUri, !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);
+        }
+    }
+
+    /**
+     * Calls into the contacts provider to get a pre-authorized version of the given URI.
+     */
+    private Uri getPreAuthorizedUri(Uri uri) {
+        final Bundle uriBundle = new Bundle();
+        uriBundle.putParcelable(ContactsContract.Authorization.KEY_URI_TO_AUTHORIZE, uri);
+        final Bundle authResponse = getContentResolver().call(
+                ContactsContract.AUTHORITY_URI,
+                ContactsContract.Authorization.AUTHORIZATION_METHOD,
+                null,
+                uriBundle);
+        if (authResponse != null) {
+            return (Uri) authResponse.getParcelable(
+                    ContactsContract.Authorization.KEY_AUTHORIZED_URI);
+        } else {
+            return uri;
+        }
+    }
+
+    private void shareContact() {
+        final String lookupKey = mContactData.getLookupKey();
+        Uri shareUri = Uri.withAppendedPath(Contacts.CONTENT_VCARD_URI, lookupKey);
+        if (mContactData.isUserProfile()) {
+            // User is sharing the profile.  We don't want to force the receiver to have
+            // the highly-privileged READ_PROFILE permission, so we need to request a
+            // pre-authorized URI from the provider.
+            shareUri = getPreAuthorizedUri(shareUri);
         }
 
-        @Override
-        public void onItemClicked(final Action action, final boolean alternate) {
-            final Runnable startAppRunnable = new Runnable() {
-                @Override
-                public void run() {
-                    try {
-                        startActivity(alternate ? action.getAlternateIntent() : action.getIntent());
-                    } catch (ActivityNotFoundException e) {
-                        Toast.makeText(QuickContactActivity.this, R.string.quickcontact_missing_app,
+        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 = getText(R.string.share_via);
+        final Intent chooseIntent = Intent.createChooser(intent, chooseTitle);
+
+        try {
+            this.startActivity(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.
+                        Toast.makeText(QuickContactActivity.this,
+                                R.string.createContactShortcutSuccessful,
                                 Toast.LENGTH_SHORT).show();
                     }
 
-                    close(false);
-                }
-            };
-            // Defer the action to make the window properly repaint
-            new Handler().post(startAppRunnable);
+                });
+        builder.createContactShortcutIntent(mLookupUri);
+    }
+
+    @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 shareMenuItem = menu.findItem(R.id.menu_share);
+            shareMenuItem.setVisible(isContactShareable());
+
+            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)) {
+                    DirectoryContactUtil.addToMyContacts(mContactData, this, getFragmentManager(),
+                            mSelectAccountFragmentListener);
+                } else if (InvisibleContactUtil.isInvisibleAndAddable(mContactData, this)) {
+                    InvisibleContactUtil.addToDefaultGroup(mContactData, this);
+                } else if (isContactEditable()) {
+                    editContact();
+                }
+                return true;
+            case R.id.menu_share:
+                shareContact();
+                return true;
+            case R.id.menu_create_contact_shortcut:
+                createLauncherShortcutWithContact();
+                return true;
+            default:
+                return super.onOptionsItemSelected(item);
+        }
+    }
 }
diff --git a/src/com/android/contacts/quickcontact/QuickContactListFragment.java b/src/com/android/contacts/quickcontact/QuickContactListFragment.java
deleted file mode 100644
index 761c854..0000000
--- a/src/com/android/contacts/quickcontact/QuickContactListFragment.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.quickcontact;
-
-import android.app.Fragment;
-import android.content.ClipboardManager;
-import android.content.ClipData;
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.View.OnLongClickListener;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.ImageView;
-import android.widget.ListView;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.android.contacts.common.ContactPresenceIconUtil;
-import com.android.contacts.R;
-
-import java.util.List;
-
-/** A fragment that shows the list of resolve items below a tab */
-public class QuickContactListFragment extends Fragment {
-    private ListView mListView;
-    private List<Action> mActions;
-    private RelativeLayout mFragmentContainer;
-    private Listener mListener;
-    private String mMimeType;
-    private ClipboardManager mClipBoard;
-    private Toast mLongPressToast;
-
-    public QuickContactListFragment(String mimeType) {
-        setRetainInstance(true);
-        this.mMimeType = mimeType;
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
-        mFragmentContainer = (RelativeLayout) inflater.inflate(R.layout.quickcontact_list_fragment,
-                container, false);
-        mListView = (ListView) mFragmentContainer.findViewById(R.id.list);
-        mListView.setItemsCanFocus(true);
-
-        mFragmentContainer.setOnClickListener(mOutsideClickListener);
-        mClipBoard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
-        mLongPressToast = Toast.makeText(getActivity(),
-                R.string.toast_text_copied, Toast.LENGTH_SHORT);
-
-        configureAdapter();
-        return mFragmentContainer;
-    }
-
-    public String getMimeType() {
-        return mMimeType;
-    }
-
-    public void setActions(List<Action> actions) {
-        mActions = actions;
-        configureAdapter();
-    }
-
-    public void setListener(Listener value) {
-        mListener = value;
-    }
-
-    private void configureAdapter() {
-        if (mActions == null || mListView == null) return;
-
-        mListView.setAdapter(new BaseAdapter() {
-            @Override
-            public int getCount() {
-                return mActions.size();
-            }
-
-            @Override
-            public Object getItem(int position) {
-                return mActions.get(position);
-            }
-
-            @Override
-            public long getItemId(int position) {
-                return position;
-            }
-
-            @Override
-            public View getView(int position, View convertView, ViewGroup parent) {
-                // Set action title based on summary value
-                final Action action = mActions.get(position);
-                String mimeType = action.getMimeType();
-
-                final View resultView = convertView != null ? convertView
-                        : getActivity().getLayoutInflater().inflate(
-                                mimeType.equals(StructuredPostal.CONTENT_ITEM_TYPE) ?
-                                        R.layout.quickcontact_list_item_address :
-                                        R.layout.quickcontact_list_item,
-                                        parent, false);
-
-                // TODO: Put those findViewByIds in a container
-                final TextView text1 = (TextView) resultView.findViewById(
-                        android.R.id.text1);
-                final TextView text2 = (TextView) resultView.findViewById(
-                        android.R.id.text2);
-                final View actionsContainer = resultView.findViewById(
-                        R.id.actions_view_container);
-                final ImageView alternateActionButton = (ImageView) resultView.findViewById(
-                        R.id.secondary_action_button);
-                final View alternateActionDivider = resultView.findViewById(R.id.vertical_divider);
-                final ImageView presenceIconView =
-                        (ImageView) resultView.findViewById(R.id.presence_icon);
-
-                actionsContainer.setOnClickListener(mPrimaryActionClickListener);
-                actionsContainer.setOnLongClickListener(mPrimaryActionLongClickListener);
-                actionsContainer.setTag(action);
-                alternateActionButton.setOnClickListener(mSecondaryActionClickListener);
-                alternateActionButton.setTag(action);
-
-                final boolean hasAlternateAction = action.getAlternateIntent() != null;
-                alternateActionDivider.setVisibility(hasAlternateAction ? View.VISIBLE : View.GONE);
-                alternateActionButton.setImageDrawable(action.getAlternateIcon());
-                alternateActionButton.setContentDescription(action.getAlternateIconDescription());
-                alternateActionButton.setVisibility(hasAlternateAction ? View.VISIBLE : View.GONE);
-
-                if (mimeType.equals(Phone.CONTENT_ITEM_TYPE)) {
-                    // Force LTR text direction for phone numbers
-                    text1.setTextDirection(View.TEXT_DIRECTION_LTR);
-
-                    // Special case for phone numbers in accessibility mode
-                    text1.setContentDescription(getActivity().getString(
-                            R.string.description_dial_phone_number, action.getBody()));
-                    if (hasAlternateAction) {
-                        alternateActionButton.setContentDescription(getActivity()
-                                .getString(R.string.description_send_message, action.getBody()));
-                    }
-                }
-
-                text1.setText(action.getBody());
-                if (text2 != null) {
-                    CharSequence subtitle = action.getSubtitle();
-                    text2.setText(subtitle);
-                    if (TextUtils.isEmpty(subtitle)) {
-                        text2.setVisibility(View.GONE);
-                    } else {
-                        text2.setVisibility(View.VISIBLE);
-                    }
-                }
-                final Drawable presenceIcon = ContactPresenceIconUtil.getPresenceIcon(
-                        getActivity(), action.getPresence());
-                if (presenceIcon != null) {
-                    presenceIconView.setImageDrawable(presenceIcon);
-                    presenceIconView.setVisibility(View.VISIBLE);
-                } else {
-                    presenceIconView.setVisibility(View.GONE);
-                }
-                return resultView;
-            }
-        });
-    }
-
-    /** A data item (e.g. phone number) was clicked */
-    protected final OnClickListener mPrimaryActionClickListener = new OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            final Action action = (Action) v.getTag();
-            if (mListener != null) mListener.onItemClicked(action, false);
-        }
-    };
-
-    /** A data item was long clicked */
-    protected final OnLongClickListener mPrimaryActionLongClickListener = new OnLongClickListener() {
-        @Override
-        public boolean onLongClick(View v) {
-            final Action action = (Action) v.getTag();
-            ClipData clip = android.content.ClipData.newPlainText(
-                    action.getSubtitle(), action.getBody());
-            mClipBoard.setPrimaryClip(clip);
-            mLongPressToast.show();
-            return true;
-        }
-    };
-
-    /** A secondary action (SMS) was clicked */
-    protected final OnClickListener mSecondaryActionClickListener = new OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            final Action action = (Action) v.getTag();
-            if (mListener != null) mListener.onItemClicked(action, true);
-        }
-    };
-
-    private final OnClickListener mOutsideClickListener = new OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            if (mListener != null) mListener.onOutsideClick();
-        }
-    };
-
-    public interface Listener {
-        void onOutsideClick();
-        void onItemClicked(Action action, boolean alternate);
-    }
-}
diff --git a/src/com/android/contacts/quickcontact/ResolveCache.java b/src/com/android/contacts/quickcontact/ResolveCache.java
index af5d160..2df867a 100644
--- a/src/com/android/contacts/quickcontact/ResolveCache.java
+++ b/src/com/android/contacts/quickcontact/ResolveCache.java
@@ -117,16 +117,14 @@
     }
 
     /**
-     * Get the {@link Entry} best associated with the given {@link Action},
+     * 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(Action action) {
-        final String mimeType = action.getMimeType();
+    protected Entry getEntry(String mimeType, Intent intent) {
         Entry entry = mCache.get(mimeType);
         if (entry != null) return entry;
         entry = new Entry();
 
-        Intent intent = action.getIntent();
         if (SipAddress.CONTENT_ITEM_TYPE.equals(mimeType)
                 && !PhoneCapabilityTester.isSipPhone(mContext)) {
             intent = null;
@@ -196,28 +194,10 @@
 
     /**
      * Check {@link PackageManager} to see if any apps offer to handle the
-     * given {@link Action}.
+     * given {@link Intent}.
      */
-    public boolean hasResolve(Action action) {
-        return getEntry(action).bestResolve != null;
-    }
-
-    /**
-     * Find the best description for the given {@link Action}, usually used
-     * for accessibility purposes.
-     */
-    public CharSequence getDescription(Action action, String name) {
-        final ResolveInfo info = getEntry(action).bestResolve;
-        final CharSequence infoStr = info != null ? info.loadLabel(mPackageManager) : null;
-        CharSequence actionDesc = action.getSubtitle();
-        CharSequence strs[];
-        if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(actionDesc)) {
-            strs = new CharSequence[]{infoStr, name, actionDesc};
-        } else {
-            strs = new CharSequence[]{infoStr, action.getBody()};
-        }
-        CharSequence desc = TextUtils.join(" ", strs);
-        return !TextUtils.isEmpty(desc) ? desc : null;
+    public boolean hasResolve(String mimeType, Intent intent) {
+        return getEntry(mimeType, intent).bestResolve != null;
     }
 
     /**
@@ -225,8 +205,8 @@
      * based on the {@link ResolveInfo} found through a
      * {@link PackageManager} query.
      */
-    public Drawable getIcon(Action action) {
-        return getEntry(action).icon;
+    public Drawable getIcon(String mimeType, Intent intent) {
+        return getEntry(mimeType, intent).icon;
     }
 
     public void clear() {
diff --git a/src/com/android/contacts/quickcontact/WhitenessUtils.java b/src/com/android/contacts/quickcontact/WhitenessUtils.java
new file mode 100644
index 0000000..b7117e4
--- /dev/null
+++ b/src/com/android/contacts/quickcontact/WhitenessUtils.java
@@ -0,0 +1,128 @@
+/*
+ * 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.graphics.Bitmap;
+import android.graphics.Color;
+import android.os.Trace;
+
+/**
+ * Utility class for determining whether Bitmaps contain a lot of white pixels in locations
+ * where QuickContactActivity will want to place white text or buttons.
+ *
+ * This class liberally considers bitmaps white. All constants are chosen with a small amount of
+ * experimentation. Despite a lack of rigour, this class successfully allows QuickContactsActivity
+ * to detect when Bitmap are obviously *not* white. Therefore, it is better than nothing.
+ */
+public class WhitenessUtils {
+
+    /**
+     * Analyze this amount of the top and bottom of the bitmap.
+     */
+    private static final float HEIGHT_PERCENT_ANALYZED = 0.2f;
+
+    /**
+     * An image with more than this amount white, is considered to be a whitish image.
+     */
+    private static final float PROPORTION_WHITE_CUTOFF = 0.2f;
+
+    private static final float HALF = 0.5f;
+
+    /**
+     * Colors with luma greater than this are considered close to white. This value is lower than
+     * the value used in Palette's ColorUtils, since we want to liberally declare images white.
+     */
+    private static final float LUMINANCE_OF_WHITE =  0.90f;
+
+    /**
+     * Returns true if 20% of the image's top right corner is white, or 20% of the bottom
+     * of the image is white.
+     */
+    public static boolean isBitmapWhiteAtTopOrBottom(Bitmap largeBitmap) {
+        Trace.beginSection("isBitmapWhiteAtTopOrBottom");
+
+        final Bitmap smallBitmap = scaleBitmapDown(largeBitmap);
+
+        final int[] rgbPixels = new int[smallBitmap.getWidth() * smallBitmap.getHeight()];
+        smallBitmap.getPixels(rgbPixels, 0, smallBitmap.getWidth(), 0, 0,
+                smallBitmap.getWidth(), smallBitmap.getHeight());
+
+        // look at top right corner of the bitmap
+        int whiteCount = 0;
+        for (int y = 0; y < smallBitmap.getHeight() * HEIGHT_PERCENT_ANALYZED; y++) {
+            for (int x = (int) (smallBitmap.getWidth() * HALF); x < smallBitmap.getWidth(); x++) {
+                final int rgb = rgbPixels[y * smallBitmap.getWidth() + x];
+                if (isWhite(rgb)) {
+                    whiteCount ++;
+                }
+            }
+        }
+        int totalPixels = (int) (smallBitmap.getHeight() * smallBitmap.getWidth()
+                * HALF * HEIGHT_PERCENT_ANALYZED);
+        if (whiteCount / (float) totalPixels > PROPORTION_WHITE_CUTOFF) {
+            return true;
+        }
+
+        // look at bottom portion of bitmap
+        whiteCount = 0;
+        for (int y = (int) (smallBitmap.getHeight() * (1 - HEIGHT_PERCENT_ANALYZED));
+                y <  smallBitmap.getHeight(); y++) {
+            for (int x = 0; x < smallBitmap.getWidth(); x++) {
+                final int rgb = rgbPixels[y * smallBitmap.getWidth() + x];
+                if (isWhite(rgb)) {
+                    whiteCount ++;
+                }
+            }
+        }
+
+        totalPixels = (int) (smallBitmap.getHeight()
+                * smallBitmap.getWidth() * HEIGHT_PERCENT_ANALYZED);
+
+        Trace.endSection();
+        return whiteCount / (float) totalPixels > PROPORTION_WHITE_CUTOFF;
+    }
+
+    private static boolean isWhite(int rgb) {
+        return calculateXyzLuma(rgb) > LUMINANCE_OF_WHITE;
+    }
+
+    private static float calculateXyzLuma(int rgb) {
+        return (0.2126f * Color.red(rgb) +
+                0.7152f * Color.green(rgb) +
+                0.0722f * Color.blue(rgb)) / 255f;
+    }
+
+    /**
+     * Scale down the bitmap in order to make color analysis faster. Taken from Palette.
+     */
+    private static Bitmap scaleBitmapDown(Bitmap bitmap) {
+        final int CALCULATE_BITMAP_MIN_DIMENSION = 100;
+        final int minDimension = Math.min(bitmap.getWidth(), bitmap.getHeight());
+
+        if (minDimension <= CALCULATE_BITMAP_MIN_DIMENSION) {
+            // If the bitmap is small enough already, just return it
+            return bitmap;
+        }
+
+        final float scaleRatio = CALCULATE_BITMAP_MIN_DIMENSION / (float) minDimension;
+        return Bitmap.createScaledBitmap(bitmap,
+                Math.round(bitmap.getWidth() * scaleRatio),
+                Math.round(bitmap.getHeight() * scaleRatio),
+                false);
+    }
+}
diff --git a/src/com/android/contacts/util/ContactBadgeUtil.java b/src/com/android/contacts/util/ContactBadgeUtil.java
deleted file mode 100644
index fe792d7..0000000
--- a/src/com/android/contacts/util/ContactBadgeUtil.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.util;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.res.Resources;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.text.TextUtils;
-import android.text.format.DateUtils;
-import android.util.Log;
-
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.util.StreamItemEntry;
-import com.android.contacts.R;
-
-/**
- * Provides static functions to extract summary information for aggregate contacts
- */
-public class ContactBadgeUtil {
-    private static final String TAG = "ContactBadgeUtil";
-
-    /**
-     * Returns the social snippet attribution for the given stream item entry, including the date.
-     */
-    public static CharSequence getSocialDate(StreamItemEntry streamItem, Context context) {
-        final CharSequence timestampDisplayValue;
-        final Long statusTimestamp = streamItem.getTimestamp();
-        if (statusTimestamp  != null) {
-            // Set the date/time field by mixing relative and absolute
-            // times.
-            int flags = DateUtils.FORMAT_ABBREV_RELATIVE;
-
-            timestampDisplayValue = DateUtils.getRelativeTimeSpanString(
-                    statusTimestamp.longValue(), System.currentTimeMillis(),
-                    DateUtils.MINUTE_IN_MILLIS, flags);
-        } else {
-            timestampDisplayValue = null;
-        }
-
-
-        String labelDisplayValue = null;
-
-        final String statusLabelRes = streamItem.getLabelRes();
-        final String statusResPackage = streamItem.getResPackage();
-
-        // Package name used for resources.getIdentifier()
-        String identiferPackage = statusResPackage;
-        if (statusLabelRes  != null) {
-            Resources resources;
-            if (TextUtils.isEmpty(statusResPackage)) {
-                resources = context.getResources();
-                // In this case, we're using the framework resources.
-                identiferPackage = "android";
-            } else {
-                PackageManager pm = context.getPackageManager();
-                try {
-                    resources = pm.getResourcesForApplication(statusResPackage);
-                } catch (NameNotFoundException e) {
-                    Log.w(TAG, "Contact status update resource package not found: "
-                            + statusResPackage);
-                    resources = null;
-                }
-            }
-
-            if (resources != null) {
-                final int resId = resources.getIdentifier(statusLabelRes, "string",
-                        identiferPackage);
-                if (resId == 0) {
-                    Log.w(TAG, "Contact status update resource not found: " + statusLabelRes +
-                            " in " + statusResPackage);
-                } else {
-                    labelDisplayValue = resources.getString(resId);
-                }
-            }
-        }
-
-        final CharSequence attribution;
-        if (timestampDisplayValue != null && labelDisplayValue != null) {
-            attribution = context.getString(
-                    R.string.contact_status_update_attribution_with_date,
-                    timestampDisplayValue, labelDisplayValue);
-        } else if (timestampDisplayValue == null && labelDisplayValue != null) {
-            attribution = context.getString(
-                    R.string.contact_status_update_attribution,
-                    labelDisplayValue);
-        } else if (timestampDisplayValue != null) {
-            attribution = timestampDisplayValue;
-        } else {
-            attribution = null;
-        }
-        return attribution;
-    }
-
-    public static Bitmap loadDefaultAvatarPhoto(Context context, boolean hires, boolean darkTheme) {
-        return BitmapFactory.decodeResource(context.getResources(),
-                R.drawable.ic_contacts_holo_dark);
-    }
-}
diff --git a/src/com/android/contacts/util/HtmlUtils.java b/src/com/android/contacts/util/HtmlUtils.java
deleted file mode 100644
index edcda13..0000000
--- a/src/com/android/contacts/util/HtmlUtils.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.util;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.text.Html;
-import android.text.Html.ImageGetter;
-import android.text.Html.TagHandler;
-import android.text.SpannableStringBuilder;
-import android.text.Spanned;
-import android.text.TextUtils;
-import android.text.style.ImageSpan;
-import android.text.style.QuoteSpan;
-
-import com.android.contacts.R;
-import com.google.common.annotations.VisibleForTesting;
-
-/**
- * Provides static functions to perform custom HTML to text conversions.
- * Specifically, it adjusts the color and padding of the vertical
- * stripe on block quotes and alignment of inlined images.
- */
-@VisibleForTesting
-public class HtmlUtils {
-
-    /**
-     * Converts HTML string to a {@link Spanned} text, adjusting formatting. Any extra new line
-     * characters at the end of the text will be trimmed.
-     */
-    public static Spanned fromHtml(Context context, String text) {
-        if (TextUtils.isEmpty(text)) {
-            return null;
-        }
-        Spanned spanned = Html.fromHtml(text);
-        return postprocess(context, spanned);
-    }
-
-    /**
-     * Converts HTML string to a {@link Spanned} text, adjusting formatting and using a custom
-     * image getter. Any extra new line characters at the end of the text will be trimmed.
-     */
-    public static CharSequence fromHtml(Context context, String text, ImageGetter imageGetter,
-            TagHandler tagHandler) {
-        if (TextUtils.isEmpty(text)) {
-            return null;
-        }
-        return postprocess(context, Html.fromHtml(text, imageGetter, tagHandler));
-    }
-
-    /**
-     * Replaces some spans with custom versions of those. Any extra new line characters at the end
-     * of the text will be trimmed.
-     */
-    @VisibleForTesting
-    static Spanned postprocess(Context context, Spanned original) {
-        if (original == null) {
-            return null;
-        }
-        final int length = original.length();
-        if (length == 0) {
-            return original; // Bail early.
-        }
-
-        // If it's a SpannableStringBuilder, just use it.  Otherwise, create a new
-        // SpannableStringBuilder based on the passed Spanned.
-        final SpannableStringBuilder builder;
-        if (original instanceof SpannableStringBuilder) {
-            builder = (SpannableStringBuilder) original;
-        } else {
-            builder = new SpannableStringBuilder(original);
-        }
-
-        final QuoteSpan[] quoteSpans = builder.getSpans(0, length, QuoteSpan.class);
-        if (quoteSpans != null && quoteSpans.length != 0) {
-            Resources resources = context.getResources();
-            int color = resources.getColor(R.color.stream_item_stripe_color);
-            int width = resources.getDimensionPixelSize(R.dimen.stream_item_stripe_width);
-            for (int i = 0; i < quoteSpans.length; i++) {
-                replaceSpan(builder, quoteSpans[i], new StreamItemQuoteSpan(color, width));
-            }
-        }
-
-        final ImageSpan[] imageSpans = builder.getSpans(0, length, ImageSpan.class);
-        if (imageSpans != null) {
-            for (int i = 0; i < imageSpans.length; i++) {
-                ImageSpan span = imageSpans[i];
-                replaceSpan(builder, span, new ImageSpan(span.getDrawable(),
-                        ImageSpan.ALIGN_BASELINE));
-            }
-        }
-
-        // Trim the trailing new line characters at the end of the text (which can be added
-        // when HTML block quote tags are turned into new line characters).
-        int end = length;
-        for (int i = builder.length() - 1; i >= 0; i--) {
-            if (builder.charAt(i) != '\n') {
-                break;
-            }
-            end = i;
-        }
-
-        // If there's no trailing newlines, just return it.
-        if (end == length) {
-            return builder;
-        }
-
-        // Otherwise, Return a substring of the original {@link Spanned} text
-        // from the start index (inclusive) to the end index (exclusive).
-        return new SpannableStringBuilder(builder, 0, end);
-    }
-
-    /**
-     * Replaces one span with the other.
-     */
-    private static void replaceSpan(SpannableStringBuilder builder, Object originalSpan,
-            Object newSpan) {
-        builder.setSpan(newSpan,
-                builder.getSpanStart(originalSpan),
-                builder.getSpanEnd(originalSpan),
-                builder.getSpanFlags(originalSpan));
-        builder.removeSpan(originalSpan);
-    }
-
-    public static class StreamItemQuoteSpan extends QuoteSpan {
-        private final int mWidth;
-
-        public StreamItemQuoteSpan(int color, int width) {
-            super(color);
-            this.mWidth = width;
-        }
-
-        /**
-         * {@inheritDoc}
-         */
-        @Override
-        public int getLeadingMargin(boolean first) {
-            return mWidth;
-        }
-    }
-}
diff --git a/src/com/android/contacts/util/ImageViewDrawableSetter.java b/src/com/android/contacts/util/ImageViewDrawableSetter.java
index 4dfa66c..226909e 100644
--- a/src/com/android/contacts/util/ImageViewDrawableSetter.java
+++ b/src/com/android/contacts/util/ImageViewDrawableSetter.java
@@ -89,7 +89,9 @@
         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 && Arrays.equals(mCompressed, compressed)) {
+        } 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
@@ -149,10 +151,11 @@
         }
 
         if (TextUtils.isEmpty(mContact.getLookupKey())) {
-            request = new DefaultImageRequest(null, mContact.getDisplayName(), contactType);
+            request = new DefaultImageRequest(null, mContact.getDisplayName(), contactType,
+                    false /* isCircular */);
         } else {
             request = new DefaultImageRequest(mContact.getDisplayName(), mContact.getLookupKey(),
-                    contactType);
+                    contactType, false /* isCircular */);
         }
         return ContactPhotoManager.getDefaultAvatarDrawableForContact(resources, true, request);
     }
diff --git a/src/com/android/contacts/util/PhoneCapabilityTester.java b/src/com/android/contacts/util/PhoneCapabilityTester.java
index e20a076..eec9916 100644
--- a/src/com/android/contacts/util/PhoneCapabilityTester.java
+++ b/src/com/android/contacts/util/PhoneCapabilityTester.java
@@ -102,19 +102,4 @@
         final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
         return isIntentRegistered(context, intent);
     }
-
-    /**
-     * True if we are using two-pane layouts ("tablet mode"), false if we are using single views
-     * ("phone mode")
-     */
-    public static boolean isUsingTwoPanes(Context context) {
-        return context.getResources().getBoolean(R.bool.config_use_two_panes);
-    }
-
-    /**
-     * True if the favorites tab should be shown in two-pane mode.  False, otherwise.
-     */
-    public static boolean isUsingTwoPanesInFavorites(Context context) {
-        return context.getResources().getBoolean(R.bool.config_use_two_panes_in_favorites);
-    }
 }
diff --git a/src/com/android/contacts/util/SchedulingUtils.java b/src/com/android/contacts/util/SchedulingUtils.java
index 94294fa..fbb2458 100644
--- a/src/com/android/contacts/util/SchedulingUtils.java
+++ b/src/com/android/contacts/util/SchedulingUtils.java
@@ -19,6 +19,7 @@
 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 {
@@ -37,15 +38,17 @@
         view.getViewTreeObserver().addOnGlobalLayoutListener(listener);
     }
 
-    /** Runs a piece of code just before the next draw. */
-    public static void doAfterDraw(final View view, final Runnable runnable) {
-        final OnDrawListener listener = new OnDrawListener() {
+    /** 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 void onDraw() {
-                view.getViewTreeObserver().removeOnDrawListener(this);
+            public boolean onPreDraw() {
+                view.getViewTreeObserver().removeOnPreDrawListener(this);
                 runnable.run();
+                return drawNextFrame;
             }
         };
-        view.getViewTreeObserver().addOnDrawListener(listener);
+        view.getViewTreeObserver().addOnPreDrawListener(listener);
     }
 }
diff --git a/src/com/android/contacts/util/StreamItemEntry.java b/src/com/android/contacts/util/StreamItemEntry.java
deleted file mode 100644
index e5696a1..0000000
--- a/src/com/android/contacts/util/StreamItemEntry.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.util;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.provider.ContactsContract.StreamItems;
-import android.text.Html;
-
-import com.android.contacts.detail.ContactDetailDisplayUtils;
-import com.android.contacts.common.test.NeededForTesting;
-
-import com.google.common.annotations.VisibleForTesting;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Data object for a social stream item.  Social stream items may contain multiple
- * mPhotos.  Social stream item entries are comparable; entries with more recent
- * timestamps will be displayed on top.
- */
-public class StreamItemEntry implements Comparable<StreamItemEntry> {
-
-    // Basic stream item fields.
-    private final long mId;
-    private final String mText;
-    private final String mComments;
-    private final long mTimestamp;
-    private final String mAccountType;
-    private final String mAccountName;
-    private final String mDataSet;
-
-    private boolean mDecoded;
-    private CharSequence mDecodedText;
-    private CharSequence mDecodedComments;
-
-    // Package references for label and icon resources.
-    private final String mResPackage;
-    private final String mIconRes;
-    private final String mLabelRes;
-
-    // Photos associated with this stream item.
-    private List<StreamItemPhotoEntry> mPhotos;
-
-    @NeededForTesting
-    public static StreamItemEntry createForTest(long id, String text, String comments,
-            long timestamp, String accountType, String accountName, String dataSet,
-            String resPackage, String iconRes, String labelRes) {
-        return new StreamItemEntry(id, text, comments, timestamp, accountType, accountName, dataSet,
-                resPackage, iconRes, labelRes);
-    }
-
-    private StreamItemEntry(long id, String text, String comments, long timestamp,
-            String accountType, String accountName, String dataSet, String resPackage,
-            String iconRes, String labelRes) {
-        mId = id;
-        mText = text;
-        mComments = comments;
-        mTimestamp = timestamp;
-        mAccountType = accountType;
-        mAccountName = accountName;
-        mDataSet = dataSet;
-        mResPackage = resPackage;
-        mIconRes = iconRes;
-        mLabelRes = labelRes;
-        mPhotos = new ArrayList<StreamItemPhotoEntry>();
-    }
-
-    public StreamItemEntry(Cursor cursor) {
-        // This is expected to be populated via a cursor containing all StreamItems columns in
-        // its projection.
-        mId = getLong(cursor, StreamItems._ID);
-        mText = getString(cursor, StreamItems.TEXT);
-        mComments = getString(cursor, StreamItems.COMMENTS);
-        mTimestamp = getLong(cursor, StreamItems.TIMESTAMP);
-        mAccountType = getString(cursor, StreamItems.ACCOUNT_TYPE);
-        mAccountName = getString(cursor, StreamItems.ACCOUNT_NAME);
-        mDataSet = getString(cursor, StreamItems.DATA_SET);
-        mResPackage = getString(cursor, StreamItems.RES_PACKAGE);
-        mIconRes = getString(cursor, StreamItems.RES_ICON);
-        mLabelRes = getString(cursor, StreamItems.RES_LABEL);
-        mPhotos = new ArrayList<StreamItemPhotoEntry>();
-    }
-
-    public void addPhoto(StreamItemPhotoEntry photoEntry) {
-        mPhotos.add(photoEntry);
-    }
-
-    @Override
-    public int compareTo(StreamItemEntry other) {
-        return mTimestamp == other.mTimestamp ? 0 : mTimestamp > other.mTimestamp ? -1 : 1;
-    }
-
-    public long getId() {
-        return mId;
-    }
-
-    public String getText() {
-        return mText;
-    }
-
-    public String getComments() {
-        return mComments;
-    }
-
-    public long getTimestamp() {
-        return mTimestamp;
-    }
-
-    public String getAccountType() {
-        return mAccountType;
-    }
-
-    public String getAccountName() {
-        return mAccountName;
-    }
-
-    public String getDataSet() {
-        return mDataSet;
-    }
-
-    public String getResPackage() {
-        return mResPackage;
-    }
-
-    public String getIconRes() {
-        return mIconRes;
-    }
-
-    public String getLabelRes() {
-        return mLabelRes;
-    }
-
-    public List<StreamItemPhotoEntry> getPhotos() {
-        Collections.sort(mPhotos);
-        return mPhotos;
-    }
-
-    /**
-     * Make {@link #getDecodedText} and {@link #getDecodedComments} available.  Must be called
-     * before calling those.
-     *
-     * We can't do this automatically in the getters, because it'll require a {@link Context}.
-     */
-    @VisibleForTesting
-    public void decodeHtml(Context context) {
-        final Html.ImageGetter imageGetter = ContactDetailDisplayUtils.getImageGetter(context);
-        if (mText != null) {
-            mDecodedText = HtmlUtils.fromHtml(context, mText, imageGetter, null);
-        }
-        if (mComments != null) {
-            mDecodedComments = HtmlUtils.fromHtml(context, mComments, imageGetter, null);
-        }
-        mDecoded = true;
-    }
-
-    public CharSequence getDecodedText() {
-        checkDecoded();
-        return mDecodedText;
-    }
-
-    public CharSequence getDecodedComments() {
-        checkDecoded();
-        return mDecodedComments;
-    }
-
-    private void checkDecoded() {
-        if (!mDecoded) {
-            throw new IllegalStateException("decodeHtml must have been called");
-        }
-    }
-
-    private static String getString(Cursor cursor, String columnName) {
-        return cursor.getString(cursor.getColumnIndex(columnName));
-    }
-
-    private static long getLong(Cursor cursor, String columnName) {
-        final int columnIndex = cursor.getColumnIndex(columnName);
-        return cursor.getLong(columnIndex);
-    }
-}
diff --git a/src/com/android/contacts/util/StreamItemPhotoEntry.java b/src/com/android/contacts/util/StreamItemPhotoEntry.java
deleted file mode 100644
index ad69e5c..0000000
--- a/src/com/android/contacts/util/StreamItemPhotoEntry.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.util;
-
-import android.database.Cursor;
-import android.provider.ContactsContract.PhotoFiles;
-import android.provider.ContactsContract.StreamItemPhotos;
-
-/**
- * Data object for a photo associated with a social stream item.  These are comparable;
- * entries with a lower sort index will be displayed on top (with the ID used as a
- * tie-breaker).
- */
-public class StreamItemPhotoEntry implements Comparable<StreamItemPhotoEntry> {
-    private final long mId;
-    private final int mSortIndex;
-    private final long mPhotoFileId;
-    private final String mPhotoUri;
-    private final int mHeight;
-    private final int mWidth;
-    private final int mFileSize;
-
-    public StreamItemPhotoEntry(long id, int sortIndex, long photoFileId, String photoUri,
-            int height, int width, int fileSize) {
-        mId = id;
-        mSortIndex = sortIndex;
-        mPhotoFileId = photoFileId;
-        mPhotoUri = photoUri;
-        mHeight = height;
-        mWidth = width;
-        mFileSize = fileSize;
-    }
-
-    public StreamItemPhotoEntry(Cursor cursor) {
-        // This is expected to be populated via a cursor containing a join of all
-        // StreamItemPhotos columns and all PhotoFiles columns (except for ID).
-        mId = getLong(cursor, StreamItemPhotos._ID);
-        mSortIndex = getInt(cursor, StreamItemPhotos.SORT_INDEX, -1);
-        mPhotoFileId = getLong(cursor, StreamItemPhotos.PHOTO_FILE_ID);
-        mPhotoUri = getString(cursor, StreamItemPhotos.PHOTO_URI);
-        mHeight = getInt(cursor, PhotoFiles.HEIGHT, -1);
-        mWidth = getInt(cursor, PhotoFiles.WIDTH, -1);
-        mFileSize = getInt(cursor, PhotoFiles.FILESIZE, -1);
-    }
-
-    public long getId() {
-        return mId;
-    }
-
-    public int getSortIndex() {
-        return mSortIndex;
-    }
-
-    public long getPhotoFileId() {
-        return mPhotoFileId;
-    }
-
-    public String getPhotoUri() {
-        return mPhotoUri;
-    }
-
-    public int getHeight() {
-        return mHeight;
-    }
-
-    public int getWidth() {
-        return mWidth;
-    }
-
-    public int getFileSize() {
-        return mFileSize;
-    }
-
-    @Override
-    public int compareTo(StreamItemPhotoEntry streamItemPhotoEntry) {
-        // Sort index is used to compare, falling back to ID if neither entry has a
-        // sort index specified (entries without a sort index are sorted after entries
-        // that have one).
-        if (mSortIndex == streamItemPhotoEntry.mSortIndex) {
-            if (mSortIndex == -1) {
-                return mId == streamItemPhotoEntry.mId ? 0
-                        : mId < streamItemPhotoEntry.mId ? -1 : 1;
-            } else {
-                return 0;
-            }
-        } else {
-            if (mSortIndex == -1) {
-                return 1;
-            }
-            if (streamItemPhotoEntry.mSortIndex == -1) {
-                return -1;
-            }
-            return mSortIndex == streamItemPhotoEntry.mSortIndex ? 0
-                    : mSortIndex < streamItemPhotoEntry.mSortIndex ? -1 : 1;
-        }
-    }
-
-    private static String getString(Cursor cursor, String columnName) {
-        return cursor.getString(cursor.getColumnIndex(columnName));
-    }
-
-    private static int getInt(Cursor cursor, String columnName, int missingValue) {
-        final int columnIndex = cursor.getColumnIndex(columnName);
-        return cursor.isNull(columnIndex) ? missingValue : cursor.getInt(columnIndex);
-    }
-
-    private static long getLong(Cursor cursor, String columnName) {
-        final int columnIndex = cursor.getColumnIndex(columnName);
-        return cursor.getLong(columnIndex);
-    }
-}
diff --git a/src/com/android/contacts/util/StructuredPostalUtils.java b/src/com/android/contacts/util/StructuredPostalUtils.java
index 59d38ea..6e46176 100644
--- a/src/com/android/contacts/util/StructuredPostalUtils.java
+++ b/src/com/android/contacts/util/StructuredPostalUtils.java
@@ -30,4 +30,12 @@
     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/widget/AlphaTouchInterceptorOverlay.java b/src/com/android/contacts/widget/AlphaTouchInterceptorOverlay.java
index 8779a95..f203193 100644
--- a/src/com/android/contacts/widget/AlphaTouchInterceptorOverlay.java
+++ b/src/com/android/contacts/widget/AlphaTouchInterceptorOverlay.java
@@ -20,7 +20,7 @@
 import android.view.View;
 import android.widget.FrameLayout;
 
-import com.android.contacts.detail.ContactDetailDisplayUtils;
+import com.android.contacts.detail.ContactDisplayUtils;
 import com.android.contacts.util.ThemeUtils;
 
 /**
@@ -66,7 +66,7 @@
         if (mAlphaLayer == alphaLayer) return;
 
         // We're no longer the alpha-layer, so make ourself invisible.
-        if (mAlphaLayer == this) ContactDetailDisplayUtils.setAlphaOnViewBackground(this, 0.0f);
+        if (mAlphaLayer == this) ContactDisplayUtils.setAlphaOnViewBackground(this, 0.0f);
 
         mAlphaLayer = (alphaLayer == null) ? this : alphaLayer;
         setAlphaLayerValue(mAlpha);
@@ -76,7 +76,7 @@
     public void setAlphaLayerValue(float alpha) {
         mAlpha = alpha;
         if (mAlphaLayer != null) {
-            ContactDetailDisplayUtils.setAlphaOnViewBackground(mAlphaLayer, mAlpha);
+            ContactDisplayUtils.setAlphaOnViewBackground(mAlphaLayer, mAlpha);
         }
     }
 
diff --git a/src/com/android/contacts/widget/CompositeListAdapter.java b/src/com/android/contacts/widget/CompositeListAdapter.java
index d83246a..4c72ee8 100644
--- a/src/com/android/contacts/widget/CompositeListAdapter.java
+++ b/src/com/android/contacts/widget/CompositeListAdapter.java
@@ -21,7 +21,7 @@
 import android.widget.BaseAdapter;
 import android.widget.ListAdapter;
 
-import com.android.contacts.common.test.NeededForTesting;
+import com.android.contacts.common.testing.NeededForTesting;
 import com.google.common.annotations.VisibleForTesting;
 
 /**
diff --git a/src/com/android/contacts/widget/MultiShrinkScroller.java b/src/com/android/contacts/widget/MultiShrinkScroller.java
new file mode 100644
index 0000000..82b3970
--- /dev/null
+++ b/src/com/android/contacts/widget/MultiShrinkScroller.java
@@ -0,0 +1,1226 @@
+package com.android.contacts.widget;
+
+import com.android.contacts.R;
+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.Configuration;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.ColorMatrix;
+import android.graphics.ColorMatrixColorFilter;
+import android.graphics.Rect;
+import android.graphics.drawable.GradientDrawable;
+import android.hardware.display.DisplayManagerGlobal;
+import android.os.Trace;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.Display;
+import android.view.DisplayInfo;
+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.view.animation.PathInterpolator;
+import android.widget.EdgeEffect;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.Scroller;
+import android.widget.ScrollView;
+import android.widget.TextView;
+
+/**
+ * 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.
+ */
+public class MultiShrinkScroller extends FrameLayout {
+
+    /**
+     * 1000 pixels per millisecond. Ie, 1 pixel per second.
+     */
+    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 = 300;
+
+    /**
+     * Length of the entrance animation.
+     */
+    private static final int ENTRANCE_ANIMATION_SLIDE_OPEN_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.5f;
+
+    private float[] mLastEventPosition = { 0, 0 };
+    private VelocityTracker mVelocityTracker;
+    private boolean mIsBeingDragged = false;
+    private boolean mReceivedDown = 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 View mPhotoTouchInterceptOverlay;
+    /** Contains desired location/size of the title, once the header is fully compressed */
+    private TextView mInvisiblePlaceholderTextView;
+    private View mTitleGradientView;
+    private View mActionBarGradientView;
+    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 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 final Scroller mScroller;
+    private final EdgeEffect mEdgeGlowBottom;
+    private final int mTouchSlop;
+    private final int mMaximumVelocity;
+    private final int mMinimumVelocity;
+    private final int mTransparentStartHeight;
+    private final int mMaximumTitleMargin;
+    private final float mToolbarElevation;
+    private final boolean mIsTwoPanel;
+    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  ColorMatrixColorFilter mColorFilter = new ColorMatrixColorFilter(
+            mWhitenessColorMatrix);
+    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 PathInterpolator mTextSizePathInterpolator
+            = new PathInterpolator(0.16f, 0.4f, 0.2f, 1);
+
+    private final int[] mGradientColors = new int[] {0,0xAA000000};
+    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 mHeaderExpandAnimationListener = new AnimatorListenerAdapter() {
+        @Override
+        public void onAnimationEnd(Animator animation) {
+            mPhotoTouchInterceptOverlay.setClickable(true);
+        }
+    };
+
+    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);
+        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);
+
+        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) {
+        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);
+        mInvisiblePlaceholderTextView = (TextView) findViewById(R.id.placeholder_textview);
+        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);
+
+        if (!mIsTwoPanel) {
+            mPhotoTouchInterceptOverlay = findViewById(R.id.photo_touch_intercept_overlay);
+            mPhotoTouchInterceptOverlay.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    expandCollapseHeader();
+                }
+            });
+        }
+
+        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 = getWidth();
+                    mIntermediateHeaderHeight = (int) (mMaximumHeaderHeight
+                            * INTERMEDIATE_HEADER_HEIGHT_RATIO);
+                }
+                final boolean isLandscape = getResources().getConfiguration().orientation
+                        == Configuration.ORIENTATION_LANDSCAPE;
+                mMaximumPortraitHeaderHeight = isLandscape ? getHeight() : getWidth();
+                setHeaderHeight(getMaximumScrollableHeaderHeight());
+                mMaximumHeaderTextSize = mLargeTextView.getHeight();
+                if (mIsTwoPanel) {
+                    mMaximumHeaderHeight = getHeight();
+                    mMinimumHeaderHeight = mMaximumHeaderHeight;
+                    mIntermediateHeaderHeight = mMaximumHeaderHeight;
+
+                    // Permanently set photo width and height.
+                    final TypedValue photoRatio = new TypedValue();
+                    getResources().getValue(R.vals.quickcontact_photo_ratio, photoRatio,
+                            /* resolveRefs = */ true);
+                    final ViewGroup.LayoutParams photoLayoutParams
+                            = mPhotoViewContainer.getLayoutParams();
+                    photoLayoutParams.height = mMaximumHeaderHeight;
+                    photoLayoutParams.width = (int) (mMaximumHeaderHeight * photoRatio.getFloat());
+                    mPhotoViewContainer.setLayoutParams(photoLayoutParams);
+
+                    // Permanently set title width and margin.
+                    final FrameLayout.LayoutParams largeTextLayoutParams
+                            = (FrameLayout.LayoutParams) mLargeTextView.getLayoutParams();
+                    largeTextLayoutParams.width = photoLayoutParams.width -
+                            largeTextLayoutParams.leftMargin - largeTextLayoutParams.rightMargin;
+                    largeTextLayoutParams.gravity = Gravity.BOTTOM | Gravity.START;
+                    mLargeTextView.setLayoutParams(largeTextLayoutParams);
+                }
+
+                calculateCollapsedLargeTitlePadding();
+                updateHeaderTextSizeAndMargin();
+                configureGradientViewHeights();
+            }
+        });
+    }
+
+    private void configureGradientViewHeights() {
+        final float GRADIENT_SIZE_COEFFICIENT = 1.25f;
+        final FrameLayout.LayoutParams actionBarGradientLayoutParams
+                = (FrameLayout.LayoutParams) mActionBarGradientView.getLayoutParams();
+        actionBarGradientLayoutParams.height
+                = (int) (mActionBarSize * GRADIENT_SIZE_COEFFICIENT);
+        mActionBarGradientView.setLayoutParams(actionBarGradientLayoutParams);
+        final FrameLayout.LayoutParams titleGradientLayoutParams
+                = (FrameLayout.LayoutParams) mTitleGradientView.getLayoutParams();
+        final FrameLayout.LayoutParams largeTextLayoutParms
+                = (FrameLayout.LayoutParams) mLargeTextView.getLayoutParams();
+        titleGradientLayoutParams.height = (int) ((mLargeTextView.getHeight()
+                + largeTextLayoutParms.bottomMargin) * GRADIENT_SIZE_COEFFICIENT);
+        mTitleGradientView.setLayoutParams(titleGradientLayoutParams);
+    }
+
+    public void setTitle(String title) {
+        mLargeTextView.setText(title);
+    }
+
+    public void setUseGradient(boolean useGradient) {
+        if (mTitleGradientView != null) {
+            mTitleGradientView.setVisibility(useGradient ? View.VISIBLE : View.GONE);
+            mActionBarGradientView.setVisibility(useGradient ? View.VISIBLE : View.GONE);
+        }
+    }
+
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent 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 (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) {
+        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.
+                        mEdgeGlowBottom.onPull(delta / getHeight(), 1 - event.getX() / getWidth());
+                    }
+
+                    if (!mEdgeGlowBottom.isFinished()) {
+                        postInvalidateOnAnimation();
+                    }
+
+                }
+                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();
+        // We want to 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));
+    }
+
+    /**
+     * Expand to maximum size or starting size. Disable clicks on the photo until the animation is
+     * complete.
+     */
+    private void expandCollapseHeader() {
+        mPhotoTouchInterceptOverlay.setClickable(false);
+        if (getHeaderHeight() != mMaximumHeaderHeight) {
+            // Expand header
+            final ObjectAnimator animator = ObjectAnimator.ofInt(this, "headerHeight",
+                    mMaximumHeaderHeight);
+            animator.addListener(mHeaderExpandAnimationListener);
+            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();
+            }
+        } else if (getHeaderHeight() != mMinimumHeaderHeight) {
+            final ObjectAnimator animator = ObjectAnimator.ofInt(this, "headerHeight",
+                    mIntermediateHeaderHeight);
+            animator.addListener(mHeaderExpandAnimationListener);
+            animator.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 (!snapToTop(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.
+            snapToBottom(flingDelta);
+        }
+    }
+
+    /**
+     * If needed, snap the subviews to the top of the Window.
+     */
+    private boolean snapToTop(int flingDelta) {
+        if (mHasEverTouchedTheTop) {
+            // Only when first interacting with QuickContacts should QuickContacts snap to the top
+            // of the screen. After this, QuickContacts can be placed most anywhere on the screen.
+            return false;
+        }
+        final int requiredScroll = -getScroll_ignoreOversizedHeaderForSnapping()
+                + mTransparentStartHeight;
+        if (-getScroll_ignoreOversizedHeaderForSnapping() - flingDelta < 0
+                && -getScroll_ignoreOversizedHeaderForSnapping() - flingDelta >
+                -mTransparentStartHeight && requiredScroll != 0) {
+            // We finish scrolling above the empty starting height, and aren't projected
+            // to fling past the top of the Window, so elastically snap the empty space shut.
+            mScroller.forceFinished(true);
+            smoothScrollBy(requiredScroll);
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * If needed, scroll all the subviews off the bottom of the Window.
+     */
+    private void snapToBottom(int flingDelta) {
+        if (mHasEverTouchedTheTop) {
+            // If QuickContacts has touched the top of the screen previously, then we
+            // will less aggressively snap to the bottom of the screen.
+            final float predictedScrollPastTop = -getScroll() + mTransparentStartHeight
+                    - flingDelta;
+            final boolean isLandscape = getResources().getConfiguration().orientation
+                    == Configuration.ORIENTATION_LANDSCAPE;
+            if (isLandscape) {
+                // In landscape orientation, we dismiss the QC once it goes below the starting
+                // starting offset that is used when QC starts in collapsed mode.
+                if (predictedScrollPastTop > mTransparentStartHeight) {
+                    scrollOffBottom();
+                }
+            } else {
+                // In portrait orientation, we dismiss the QC once it goes below
+                // mIntermediateHeaderHeight within the bottom of the screen.
+                final float heightMinusHeader = getHeight() - mIntermediateHeaderHeight;
+                if (predictedScrollPastTop > heightMinusHeader) {
+                    scrollOffBottom();
+                }
+            }
+            return;
+        }
+        if (-getScroll() - flingDelta > 0) {
+            scrollOffBottom();
+        }
+    }
+
+    /**
+     * 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() {
+        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 when we fling to the end.
+            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 (!awakenScrollBars()) {
+                // Keep on drawing until the animation has finished.
+                postInvalidateOnAnimation();
+            }
+            if (mScroller.getCurrY() >= getMaximumScrollUpwards()) {
+                mScroller.abortAnimation();
+            }
+        }
+    }
+
+    @Override
+    public void draw(Canvas canvas) {
+        super.draw(canvas);
+
+        if (!mEdgeGlowBottom.isFinished()) {
+            final int restoreCount = canvas.save();
+            final int width = getWidth() - getPaddingLeft() - getPaddingRight();
+            final int height = getHeight();
+
+            // 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 (isLayoutRtl()) {
+                    canvas.translate(mPhotoViewContainer.getWidth(), 0);
+                }
+            } else {
+                mEdgeGlowBottom.setSize(width, height);
+            }
+            if (mEdgeGlowBottom.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);
+        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 (isLayoutRtl()) {
+            mLargeTextView.setPivotX(mLargeTextView.getWidth());
+        } else {
+            mLargeTextView.setPivotX(0);
+        }
+        mLargeTextView.setPivotY(mLargeTextView.getHeight() / 2);
+
+        final int toolbarHeight = mToolbar.getLayoutParams().height;
+        if (toolbarHeight >= mMaximumHeaderHeight) {
+            // Everything is full size when the header is fully expanded.
+            mLargeTextView.setScaleX(1);
+            mLargeTextView.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);
+
+        mLargeTextView.setScaleX(scale);
+        mLargeTextView.setScaleY(scale);
+        setInterpolatedTitleMargins(bezierOutput);
+    }
+
+    /**
+     * Calculate the padding around mLargeTextView so that it will look appropriate once it
+     * finishes moving into its target location/size.
+     */
+    private void calculateCollapsedLargeTitlePadding() {
+        final Rect largeTextViewRect = new Rect();
+        final Rect invisiblePlaceholderTextViewRect = new Rect();
+        mToolbar.getBoundsOnScreen(largeTextViewRect);
+        mInvisiblePlaceholderTextView.getBoundsOnScreen(invisiblePlaceholderTextViewRect);
+        if (isLayoutRtl()) {
+            mCollapsedTitleStartMargin = largeTextViewRect.right
+                    - invisiblePlaceholderTextViewRect.right;
+        } else {
+            mCollapsedTitleStartMargin = invisiblePlaceholderTextViewRect.left
+                    - largeTextViewRect.left;
+        }
+
+        // Distance between top of toolbar to the center of the target rectangle.
+        final int desiredTopToCenter = (
+                invisiblePlaceholderTextViewRect.top + invisiblePlaceholderTextViewRect.bottom)
+                / 2 - largeTextViewRect.top;
+        // Padding needed on the mLargeTextView so that it has the same amount of
+        // padding as the target rectangle.
+        mCollapsedTitleBottomMargin = desiredTopToCenter - mLargeTextView.getHeight() / 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) mLargeTextView.getLayoutParams();
+        final LinearLayout.LayoutParams toolbarLayoutParams
+                = (LinearLayout.LayoutParams) mToolbar.getLayoutParams();
+        titleLayoutParams.setMarginStart((int) (mCollapsedTitleStartMargin * (1 - x)
+                + mMaximumTitleMargin * x));
+        // 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 mLargeTextView.getHeight() use the mMaximumHeaderTextSize for this calculation.
+        // The getHeight() value acts unexpectedly when mLargeTextView is partially clipped by
+        // its parent.
+        titleLayoutParams.topMargin = getTransparentViewHeight()
+                + toolbarLayoutParams.height - pretendBottomMargin
+                - mMaximumHeaderTextSize;
+        titleLayoutParams.bottomMargin = 0;
+        mLargeTextView.setLayoutParams(titleLayoutParams);
+    }
+
+    private void updatePhotoTintAndDropShadow() {
+        // Let's keep an eye on how long this method takes to complete. Right now, it takes ~0.2ms
+        // on a Nexus 5. If it starts to get much slower, there are a number of easy optimizations
+        // available.
+        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) {
+            mPhotoViewContainer.setElevation(mToolbarElevation);
+        } else {
+            mPhotoViewContainer.setElevation(0);
+        }
+
+        // Reuse an existing mColorFilter (to avoid GC pauses) to change the photo's tint.
+        mPhotoView.clearColorFilter();
+
+        // Ratio of current size to maximum size of the header.
+        final float ratio;
+        // The value that "ratio" will have when the header is at its starting/intermediate size.
+        final float intermediateRatio = calculateHeightRatio((int)
+                (mMaximumPortraitHeaderHeight * INTERMEDIATE_HEADER_HEIGHT_RATIO));
+        if (!mIsTwoPanel) {
+            ratio = calculateHeightRatio(toolbarHeight);
+        } else {
+            // We want the ratio and intermediateRatio to have the *approximate* values
+            // they would have in portrait mode when at the intermediate position.
+            ratio = intermediateRatio;
+        }
+
+        final float linearBeforeMiddle = Math.max(1 - (1 - ratio) / intermediateRatio, 0);
+
+        // Want a function with a derivative of 0 at x=0. I don't want it to grow too
+        // slowly before x=0.5. x^1.1 satisfies both requirements.
+        final float EXPONENT_ALMOST_ONE = 1.1f;
+        final float semiLinearBeforeMiddle = (float) Math.pow(linearBeforeMiddle,
+                EXPONENT_ALMOST_ONE);
+        mColorMatrix.reset();
+        mColorMatrix.setSaturation(semiLinearBeforeMiddle);
+        mColorMatrix.postConcat(alphaMatrix(ratio, Color.WHITE));
+
+        final float colorAlpha;
+        if (mPhotoView.isBasedOffLetterTile()) {
+            // Since the letter tile only has white and grey, tint it more slowly. Otherwise
+            // it will be completely invisible before we reach the intermediate point. The values
+            // for TILE_EXPONENT and slowingFactor are chosen to achieve DESIRED_INTERMEDIATE_ALPHA
+            // at the intermediate/starting position.
+            final float DESIRED_INTERMEDIATE_ALPHA = 0.9f;
+            final float TILE_EXPONENT = 1.5f;
+            final float slowingFactor = (float) ((1 - intermediateRatio) / intermediateRatio
+                    / (1 - Math.pow(1 - DESIRED_INTERMEDIATE_ALPHA, 1/TILE_EXPONENT)));
+            float linearBeforeMiddleish = Math.max(1 - (1 - ratio) / intermediateRatio
+                    / slowingFactor, 0);
+            colorAlpha = 1 - (float) Math.pow(linearBeforeMiddleish, TILE_EXPONENT);
+            mColorMatrix.postConcat(alphaMatrix(colorAlpha, mHeaderTintColor));
+        } else {
+            colorAlpha = 1 - semiLinearBeforeMiddle;
+            mColorMatrix.postConcat(multiplyBlendMatrix(mHeaderTintColor, colorAlpha));
+        }
+
+        mColorFilter.setColorMatrix(mColorMatrix);
+        mPhotoView.setColorFilter(mColorFilter);
+        // 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);
+
+        final int gradientAlpha = (int) (255 * linearBeforeMiddle);
+        mTitleGradientDrawable.setAlpha(gradientAlpha);
+        mActionBarGradientDrawable.setAlpha(gradientAlpha);
+
+        Trace.endSection();
+    }
+
+    private float calculateHeightRatio(int height) {
+        return (height - mMinimumPortraitHeaderHeight)
+                / (float) (mMaximumPortraitHeaderHeight - mMinimumPortraitHeaderHeight);
+    }
+
+    /**
+     * 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 deltaX = event.getX() - mLastEventPosition[0];
+        final float deltaY = event.getY() - mLastEventPosition[1];
+        final boolean draggedX = (deltaX > mTouchSlop || deltaX < -mTouchSlop);
+        final boolean draggedY = (deltaY > mTouchSlop || deltaY < -mTouchSlop);
+        return draggedY && !draggedX;
+    }
+
+    private float updatePositionAndComputeDelta(MotionEvent event) {
+        final int VERTICAL = 1;
+        final float position = mLastEventPosition[VERTICAL];
+        updateLastEventPosition(event);
+        return position - mLastEventPosition[VERTICAL];
+    }
+
+    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 static 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() {
+            DisplayInfo di = DisplayManagerGlobal.getInstance().getDisplayInfo(
+                    Display.DEFAULT_DISPLAY);
+            return di.refreshRate;
+        }
+
+        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) {
+        // The Transition framework may suppress layout on the scene root and its children. If
+        // mScrollView has its layout suppressed, user scrolling interactions will not display
+        // correctly. By turning suppress off for mScrollView, mScrollView properly adjusts its
+        // graphics as the user scrolls during the transition.
+        mScrollView.suppressLayout(false);
+
+        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();
+        }
+    }
+
+    public void prepareForExpandingScrollChild() {
+        // The Transition framework may suppress layout on the scene root and its children. If
+        // mScrollView has its layout suppressed, user scrolling interactions will not display
+        // correctly. By turning suppress off for mScrollView, mScrollView properly adjusts its
+        // graphics as the user scrolls during the transition.
+        mScrollView.suppressLayout(false);
+    }
+}
diff --git a/src/com/android/contacts/widget/QuickContactImageView.java b/src/com/android/contacts/widget/QuickContactImageView.java
new file mode 100644
index 0000000..987b27d
--- /dev/null
+++ b/src/com/android/contacts/widget/QuickContactImageView.java
@@ -0,0 +1,81 @@
+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;
+
+    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) {
+        this(context, attrs, defStyleAttr, 0);
+    }
+
+    public QuickContactImageView(Context context, AttributeSet attrs, int defStyleAttr,
+            int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+    }
+
+    public void setTint(int color) {
+        if (isBasedOffLetterTile()) {
+            setBackgroundColor(color);
+        } else {
+            setBackground(null);
+        }
+        postInvalidate();
+    }
+
+    public boolean isBasedOffLetterTile() {
+        return mOriginalDrawable instanceof LetterTileDrawable;
+    }
+
+    @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;
+            setScaleType(ScaleType.CENTER_CROP);
+        } else if (drawable instanceof LetterTileDrawable) {
+            bitmapDrawable = (BitmapDrawable) getResources().getDrawable(
+                    R.drawable.default_avatar_white);
+            setScaleType(ScaleType.CENTER);
+        } else {
+            throw new IllegalArgumentException("Does not support this type of drawable");
+
+        }
+        mOriginalDrawable = drawable;
+        super.setImageDrawable(bitmapDrawable);
+    }
+
+    @Override
+    public Drawable getDrawable() {
+        return mOriginalDrawable;
+    }
+}
diff --git a/src/com/android/contacts/widget/TextHighlightingAnimation.java b/src/com/android/contacts/widget/TextHighlightingAnimation.java
deleted file mode 100644
index d269276..0000000
--- a/src/com/android/contacts/widget/TextHighlightingAnimation.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.contacts.widget;
-
-import android.database.CharArrayBuffer;
-import android.graphics.Color;
-import android.os.Handler;
-import android.text.TextPaint;
-import android.text.style.CharacterStyle;
-import android.view.animation.AccelerateInterpolator;
-import android.view.animation.DecelerateInterpolator;
-
-import com.android.contacts.common.format.FormatUtils;
-import com.android.internal.R;
-
-/**
- * An animation that alternately dims and brightens the non-highlighted portion of text.
- */
-public abstract class TextHighlightingAnimation implements Runnable, TextWithHighlightingFactory {
-
-    private static final int MAX_ALPHA = 255;
-    private static final int MIN_ALPHA = 50;
-
-    private AccelerateInterpolator ACCELERATE_INTERPOLATOR = new AccelerateInterpolator();
-    private DecelerateInterpolator DECELERATE_INTERPOLATOR = new DecelerateInterpolator();
-
-    private final static DimmingSpan[] sEmptySpans = new DimmingSpan[0];
-
-    /**
-     * Frame rate expressed a number of millis between frames.
-     */
-    private static final long FRAME_RATE = 50;
-
-    private DimmingSpan mDimmingSpan;
-    private Handler mHandler;
-    private boolean mAnimating;
-    private boolean mDimming;
-    private long mTargetTime;
-    private final int mDuration;
-
-    /**
-     * A Spanned that highlights a part of text by dimming another part of that text.
-     */
-    public class TextWithHighlightingImpl implements TextWithHighlighting {
-
-        private final DimmingSpan[] mSpans;
-        private boolean mDimmingEnabled;
-        private CharArrayBuffer mText;
-        private int mDimmingSpanStart;
-        private int mDimmingSpanEnd;
-        private String mString;
-
-        public TextWithHighlightingImpl() {
-            mSpans = new DimmingSpan[] { mDimmingSpan };
-        }
-
-        public void setText(CharArrayBuffer baseText, CharArrayBuffer highlightedText) {
-            mText = baseText;
-
-            // TODO figure out a way to avoid string allocation
-            mString = new String(mText.data, 0, mText.sizeCopied);
-
-            int index = FormatUtils.overlapPoint(baseText, highlightedText);
-
-            if (index == 0 || index == -1) {
-                mDimmingEnabled = false;
-            } else {
-                mDimmingEnabled = true;
-                mDimmingSpanStart = 0;
-                mDimmingSpanEnd = index;
-            }
-        }
-
-        @SuppressWarnings("unchecked")
-        public <T> T[] getSpans(int start, int end, Class<T> type) {
-            if (mDimmingEnabled) {
-                return (T[])mSpans;
-            } else {
-                return (T[])sEmptySpans;
-            }
-        }
-
-        public int getSpanStart(Object tag) {
-            // We only have one span - no need to check the tag parameter
-            return mDimmingSpanStart;
-        }
-
-        public int getSpanEnd(Object tag) {
-            // We only have one span - no need to check the tag parameter
-            return mDimmingSpanEnd;
-        }
-
-        public int getSpanFlags(Object tag) {
-            // String is immutable - flags not needed
-            return 0;
-        }
-
-        public int nextSpanTransition(int start, int limit, Class type) {
-            // Never called since we only have one span
-            return 0;
-        }
-
-        public char charAt(int index) {
-            return mText.data[index];
-        }
-
-        public int length() {
-            return mText.sizeCopied;
-        }
-
-        public CharSequence subSequence(int start, int end) {
-            // Never called - implementing for completeness
-            return new String(mText.data, start, end);
-        }
-
-        @Override
-        public String toString() {
-            return mString;
-        }
-    }
-
-    /**
-     * A Span that modifies alpha of the default foreground color.
-     */
-    private static class DimmingSpan extends CharacterStyle {
-        private int mAlpha;
-
-        public void setAlpha(int alpha) {
-            mAlpha = alpha;
-        }
-
-        @Override
-        public void updateDrawState(TextPaint ds) {
-
-            // Only dim the text in the basic state; not selected, focused or pressed
-            int[] states = ds.drawableState;
-            if (states != null) {
-                int count = states.length;
-                for (int i = 0; i < count; i++) {
-                    switch (states[i]) {
-                        case R.attr.state_pressed:
-                        case R.attr.state_selected:
-                        case R.attr.state_focused:
-                            // We can simply return, because the supplied text
-                            // paint is already configured with defaults.
-                            return;
-                    }
-                }
-            }
-
-            int color = ds.getColor();
-            color = Color.argb(mAlpha, Color.red(color), Color.green(color), Color.blue(color));
-            ds.setColor(color);
-        }
-    }
-
-    /**
-     * Constructor.
-     */
-    public TextHighlightingAnimation(int duration) {
-        mDuration = duration;
-        mHandler = new Handler();
-        mDimmingSpan = new DimmingSpan();
-        mDimmingSpan.setAlpha(MAX_ALPHA);
-    }
-
-    /**
-     * Returns a Spanned that can be used by a text view to show text with highlighting.
-     */
-    public TextWithHighlightingImpl createTextWithHighlighting() {
-        return new TextWithHighlightingImpl();
-    }
-
-    /**
-     * Override and invalidate (redraw) TextViews showing {@link TextWithHighlightingImpl}.
-     */
-    protected abstract void invalidate();
-
-    /**
-     * Starts the highlighting animation, which will dim portions of text.
-     */
-    public void startHighlighting() {
-        startAnimation(true);
-    }
-
-    /**
-     * Starts un-highlighting animation, which will brighten the dimmed portions of text
-     * to the brightness level of the rest of text.
-     */
-    public void stopHighlighting() {
-        startAnimation(false);
-    }
-
-    /**
-     * Called when the animation starts.
-     */
-    protected void onAnimationStarted() {
-    }
-
-    /**
-     * Called when the animation has stopped.
-     */
-    protected void onAnimationEnded() {
-    }
-
-    private void startAnimation(boolean dim) {
-        if (mDimming != dim) {
-            mDimming = dim;
-            long now = System.currentTimeMillis();
-            if (!mAnimating) {
-                mAnimating = true;
-                mTargetTime = now + mDuration;
-                onAnimationStarted();
-                mHandler.post(this);
-            } else  {
-
-                // If we have started dimming, reverse the direction and adjust the target
-                // time accordingly.
-                mTargetTime = (now + mDuration) - (mTargetTime - now);
-            }
-        }
-    }
-
-    /**
-     * Animation step.
-     */
-    public void run() {
-        long now = System.currentTimeMillis();
-        long timeLeft = mTargetTime - now;
-        if (timeLeft < 0) {
-            mDimmingSpan.setAlpha(mDimming ? MIN_ALPHA : MAX_ALPHA);
-            mAnimating = false;
-            onAnimationEnded();
-            return;
-        }
-
-        // Start=1, end=0
-        float virtualTime = (float)timeLeft / mDuration;
-        if (mDimming) {
-            float interpolatedTime = DECELERATE_INTERPOLATOR.getInterpolation(virtualTime);
-            mDimmingSpan.setAlpha((int)(MIN_ALPHA + (MAX_ALPHA-MIN_ALPHA) * interpolatedTime));
-        } else {
-            float interpolatedTime = ACCELERATE_INTERPOLATOR.getInterpolation(virtualTime);
-            mDimmingSpan.setAlpha((int)(MIN_ALPHA + (MAX_ALPHA-MIN_ALPHA) * (1-interpolatedTime)));
-        }
-
-        invalidate();
-
-        // Repeat
-        mHandler.postDelayed(this, FRAME_RATE);
-    }
-}
diff --git a/src/com/android/contacts/widget/TextWithHighlighting.java b/src/com/android/contacts/widget/TextWithHighlighting.java
deleted file mode 100644
index 3a32b02..0000000
--- a/src/com/android/contacts/widget/TextWithHighlighting.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.contacts.widget;
-
-import android.database.CharArrayBuffer;
-import android.text.Spanned;
-
-/**
- * A Spanned that highlights a part of text by dimming another part of that text.
- */
-public interface TextWithHighlighting extends Spanned {
-    void setText(CharArrayBuffer baseText, CharArrayBuffer highlightedText);
-}
diff --git a/src/com/android/contacts/widget/TextWithHighlightingFactory.java b/src/com/android/contacts/widget/TextWithHighlightingFactory.java
deleted file mode 100644
index ee5744d..0000000
--- a/src/com/android/contacts/widget/TextWithHighlightingFactory.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.contacts.widget;
-
-/**
- * A factory for text fields with animated highlighting.
- */
-public interface TextWithHighlightingFactory {
-    TextWithHighlighting createTextWithHighlighting();
-}
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/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 7a7df01..46e7ac3 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -76,16 +76,6 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".streamitems.StreamItemPopulatorActivity"
-            android:label="@string/streamItemPopulator"
-            >
-            <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>
-
         <!--
           Test authenticators/sync adapters.
 
diff --git a/tests/res/layout/stream_item_populator.xml b/tests/res/layout/stream_item_populator.xml
deleted file mode 100644
index acc46bf..0000000
--- a/tests/res/layout/stream_item_populator.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<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"
->
-    <Button
-        android:id="@+id/add"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:text="@string/chooseAContactButton"
-        android:layout_marginBottom="50px"
-    />
-    <Button
-        android:id="@+id/exit"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:text="@string/exitButton"
-    />
-</LinearLayout>
diff --git a/res/values-sw600dp/colors.xml b/tests/res/values/donottranslate_config.xml
similarity index 75%
copy from res/values-sw600dp/colors.xml
copy to tests/res/values/donottranslate_config.xml
index 0f8f8de..9931d85 100644
--- a/res/values-sw600dp/colors.xml
+++ b/tests/res/values/donottranslate_config.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
+<!-- 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.
@@ -13,10 +13,8 @@
      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">
 
-<resources>
-
-    <!-- Color used for the letter in the A-Z section header -->
-    <color name="section_header_text_color">#ff000000</color>
+    <string name="target_package_name">com.android.contacts</string>
 
 </resources>
diff --git a/tests/res/values/donottranslate_strings.xml b/tests/res/values/donottranslate_strings.xml
index b3f3ee7..52ccc92 100644
--- a/tests/res/values/donottranslate_strings.xml
+++ b/tests/res/values/donottranslate_strings.xml
@@ -83,6 +83,8 @@
         <item>DIAL tel</item>
         <item>VIEW tel</item>
         <item>VIEW calls (call-log after a phone call)</item>
+        <item>VIEW missed calls</item>
+        <item>VIEW voicemails</item>
         <item>VIEW calls item</item>
         <item>CallDetailActivity (legacy)</item>
         <item>CallLogActivity (legacy)</item>
@@ -97,10 +99,7 @@
     <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="chooseAContactButton">Choose a contact to add stream items to</string>
     <string name="exitButton">Exit</string>
-    <string name="streamItemPopulator">Populate stream items</string>
 
     <string-array name="pinnedHeaderUseCases">
         <item>One short section - no headers</item>
diff --git a/tests/src/com/android/contacts/ContactDetailTest.java b/tests/src/com/android/contacts/ContactDetailTest.java
deleted file mode 100644
index ea1e40e..0000000
--- a/tests/src/com/android/contacts/ContactDetailTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts;
-
-import android.test.ActivityUnitTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import com.android.contacts.activities.ContactDetailActivity;
-import com.android.contacts.common.test.mocks.ContactsMockContext;
-import com.android.contacts.common.test.mocks.MockContentProvider;
-
-@SmallTest
-public class ContactDetailTest extends ActivityUnitTestCase<ContactDetailActivity> {
-    private ContactsMockContext mContext;
-    private MockContentProvider mContactsProvider;
-
-    public ContactDetailTest() {
-        super(ContactDetailActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mContext = new ContactsMockContext(getInstrumentation().getTargetContext());
-        mContactsProvider = mContext.getContactsProvider();
-        setActivityContext(mContext);
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-    }
-
-//    public void testFoo() {
-//        // Use lookup-style Uris that also contain the Contact-ID
-//        //long rawContactId1 = mCreator.createRawContact("JohnDoe", "John", "Doe");
-//        //long contactId1 = mCreator.getContactIdByRawContactId(rawContactId1);
-//        //Uri contactUri1 = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId1);
-//        Intent intent = new Intent(Intent.ACTION_VIEW,
-//                ContentUris.withAppendedId(Contacts.CONTENT_URI, 123));
-//        startActivity(intent, null, null);
-//        ContactDetailActivity activity = getActivity();
-//        mContactsProvider.verify();
-//    }
-}
diff --git a/tests/src/com/android/contacts/ContactsLaunchPerformance.java b/tests/src/com/android/contacts/ContactsLaunchPerformance.java
index 5f0336b..411ba4e 100644
--- a/tests/src/com/android/contacts/ContactsLaunchPerformance.java
+++ b/tests/src/com/android/contacts/ContactsLaunchPerformance.java
@@ -31,8 +31,8 @@
     public void onCreate(Bundle arguments) {
         mIntent.setAction(Intent.ACTION_MAIN);
         mIntent.addCategory(Intent.CATEGORY_LAUNCHER);
-        mIntent.setComponent(new ComponentName("com.android.contacts",
-                "com.android.contacts.DialtactsContactsEntryActivity"));
+        mIntent.setComponent(new ComponentName(getTargetContext(),
+                "com.android.contacts.activities.PeopleActivity"));
 
         start();
     }
diff --git a/tests/src/com/android/contacts/activities/PeopleActivityTest.java b/tests/src/com/android/contacts/activities/PeopleActivityTest.java
index d882da7..023d48b 100644
--- a/tests/src/com/android/contacts/activities/PeopleActivityTest.java
+++ b/tests/src/com/android/contacts/activities/PeopleActivityTest.java
@@ -16,13 +16,13 @@
 
 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.os.AsyncTask;
 import android.provider.ContactsContract;
-import android.provider.ContactsContract.ContactCounts;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Directory;
 import android.provider.ContactsContract.Groups;
@@ -35,17 +35,17 @@
 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.detail.ContactDetailFragment;
 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.test.InjectedServices;
+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;
@@ -88,6 +88,10 @@
     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());
@@ -116,66 +120,6 @@
         super.tearDown();
     }
 
-    public void testSingleAccountNoGroups() {
-
-        if (true) { // Need this to avoid "unreachable statement"
-            return; // Disabled for now.
-        }
-
-        // This two-pane UI test only makes sense if we run with two panes.
-        // Let's ignore this in the single pane case
-        if (!PhoneCapabilityTester.isUsingTwoPanes(mContext)) return;
-
-        expectSettingsQueriesAndReturnDefault();
-        expectProviderStatusQueryAndReturnNormal();
-        expectGroupsQueryAndReturnEmpty();
-        expectContactListQuery(100);
-        expectContactLookupQuery("lu1", 1, "lu1", 1);
-        expectContactEntityQuery("lu1", 1);
-
-        setActivityIntent(new Intent(Intent.ACTION_DEFAULT));
-
-        PeopleActivity activity = getActivity();
-
-        getInstrumentation().waitForIdleSync();
-
-        ContactBrowseListFragment listFragment = activity.getListFragment();
-        ContactDetailFragment detailFragment = activity.getDetailFragment();
-
-        Loader<?> filterLoader =
-                activity.getLoaderManager().getLoader(R.id.contact_list_filter_loader);
-        Loader<?> listLoader =
-                listFragment.getLoaderManager().getLoader(0);
-
-        // TODO: wait for detail loader
-        // TODO: wait for lookup key loading
-        TestLoaderManager.waitForLoaders(filterLoader, listLoader);
-
-        getInstrumentation().waitForIdleSync();
-
-        mContext.verify();
-
-        TextView nameText = (TextView) detailFragment.getView().findViewById(R.id.name);
-        assertEquals("Contact 1", nameText.getText());
-    }
-
-    private void expectSettingsQueriesAndReturnDefault() {
-        mSettingsProvider
-                .expectQuery(Settings.System.CONTENT_URI)
-                .withProjection(Settings.System.VALUE)
-                .withSelection(Settings.System.NAME + "=?",
-                        ContactsContract.Preferences.DISPLAY_ORDER)
-                .returnRow(ContactsContract.Preferences.DISPLAY_ORDER_PRIMARY)
-                .anyNumberOfTimes();
-        mSettingsProvider
-                .expectQuery(Settings.System.CONTENT_URI)
-                .withProjection(Settings.System.VALUE)
-                .withSelection(Settings.System.NAME + "=?",
-                        ContactsContract.Preferences.SORT_ORDER)
-                .returnRow(ContactsContract.Preferences.SORT_ORDER_PRIMARY)
-                .anyNumberOfTimes();
-    }
-
     private void expectProviderStatusQueryAndReturnNormal() {
         mContactsProvider
                 .expectQuery(ProviderStatus.CONTENT_URI)
@@ -195,7 +139,7 @@
 
     private void expectContactListQuery(int count) {
         Uri uri = Contacts.CONTENT_URI.buildUpon()
-                .appendQueryParameter(ContactCounts.ADDRESS_BOOK_INDEX_EXTRAS, "true")
+                .appendQueryParameter(Contacts.ADDRESS_BOOK_INDEX_EXTRAS, "true")
                 .appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
                         String.valueOf(Directory.DEFAULT))
                 .build();
diff --git a/tests/src/com/android/contacts/detail/ContactDetailDisplayUtilsTest.java b/tests/src/com/android/contacts/detail/ContactDetailDisplayUtilsTest.java
deleted file mode 100644
index 07b3691..0000000
--- a/tests/src/com/android/contacts/detail/ContactDetailDisplayUtilsTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.detail;
-
-import android.content.Context;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.Html;
-import android.text.Spanned;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.TextView;
-
-import com.android.contacts.R;
-import com.android.contacts.util.StreamItemEntry;
-import com.android.contacts.util.StreamItemEntryBuilder;
-
-/**
- * Unit tests for {@link ContactDetailDisplayUtils}.
- */
-@SmallTest
-public class ContactDetailDisplayUtilsTest extends AndroidTestCase {
-    private static final String TEST_STREAM_ITEM_TEXT = "text";
-
-    private LayoutInflater mLayoutInflater;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mLayoutInflater =
-                (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-    }
-
-    public void testAddStreamItemText_IncludesComments() {
-        StreamItemEntry streamItem = getTestBuilder().setComment("1 comment").build(getContext());
-        View streamItemView = addStreamItemText(streamItem);
-        assertHasText(streamItemView, R.id.stream_item_comments, "1 comment");
-    }
-
-    public void testAddStreamItemText_IncludesHtmlComments() {
-        StreamItemEntry streamItem = getTestBuilder().setComment("1 <b>comment</b>")
-                .build(getContext());
-        View streamItemView = addStreamItemText(streamItem);
-        assertHasHtmlText(streamItemView, R.id.stream_item_comments, "1 <b>comment<b>");
-    }
-
-    public void testAddStreamItemText_NoComments() {
-        StreamItemEntry streamItem = getTestBuilder().setComment(null).build(getContext());
-        View streamItemView = addStreamItemText(streamItem);
-        assertGone(streamItemView, R.id.stream_item_comments);
-    }
-
-    /** Checks that the given id corresponds to a visible text view with the expected text. */
-    private void assertHasText(View parent, int textViewId, String expectedText) {
-        TextView textView = (TextView) parent.findViewById(textViewId);
-        assertNotNull(textView);
-        assertEquals(View.VISIBLE, textView.getVisibility());
-        assertEquals(expectedText, textView.getText().toString());
-    }
-
-    /** Checks that the given id corresponds to a visible text view with the expected HTML. */
-    private void assertHasHtmlText(View parent, int textViewId, String expectedHtml) {
-        TextView textView = (TextView) parent.findViewById(textViewId);
-        assertNotNull(textView);
-        assertEquals(View.VISIBLE, textView.getVisibility());
-        assertSpannableEquals(Html.fromHtml(expectedHtml), textView.getText());
-    }
-
-    /**
-     * Asserts that a char sequence is actually a {@link Spanned} matching the one expected.
-     */
-    private void assertSpannableEquals(Spanned expected, CharSequence actualCharSequence) {
-        assertEquals(expected.toString(), actualCharSequence.toString());
-        assertTrue("char sequence should be an instance of Spanned",
-                actualCharSequence instanceof Spanned);
-        Spanned actual = (Spanned) actualCharSequence;
-        assertEquals(Html.toHtml(expected), Html.toHtml(actual));
-    }
-
-    /** Checks that the given id corresponds to a gone view. */
-    private void assertGone(View parent, int textId) {
-        View view = parent.findViewById(textId);
-        assertNotNull(view);
-        assertEquals(View.GONE, view.getVisibility());
-    }
-
-    /**
-     * Calls {@link ContactDetailDisplayUtils#addStreamItemText(LayoutInflater, Context,
-     * StreamItemEntry, View)} with the default parameters and the given stream item.
-     */
-    private View addStreamItemText(StreamItemEntry streamItem) {
-        return ContactDetailDisplayUtils.addStreamItemText(getContext(), streamItem,
-                mLayoutInflater.inflate(R.layout.stream_item_container, null));
-    }
-
-    private StreamItemEntryBuilder getTestBuilder() {
-        return new StreamItemEntryBuilder().setText(TEST_STREAM_ITEM_TEXT);
-    }
-}
diff --git a/tests/src/com/android/contacts/detail/ContactDetailFragmentTests.java b/tests/src/com/android/contacts/detail/ContactDetailFragmentTests.java
deleted file mode 100644
index 9c52161..0000000
--- a/tests/src/com/android/contacts/detail/ContactDetailFragmentTests.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.detail;
-
-import android.content.ContentValues;
-import android.content.Intent;
-import android.net.Uri;
-import android.provider.ContactsContract.CommonDataKinds.Email;
-import android.provider.ContactsContract.CommonDataKinds.Im;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import com.android.contacts.detail.ContactDetailFragment.DetailViewEntry;
-import com.android.contacts.common.model.dataitem.DataItem;
-import com.android.contacts.common.model.dataitem.EmailDataItem;
-import com.android.contacts.common.model.dataitem.ImDataItem;
-
-/**
- * Tests for {@link ContactDetailFragment}.
- */
-@SmallTest
-public class ContactDetailFragmentTests extends AndroidTestCase {
-    private static final String TEST_ADDRESS = "user@example.org";
-    private static final String TEST_PROTOCOL = "prot%col";
-
-    public void testImIntent() throws Exception {
-        // Test GTalk XMPP URI. No chat capabilities provided
-        final ContentValues values = new ContentValues();
-        values.put(Im.MIMETYPE, Im.CONTENT_ITEM_TYPE);
-        values.put(Im.TYPE, Im.TYPE_HOME);
-        values.put(Im.PROTOCOL, Im.PROTOCOL_GOOGLE_TALK);
-        values.put(Im.DATA, TEST_ADDRESS);
-        ImDataItem im = (ImDataItem) DataItem.createFrom(values);
-
-        DetailViewEntry entry = new ContactDetailFragment.DetailViewEntry();
-        ContactDetailFragment.buildImActions(mContext, entry, im);
-        assertEquals(Intent.ACTION_SENDTO, entry.intent.getAction());
-        assertEquals("xmpp:" + TEST_ADDRESS + "?message", entry.intent.getData().toString());
-
-        assertNull(entry.secondaryIntent);
-    }
-
-    public void testImIntentWithAudio() throws Exception {
-        // Test GTalk XMPP URI. Audio chat capabilities provided
-        final ContentValues values = new ContentValues();
-        values.put(Im.MIMETYPE, Im.CONTENT_ITEM_TYPE);
-        values.put(Im.TYPE, Im.TYPE_HOME);
-        values.put(Im.PROTOCOL, Im.PROTOCOL_GOOGLE_TALK);
-        values.put(Im.DATA, TEST_ADDRESS);
-        values.put(Im.CHAT_CAPABILITY, Im.CAPABILITY_HAS_VOICE | Im.CAPABILITY_HAS_VIDEO);
-        ImDataItem im = (ImDataItem) DataItem.createFrom(values);
-
-        DetailViewEntry entry = new ContactDetailFragment.DetailViewEntry();
-        ContactDetailFragment.buildImActions(mContext, entry, im);
-        assertEquals(Intent.ACTION_SENDTO, entry.intent.getAction());
-        assertEquals("xmpp:" + TEST_ADDRESS + "?message", entry.intent.getData().toString());
-
-        assertEquals(Intent.ACTION_SENDTO, entry.secondaryIntent.getAction());
-        assertEquals("xmpp:" + TEST_ADDRESS + "?call", entry.secondaryIntent.getData().toString());
-    }
-
-    public void testImIntentWithVideo() throws Exception {
-        // Test GTalk XMPP URI. Video chat capabilities provided
-        final ContentValues values = new ContentValues();
-        values.put(Im.MIMETYPE, Im.CONTENT_ITEM_TYPE);
-        values.put(Im.TYPE, Im.TYPE_HOME);
-        values.put(Im.PROTOCOL, Im.PROTOCOL_GOOGLE_TALK);
-        values.put(Im.DATA, TEST_ADDRESS);
-        values.put(Im.CHAT_CAPABILITY, Im.CAPABILITY_HAS_VOICE | Im.CAPABILITY_HAS_VIDEO |
-                Im.CAPABILITY_HAS_VOICE);
-        ImDataItem im = (ImDataItem) DataItem.createFrom(values);
-
-        DetailViewEntry entry = new ContactDetailFragment.DetailViewEntry();
-        ContactDetailFragment.buildImActions(mContext, entry, im);
-        assertEquals(Intent.ACTION_SENDTO, entry.intent.getAction());
-        assertEquals("xmpp:" + TEST_ADDRESS + "?message", entry.intent.getData().toString());
-
-        assertEquals(Intent.ACTION_SENDTO, entry.secondaryIntent.getAction());
-        assertEquals("xmpp:" + TEST_ADDRESS + "?call", entry.secondaryIntent.getData().toString());
-    }
-
-    public void testImIntentCustom() throws Exception {
-        // Custom IM types have encoded authority. We send the imto Intent here, because
-        // legacy third party apps might not accept xmpp yet
-        final ContentValues values = new ContentValues();
-        values.put(Im.MIMETYPE, Im.CONTENT_ITEM_TYPE);
-        values.put(Im.TYPE, Im.TYPE_HOME);
-        values.put(Im.PROTOCOL, Im.PROTOCOL_CUSTOM);
-        values.put(Im.CUSTOM_PROTOCOL, TEST_PROTOCOL);
-        values.put(Im.DATA, TEST_ADDRESS);
-        ImDataItem im = (ImDataItem) DataItem.createFrom(values);
-
-        DetailViewEntry entry = new ContactDetailFragment.DetailViewEntry();
-        final Intent imIntent =
-                ContactDetailFragment.getCustomIMIntent(im, Im.PROTOCOL_CUSTOM);
-        assertEquals(Intent.ACTION_SENDTO, imIntent.getAction());
-
-        final Uri data = imIntent.getData();
-        assertEquals("imto", data.getScheme());
-        assertEquals(TEST_PROTOCOL, data.getAuthority());
-        assertEquals(TEST_ADDRESS, data.getPathSegments().get(0));
-
-        assertNull(entry.secondaryIntent);
-    }
-
-    public void testImEmailIntent() throws Exception {
-        // Email addresses are treated as Google Talk entries
-        // This test only tests the VIDEO+CAMERA case. The other cases have been addressed by the
-        // Im tests
-        final ContentValues values = new ContentValues();
-        values.put(Email.MIMETYPE, Email.CONTENT_ITEM_TYPE);
-        values.put(Email.TYPE, Email.TYPE_HOME);
-        values.put(Email.DATA, TEST_ADDRESS);
-        values.put(Email.CHAT_CAPABILITY, Im.CAPABILITY_HAS_VOICE | Im.CAPABILITY_HAS_VIDEO |
-                Im.CAPABILITY_HAS_VOICE);
-        ImDataItem im = ImDataItem.createFromEmail(
-                (EmailDataItem) DataItem.createFrom(values));
-
-        DetailViewEntry entry = new ContactDetailFragment.DetailViewEntry();
-        ContactDetailFragment.buildImActions(mContext, entry, im);
-        assertEquals(Intent.ACTION_SENDTO, entry.intent.getAction());
-        assertEquals("xmpp:" + TEST_ADDRESS + "?message", entry.intent.getData().toString());
-
-        assertEquals(Intent.ACTION_SENDTO, entry.secondaryIntent.getAction());
-        assertEquals("xmpp:" + TEST_ADDRESS + "?call", entry.secondaryIntent.getData().toString());
-    }
-}
diff --git a/tests/src/com/android/contacts/detail/StreamItemAdapterTest.java b/tests/src/com/android/contacts/detail/StreamItemAdapterTest.java
deleted file mode 100644
index abd4680..0000000
--- a/tests/src/com/android/contacts/detail/StreamItemAdapterTest.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.contacts.detail;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.view.View;
-
-import com.android.contacts.util.StreamItemEntry;
-import com.android.contacts.util.StreamItemEntryBuilder;
-
-import com.google.common.collect.Lists;
-
-import java.util.ArrayList;
-
-// TODO: We should have tests for action, but that requires a mock sync-adapter that specifies
-// an action or doesn't
-
-// TODO Add test for photo click
-
-/**
- * Unit tests for {@link StreamItemAdapter}.
- */
-@SmallTest
-public class StreamItemAdapterTest extends AndroidTestCase {
-    private StreamItemAdapter mAdapter;
-    private FakeOnClickListener mListener;
-    private FakeOnClickListener mPhotoListener;
-    private View mView;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mListener = new FakeOnClickListener();
-        mAdapter = new StreamItemAdapter(getContext(), mListener, mPhotoListener);
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        mAdapter = null;
-        mListener = null;
-        super.tearDown();
-    }
-
-    public void testGetCount_Empty() {
-        mAdapter.setStreamItems(createStreamItemList(0));
-        // The header and title are gone when there are no stream items.
-        assertEquals(0, mAdapter.getCount());
-    }
-
-    public void testGetCount_NonEmpty() {
-        mAdapter.setStreamItems(createStreamItemList(3));
-        // There is one extra view: the header.
-        assertEquals(4, mAdapter.getCount());
-    }
-
-    public void testGetView_Header() {
-        // Just check that we can inflate it correctly.
-        mView = mAdapter.getView(0, null, null);
-    }
-
-    /** Counter used by {@link #createStreamItemEntryBuilder()} to create unique builders. */
-    private int mCreateStreamItemEntryBuilderCounter = 0;
-
-    /** Returns a stream item builder with basic information in it. */
-    private StreamItemEntryBuilder createStreamItemEntryBuilder() {
-        return new StreamItemEntryBuilder().setText(
-                "text #" + mCreateStreamItemEntryBuilderCounter++);
-    }
-
-    /** Creates a list containing the given number of {@link StreamItemEntry}s. */
-    private ArrayList<StreamItemEntry> createStreamItemList(int count) {
-        ArrayList<StreamItemEntry> list = Lists.newArrayList();
-        for (int index = 0; index < count; ++index) {
-            list.add(createStreamItemEntryBuilder().build(getContext()));
-        }
-        return list;
-    }
-
-    /** Checks that the stream item view has a click listener. */
-    private void assertStreamItemViewHasOnClickListener() {
-        assertFalse("listener should have not been invoked yet", mListener.clicked);
-        mView.performClick();
-        assertTrue("listener should have been invoked", mListener.clicked);
-    }
-
-    /** Checks that the stream item view does not have a click listener. */
-    private void assertStreamItemViewHasNoOnClickListener() {
-        assertFalse("listener should have not been invoked yet", mListener.clicked);
-        mView.performClick();
-        assertFalse("listener should have not been invoked", mListener.clicked);
-    }
-
-    /** Checks that the stream item view is clickable. */
-    private void assertStreamItemViewFocusable() {
-        assertNotNull("should have a stream item", mView);
-        assertTrue("should be focusable", mView.isFocusable());
-    }
-
-    /** Asserts that there is a stream item but it is not clickable. */
-    private void assertStreamItemViewNotFocusable() {
-        assertNotNull("should have a stream item", mView);
-        assertFalse("should not be focusable", mView.isFocusable());
-    }
-
-    /** Checks that the stream item view has the given stream item as its tag. */
-    private void assertStreamItemViewHasTag(StreamItemEntry streamItem) {
-        Object tag = mView.getTag();
-        assertNotNull("should have a tag", tag);
-        assertTrue("should be a StreamItemEntry", tag instanceof StreamItemEntry);
-        StreamItemEntry streamItemTag = (StreamItemEntry) tag;
-        // The streamItem itself should be in the tag.
-        assertSame(streamItem, streamItemTag);
-    }
-
-    /** Checks that the stream item view has the given stream item as its tag. */
-    private void assertStreamItemViewHasNoTag() {
-        Object tag = mView.getTag();
-        assertNull("should not have a tag", tag);
-    }
-
-    /**
-     * Simple fake implementation of {@link View.OnClickListener} which sets a member variable to
-     * true when clicked.
-     */
-    private final class FakeOnClickListener implements View.OnClickListener {
-        public boolean clicked = false;
-
-        @Override
-        public void onClick(View view) {
-            clicked = true;
-        }
-    }
-}
diff --git a/tests/src/com/android/contacts/format/TestTextWithHighlightingFactory.java b/tests/src/com/android/contacts/format/TestTextWithHighlightingFactory.java
deleted file mode 100644
index 9dbd364..0000000
--- a/tests/src/com/android/contacts/format/TestTextWithHighlightingFactory.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.format;
-
-import android.database.CharArrayBuffer;
-import android.graphics.Typeface;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.SpannableStringBuilder;
-import android.text.style.StyleSpan;
-
-import com.android.contacts.widget.TextWithHighlighting;
-import com.android.contacts.widget.TextWithHighlightingFactory;
-
-/** A factory for {@link TextWithHighlighting} that wraps its parts in italics. */
-@SmallTest
-public final class TestTextWithHighlightingFactory implements TextWithHighlightingFactory {
-    /** A {@link TextWithHighlighting} implementation that wraps its parts in italics. */
-    private final static class TestTextWithHighlighting extends SpannableStringBuilder
-            implements TextWithHighlighting {
-        @Override
-        public void setText(CharArrayBuffer baseText, CharArrayBuffer highlightedText) {
-            append(new String(baseText.data, 0, baseText.sizeCopied));
-            append(' ');
-            append(new String(highlightedText.data, 0, highlightedText.sizeCopied));
-            setSpan(new StyleSpan(Typeface.ITALIC), 0, baseText.sizeCopied, 0);
-            setSpan(new StyleSpan(Typeface.ITALIC), baseText.sizeCopied + 1,
-                    baseText.sizeCopied + 1 + highlightedText.sizeCopied, 0);
-        }
-    }
-
-    @Override
-    public TextWithHighlighting createTextWithHighlighting() {
-        return new TestTextWithHighlighting();
-    }
-}
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
index bcaa398..5932c87 100644
--- a/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
+++ b/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
@@ -34,7 +34,7 @@
 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.test.InjectedServices;
+import com.android.contacts.common.testing.InjectedServices;
 import com.android.contacts.common.test.mocks.MockAccountTypeManager;
 
 /**
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..4802b46
--- /dev/null
+++ b/tests/src/com/android/contacts/interactions/ContactInteractionUtilTest.java
@@ -0,0 +1,138 @@
+/*
+ * 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.common.R;
+
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.test.AndroidTestCase;
+import android.text.format.DateUtils;
+
+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_yesterday() {
+        // Test yesterday and tomorrow (Yesterday or Tomorrow shown)
+        calendar.add(Calendar.DAY_OF_YEAR, -1);
+        assertEquals(getContext().getResources().getString(R.string.yesterday),
+                ContactInteractionUtil.formatDateStringFromTimestamp(calendar.getTimeInMillis(),
+                        getContext()));
+    }
+
+    public void testFormatDateStringFromTimestamp_yesterdayLastYear() {
+        // Set to non leap year
+        calendar.set(Calendar.YEAR, 1999);
+        calendar.set(Calendar.DAY_OF_YEAR, 365);
+        long lastYear = calendar.getTimeInMillis();
+        calendar.add(Calendar.DAY_OF_YEAR, 1);
+
+        assertEquals(getContext().getResources().getString(R.string.yesterday),
+                ContactInteractionUtil.formatDateStringFromTimestamp(lastYear,
+                        getContext(), calendar));
+    }
+
+    public void testFormatDateStringFromTimestamp_tomorrow() {
+        calendar.add(Calendar.DAY_OF_YEAR, 1);
+        assertEquals(getContext().getResources().getString(R.string.tomorrow),
+                ContactInteractionUtil.formatDateStringFromTimestamp(calendar.getTimeInMillis(),
+                        getContext()));
+    }
+
+    public void testFormatDateStringFromTimestamp_tomorrowNewYear() {
+        calendar.set(Calendar.DAY_OF_YEAR, 1);
+        long thisYear = calendar.getTimeInMillis();
+        calendar.add(Calendar.DAY_OF_YEAR, -1);
+
+        assertEquals(getContext().getResources().getString(R.string.tomorrow),
+                ContactInteractionUtil.formatDateStringFromTimestamp(thisYear,
+                        getContext(), calendar));
+    }
+
+    public void testFormatDateStringFromTimestamp_other() {
+        // Test other (Month Date)
+        calendar.set(
+                /* year = */ 1991,
+                /* month = */ Calendar.MONTH,
+                /* day = */ 11);
+        assertEquals("March 11",
+                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/tests/allintents/AllIntentsActivity.java b/tests/src/com/android/contacts/tests/allintents/AllIntentsActivity.java
index d7ea5bf..910fb5c 100644
--- a/tests/src/com/android/contacts/tests/allintents/AllIntentsActivity.java
+++ b/tests/src/com/android/contacts/tests/allintents/AllIntentsActivity.java
@@ -26,6 +26,7 @@
 import android.database.Cursor;
 import android.net.Uri;
 import android.os.Bundle;
+import android.provider.CallLog;
 import android.provider.CallLog.Calls;
 import android.provider.Contacts.ContactMethods;
 import android.provider.Contacts.People;
@@ -46,6 +47,7 @@
 import android.widget.Toast;
 
 import com.android.contacts.tests.R;
+
 import com.google.common.collect.Lists;
 
 /**
@@ -59,7 +61,7 @@
         implements SelectAccountDialogFragment.Listener {
 
     /** The name of the package of the contacts application. */
-    private static final String ANDROID_CONTACTS_PACKAGE = "com.android.contacts";
+    private String mContactsPackageName;
 
     private static final String CONTACT_LIST_ACTIVITY_CLASS_NAME =
             "com.android.contacts.activities.PeopleActivity";
@@ -121,8 +123,10 @@
         CALL_BUTTON,
         DIAL_tel,
         VIEW_tel,
-        VIEW_calllog,
-        VIEW_calllog_entry,
+        VIEW_CALLLOG,
+        VIEW_CALLLOG_MISSED,
+        VIEW_CALLLOG_VOICEMAIL,
+        VIEW_CALLLOG_ENTRY,
         LEGACY_CALL_DETAILS_ACTIVITY,
         LEGACY_CALL_LOG_ACTIVITY;
 
@@ -136,6 +140,8 @@
         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
@@ -487,13 +493,27 @@
                 startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("tel:555-123-4567")));
                 break;
             }
-            case VIEW_calllog: {
-                final Intent intent = new Intent(Intent.ACTION_VIEW, null);
-                intent.setType("vnd.android.cursor.dir/calls");
+            case VIEW_CALLLOG: {
+                final Intent intent = new Intent(Intent.ACTION_VIEW);
+                intent.setType(CallLog.Calls.CONTENT_TYPE);
                 startActivity(intent);
                 break;
             }
-            case VIEW_calllog_entry: {
+            case VIEW_CALLLOG_MISSED: {
+                final Intent intent = new Intent(Intent.ACTION_VIEW);
+                intent.setType(CallLog.Calls.CONTENT_TYPE);
+                intent.putExtra(CallLog.Calls.EXTRA_CALL_TYPE_FILTER, CallLog.Calls.MISSED_TYPE);
+                startActivity(intent);
+                break;
+            }
+            case VIEW_CALLLOG_VOICEMAIL: {
+                final Intent intent = new Intent(Intent.ACTION_VIEW);
+                intent.setType(CallLog.Calls.CONTENT_TYPE);
+                intent.putExtra(CallLog.Calls.EXTRA_CALL_TYPE_FILTER, CallLog.Calls.VOICEMAIL_TYPE);
+                startActivity(intent);
+                break;
+            }
+            case VIEW_CALLLOG_ENTRY: {
                 Uri uri = getCallLogUri();
                 if (uri == null) {
                     Toast.makeText(this, "Call log is empty", Toast.LENGTH_LONG).show();
@@ -541,7 +561,8 @@
 
     /** Creates an intent that is bound to a specific activity by name. */
     private Intent bindIntentToClass(Intent intent, String activityClassName) {
-        intent.setComponent(new ComponentName(ANDROID_CONTACTS_PACKAGE, activityClassName));
+        intent.setComponent(new ComponentName(mContactsPackageName,
+                    activityClassName));
         return intent;
     }
 
diff --git a/tests/src/com/android/contacts/tests/streamitems/StreamItemPopulatorActivity.java b/tests/src/com/android/contacts/tests/streamitems/StreamItemPopulatorActivity.java
deleted file mode 100644
index 9132e40..0000000
--- a/tests/src/com/android/contacts/tests/streamitems/StreamItemPopulatorActivity.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.tests.streamitems;
-
-import android.app.Activity;
-import android.content.ContentProviderOperation;
-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.ContactsContract;
-import android.provider.ContactsContract.RawContacts;
-import android.provider.ContactsContract.StreamItemPhotos;
-import android.provider.ContactsContract.StreamItems;
-import android.view.View;
-import android.widget.Button;
-import android.widget.Toast;
-
-import com.android.contacts.common.model.account.GoogleAccountType;
-import com.android.contacts.tests.R;
-import com.google.common.collect.Lists;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Random;
-
-/**
- * Testing activity that will populate stream items and stream item photos to selected
- * entries in the user's contacts list.
- *
- * The contact selected must have at least one raw contact that was provided by Google.
- */
-public class StreamItemPopulatorActivity extends Activity {
-
-    // Test data to randomly select from.
-    private String[] snippetStrings = new String[]{
-            "Just got back from a vacation in %1$s - what a great place!  Can't wait to go back.",
-            "If I never see %1$s again it will be too soon.",
-            "This is a public service announcement.  If you were even close to considering visiting"
-            + " %1$s, I strongly advise you to reconsider.  The food was terrible, the people were "
-            + "rude, the hygiene of the bus and taxi drivers was positively <i>barbaric</i>.  I "
-            + "feared for my life almost the entire time I was there, and feel lucky to be back "
-            + "<b>home</b>.",
-            "Check out these pictures!  I took them in %1$s"
-    };
-
-    private String[] placeNames = new String[]{
-            "the Google campus in Mountain View",
-            "the deserts on Arrakis",
-            "Iceland",
-            "Japan",
-            "Sydney",
-            "San Francisco",
-            "Munich",
-            "Istanbul",
-            "Tanagra",
-            "the restricted section of Area 51",
-            "the middle of nowhere"
-    };
-
-    private String[] commentStrings = new String[]{
-            "3 retweets",
-            "5 shares",
-            "4 likes",
-            "4 +1s",
-            "<i>24567</i> <font color='blue' size='+1'><b>likes</b></font>"
-    };
-
-    private String[] labelResources = new String[] {
-            "attribution_google_plus",
-            "attribution_google_talk",
-            "attribution_flicker",
-            "attribution_twitter"
-    };
-
-    public String[] iconResources = new String[] {
-            "default_icon"
-    };
-
-    // Photos to randomly select from.
-    private Integer[] imageIds = new Integer[]{
-            R.drawable.android,
-            R.drawable.goldengate,
-            R.drawable.iceland,
-            R.drawable.japan,
-            R.drawable.sydney,
-            R.drawable.wharf,
-            R.drawable.whiskey
-    };
-
-    // Only some photos have actions.
-    private String[] imageStrings = new String[]{
-            "android",
-            "goldengate",
-            "iceland",
-            "japan",
-    };
-
-    // The contact ID that was picked.
-    private long mContactId = -1;
-
-    private Random mRandom;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mRandom = new Random(System.currentTimeMillis());
-
-        setContentView(R.layout.stream_item_populator);
-        Button pickButton = (Button) findViewById(R.id.add);
-        pickButton.setOnClickListener(new View.OnClickListener(){
-            @Override
-            public void onClick(View v) {
-                // Reset the contact ID.
-                mContactId = -1;
-
-                // Forward the Intent to the picker
-                final Intent pickerIntent =
-                        new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
-                pickerIntent.setFlags(
-                        Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
-                startActivityForResult(pickerIntent, 0);
-            }
-        });
-
-        Button exitButton = (Button) findViewById(R.id.exit);
-        exitButton.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                finish();
-            }
-        });
-    }
-
-    @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (resultCode == Activity.RESULT_OK) {
-            Uri contactUri = data.getData();
-            mContactId = ContentUris.parseId(contactUri);
-        }
-    }
-
-    @Override
-    protected void onResume() {
-        super.onResume();
-        if (mContactId != -1) {
-            long rawContactId = -1;
-            String accountType = null;
-            String accountName = null;
-            String dataSet = null;
-
-            // Lookup the com.google raw contact for the contact.
-            Cursor c = getContentResolver().query(RawContacts.CONTENT_URI,
-                    new String[]{
-                            RawContacts._ID,
-                            RawContacts.ACCOUNT_TYPE,
-                            RawContacts.ACCOUNT_NAME
-                    },
-                    RawContacts.CONTACT_ID + "=? AND " + RawContacts.ACCOUNT_TYPE + "=?",
-                    new String[]{String.valueOf(mContactId), GoogleAccountType.ACCOUNT_TYPE}, null);
-            try {
-                c.moveToFirst();
-                rawContactId = c.getLong(0);
-                accountType = c.getString(1);
-                accountName = c.getString(2);
-            } finally {
-                c.close();
-            }
-            if (rawContactId != -1) {
-                addStreamItemsToRawContact(rawContactId, accountType, accountName);
-            } else {
-                Toast.makeText(this,
-                        "Failed to find raw contact ID for contact ID " + mContactId, 5).show();
-            }
-        }
-    }
-
-    protected byte[] loadPhotoFromResource(int resourceId) {
-        InputStream is = getResources().openRawResource(resourceId);
-        return readInputStreamFully(is);
-    }
-
-    protected byte[] readInputStreamFully(InputStream is) {
-        try {
-            byte[] buffer = new byte[is.available()];
-            is.read(buffer);
-            is.close();
-            return buffer;
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    private void addStreamItemsToRawContact(long rawContactId, String accountType,
-            String accountName) {
-        ArrayList<ContentProviderOperation> ops = Lists.newArrayList();
-
-        // Add from 1-5 stream items.
-        int itemsToAdd = randInt(5) + 1;
-        int opCount = 0;
-        for (int i = 0; i < itemsToAdd; i++) {
-            ContentValues streamItemValues = buildStreamItemValues(accountType, accountName);
-            ops.add(ContentProviderOperation.newInsert(
-                    Uri.withAppendedPath(
-                            ContentUris.withAppendedId(ContactsContract.RawContacts.CONTENT_URI,
-                                    rawContactId),
-                            ContactsContract.RawContacts.StreamItems.CONTENT_DIRECTORY))
-                    .withValues(streamItemValues).build());
-
-            // Maybe add photos - 30% chance per stream item.
-            boolean includePhotos = randInt(100) < 30;
-            if (includePhotos) {
-                // Add 1-5 photos if we're including any.
-                int numPhotos = randInt(5) + 1;
-                for (int j = 0; j < numPhotos; j++) {
-                    ContentValues streamItemPhotoValues =
-                            buildStreamItemPhotoValues(j, accountType, accountName);
-                    ops.add(ContentProviderOperation.newInsert(StreamItems.CONTENT_PHOTO_URI)
-                            .withValues(streamItemPhotoValues)
-                            .withValueBackReference(StreamItemPhotos.STREAM_ITEM_ID, opCount)
-                            .build());
-                }
-                opCount += numPhotos;
-            }
-            opCount++;
-        }
-        try {
-            getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
-        } catch (Exception e) {
-            // We don't care.  This is just for test purposes.
-            throw new RuntimeException(e);
-        }
-        Toast.makeText(this, "Added " + itemsToAdd + " stream item(s) and "
-                + (opCount - itemsToAdd) + " photos", 5).show();
-    }
-
-    private ContentValues buildStreamItemValues(String accountType, String accountName) {
-        boolean includeAttribution = randInt(100) < 70;
-        boolean includeComments = randInt(100) < 30;
-        boolean includeAction = randInt(100) < 30;
-        ContentValues values = new ContentValues();
-        String place = pickRandom(placeNames);
-        values.put(StreamItems.TEXT,
-                String.format(pickRandom(snippetStrings) , place)
-                + (includeComments ? " [c]" : "")
-                + (includeAction ? " [a]" : ""));
-        if (includeAttribution) {
-            values.put(StreamItems.RES_PACKAGE, "com.android.contacts.tests");
-            int sourceIndex = randInt(labelResources.length);
-            values.put(StreamItems.RES_LABEL, labelResources[sourceIndex]);
-            if (sourceIndex < iconResources.length) {
-                values.put(StreamItems.RES_ICON, iconResources[sourceIndex]);
-            }
-        }
-        if (includeComments) {
-            values.put(StreamItems.COMMENTS, pickRandom(commentStrings));
-        } else {
-            values.put(StreamItems.COMMENTS, "");
-        }
-        // Set the timestamp to some point in the past.
-        values.put(StreamItems.TIMESTAMP,
-                System.currentTimeMillis() - randInt(360000000));
-        values.put(RawContacts.ACCOUNT_TYPE, accountType);
-        values.put(RawContacts.ACCOUNT_NAME, accountName);
-        return values;
-    }
-
-    private ContentValues buildStreamItemPhotoValues(int index, String accountType,
-            String accountName) {
-        Integer imageIndex = pickRandom(imageIds);
-        ContentValues values = new ContentValues();
-        values.put(StreamItemPhotos.SORT_INDEX, index);
-        values.put(StreamItemPhotos.PHOTO, loadPhotoFromResource(imageIndex));
-        values.put(RawContacts.ACCOUNT_TYPE, accountType);
-        values.put(RawContacts.ACCOUNT_NAME, accountName);
-        return values;
-    }
-
-    private <T> T pickRandom(T[] from) {
-        return from[randInt(from.length)];
-    }
-
-    private int randInt(int max) {
-        return Math.abs(mRandom.nextInt()) % max;
-    }
-}
diff --git a/tests/src/com/android/contacts/tests/widget/PinnedHeaderUseCaseActivity.java b/tests/src/com/android/contacts/tests/widget/PinnedHeaderUseCaseActivity.java
index 613665a..46a1f43 100644
--- a/tests/src/com/android/contacts/tests/widget/PinnedHeaderUseCaseActivity.java
+++ b/tests/src/com/android/contacts/tests/widget/PinnedHeaderUseCaseActivity.java
@@ -76,7 +76,8 @@
     private void startActivity(int[] counts, String[] names, boolean[] headers,
             boolean[] showIfEmpty, int[] delays) {
         Intent intent = new Intent();
-        intent.setComponent(new ComponentName("com.android.contacts",
+        intent.setComponent(new ComponentName(
+                getResources().getString(R.string.target_package_name),
                 "com.android.contacts.widget.PinnedHeaderListDemoActivity"));
         intent.putExtra("counts", counts);
         intent.putExtra("names", names);
diff --git a/tests/src/com/android/contacts/util/HtmlUtilsTest.java b/tests/src/com/android/contacts/util/HtmlUtilsTest.java
deleted file mode 100644
index 772e78f..0000000
--- a/tests/src/com/android/contacts/util/HtmlUtilsTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.util;
-
-import android.graphics.drawable.ColorDrawable;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.SpannableStringBuilder;
-import android.text.Spanned;
-import android.text.SpannedString;
-import android.text.style.ImageSpan;
-import android.text.style.QuoteSpan;
-
-import com.android.contacts.util.HtmlUtils.StreamItemQuoteSpan;
-
-/**
- * Tests for {@link HtmlUtils}.
- *
- * adb shell am instrument -w -e class com.android.contacts.util.HtmlUtilsTest \
-       com.android.contacts.tests/android.test.InstrumentationTestRunner
- */
-@SmallTest
-public class HtmlUtilsTest extends AndroidTestCase {
-    /**
-     * Test for {@link HtmlUtils#postprocess} specifically about trimming newlines.
-     */
-    public void testPostProcess_trimNewLines() {
-        checkTrimNewLines("", "");
-        checkTrimNewLines("", "\n");
-        checkTrimNewLines("", "\n\n");
-        checkTrimNewLines("a", "a");
-        checkTrimNewLines("abc", "abc");
-        checkTrimNewLines("abc", "abc\n");
-        checkTrimNewLines("abc", "abc\n\n\n");
-        checkTrimNewLines("ab\nc", "ab\nc\n");
-
-        assertNull(HtmlUtils.postprocess(getContext(), null));
-    }
-
-    private final void checkTrimNewLines(String expectedString, CharSequence text) {
-        // Test with both SpannedString and SpannableStringBuilder.
-        assertEquals(expectedString,
-                HtmlUtils.postprocess(getContext(), new SpannedString(text)).toString());
-
-        assertEquals(expectedString,
-                HtmlUtils.postprocess(getContext(), new SpannableStringBuilder(text)).toString());
-    }
-
-    public void testPostProcess_with_newlines() {
-        final SpannableStringBuilder builder = new SpannableStringBuilder("01234\n\n");
-
-        setSpans(builder);
-
-        // First test with a SpannableStringBuilder, as opposed to SpannedString
-        checkPostProcess(HtmlUtils.postprocess(getContext(), builder));
-
-        // Then pass a SpannedString, which is immutable, but the method should still work.
-        checkPostProcess(HtmlUtils.postprocess(getContext(), new SpannedString(builder)));
-    }
-
-    /**
-     * Same as {@link #testPostProcess_with_newlines}, but text has no newlines.
-     * (The internal code path is slightly different.)
-     */
-    public void testPostProcess_no_newlines() {
-        final SpannableStringBuilder builder = new SpannableStringBuilder("01234");
-
-        setSpans(builder);
-
-        // First test with a SpannableStringBuilder, as opposed to SpannedString
-        checkPostProcess(HtmlUtils.postprocess(getContext(), builder));
-
-        // Then pass a SpannedString, which is immutable, but the method should still work.
-        checkPostProcess(HtmlUtils.postprocess(getContext(), new SpannedString(builder)));
-    }
-
-    private void setSpans(SpannableStringBuilder builder) {
-        builder.setSpan(new ImageSpan(new ColorDrawable(), ImageSpan.ALIGN_BOTTOM), 0, 2, 0);
-        builder.setSpan(new QuoteSpan(), 2, 4, 0);
-        builder.setSpan(new CustomSpan(), 4, builder.length(), 0);
-    }
-
-    private void checkPostProcess(Spanned ret) {
-        // Newlines should be trimmed.
-        assertEquals("01234", ret.toString());
-
-        // First, check the image span.
-        // - Vertical alignment should be changed to ALIGN_BASELINE
-        // - Drawable shouldn't be changed.
-        ImageSpan[] imageSpans = ret.getSpans(0, ret.length(), ImageSpan.class);
-        assertEquals(1, imageSpans.length);
-        assertEquals(ImageSpan.ALIGN_BASELINE, imageSpans[0].getVerticalAlignment());
-        assertEquals(ColorDrawable.class, imageSpans[0].getDrawable().getClass());
-
-        // QuoteSpans should be replaced with StreamItemQuoteSpans.
-        QuoteSpan[] quoteSpans = ret.getSpans(0, ret.length(), QuoteSpan.class);
-        assertEquals(1, quoteSpans.length);
-        assertEquals(StreamItemQuoteSpan.class, quoteSpans[0].getClass());
-
-        // Other spans should be preserved.
-        CustomSpan[] customSpans = ret.getSpans(0, ret.length(), CustomSpan.class);
-        assertEquals(1, customSpans.length);
-    }
-
-    /** Custom span class used in {@link #testPostProcess} */
-    private static class CustomSpan {
-    }
-}
diff --git a/tests/src/com/android/contacts/util/StreamItemEntryBuilder.java b/tests/src/com/android/contacts/util/StreamItemEntryBuilder.java
deleted file mode 100644
index 9eb550e..0000000
--- a/tests/src/com/android/contacts/util/StreamItemEntryBuilder.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.contacts.util;
-
-import android.content.Context;
-
-/**
- * Builder for {@link StreamItemEntry}s to make writing tests easier.
- */
-public class StreamItemEntryBuilder {
-    private long mId;
-    private String mText;
-    private String mComment;
-    private long mTimestamp;
-    private String mAccountType;
-    private String mAccountName;
-    private String mDataSet;
-    private String mResPackage;
-    private String mIconRes;
-    private String mLabelRes;
-
-    public StreamItemEntryBuilder() {}
-
-    public StreamItemEntryBuilder setText(String value) {
-        mText = value;
-        return this;
-    }
-
-    public StreamItemEntryBuilder setComment(String value) {
-        mComment = value;
-        return this;
-    }
-
-    public StreamItemEntryBuilder setAccountType(String value) {
-        mAccountType = value;
-        return this;
-    }
-
-    public StreamItemEntryBuilder setAccountName(String value) {
-        mAccountName = value;
-        return this;
-    }
-
-    public StreamItemEntryBuilder setDataSet(String value) {
-        mDataSet = value;
-        return this;
-    }
-
-    public StreamItemEntry build(Context context) {
-        StreamItemEntry ret = StreamItemEntry.createForTest(mId, mText, mComment, mTimestamp,
-                mAccountType, mAccountName, mDataSet, mResPackage, mIconRes, mLabelRes);
-        ret.decodeHtml(context);
-        return ret;
-    }
-}
