am fb636408: Merge "Contact icon cannot be replaced when set from gallery."

* commit 'fb6364087e42fe92c39147b3346c2d321186fadd':
  Contact icon cannot be replaced when set from gallery.
diff --git a/Android.mk b/Android.mk
index d574b3f..5a820bd 100644
--- a/Android.mk
+++ b/Android.mk
@@ -10,7 +10,7 @@
 LOCAL_PACKAGE_NAME := Contacts
 LOCAL_CERTIFICATE := shared
 
-LOCAL_PROGUARD_FLAGS := -include $(LOCAL_PATH)/proguard.flags
+LOCAL_PROGUARD_FLAG_FILES := proguard.flags
 
 include $(BUILD_PACKAGE)
 
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 1fae984..92ac452 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -17,6 +17,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.contacts"
     android:sharedUserId="android.uid.shared"
+    android:sharedUserLabel="@string/sharedUserLabel"
 >
 
     <original-package android:name="com.android.contacts" />
@@ -137,22 +138,6 @@
 
         </activity-alias>
 
-        <!-- Main launch Intent to open the Contacts app. This will open the app in its last manual
-        state. This is the state that has been explicitly set by the user (e.g. by clicking a tab).
-        States configured via other Intents (e.g. CallLog after Call) are not considered manual
-        state. At the moment, the Intent always goes to the DialtactsActivity, but this might later
-        be changed to also include sub-activities like Edit or View if they were left open -->
-
-        <activity-alias android:name="ContactsLaunchActivity"
-            android:targetActivity="DialtactsActivity"
-        >
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.BROWSABLE" />
-            </intent-filter>
-        </activity-alias>
-
         <!-- An empty activity that presents the DialtactActivity's Favorites tab -->
         <activity-alias android:name="DialtactsFavoritesEntryActivity"
             android:targetActivity="DialtactsActivity"
@@ -221,23 +206,23 @@
             <intent-filter>
                 <action android:name="android.intent.action.PICK" />
                 <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="vnd.android.cursor.dir/contact" android:host="com.android.contacts" />
-                <data android:mimeType="vnd.android.cursor.dir/person" android:host="contacts" />
-                <data android:mimeType="vnd.android.cursor.dir/phone_v2" android:host="com.android.contacts" />
-                <data android:mimeType="vnd.android.cursor.dir/phone" android:host="contacts" />
-                <data android:mimeType="vnd.android.cursor.dir/postal-address_v2" android:host="com.android.contacts" />
-                <data android:mimeType="vnd.android.cursor.dir/postal-address" android:host="contacts" />
+                <data android:mimeType="vnd.android.cursor.dir/contact" />
+                <data android:mimeType="vnd.android.cursor.dir/person" />
+                <data android:mimeType="vnd.android.cursor.dir/phone_v2" />
+                <data android:mimeType="vnd.android.cursor.dir/phone" />
+                <data android:mimeType="vnd.android.cursor.dir/postal-address_v2" />
+                <data android:mimeType="vnd.android.cursor.dir/postal-address" />
             </intent-filter>
 
             <intent-filter>
                 <action android:name="android.intent.action.GET_CONTENT" />
                 <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="vnd.android.cursor.item/contact" android:host="com.android.contacts" />
-                <data android:mimeType="vnd.android.cursor.item/person" android:host="contacts" />
-                <data android:mimeType="vnd.android.cursor.item/phone_v2" android:host="com.android.contacts" />
-                <data android:mimeType="vnd.android.cursor.item/phone" android:host="contacts" />
-                <data android:mimeType="vnd.android.cursor.item/postal-address_v2" android:host="com.android.contacts" />
-                <data android:mimeType="vnd.android.cursor.item/postal-address" android:host="contacts" />
+                <data android:mimeType="vnd.android.cursor.item/contact" />
+                <data android:mimeType="vnd.android.cursor.item/person" />
+                <data android:mimeType="vnd.android.cursor.item/phone_v2" />
+                <data android:mimeType="vnd.android.cursor.item/phone" />
+                <data android:mimeType="vnd.android.cursor.item/postal-address_v2" />
+                <data android:mimeType="vnd.android.cursor.item/postal-address" />
             </intent-filter>
 
         </activity>
diff --git a/res/drawable-hdpi-finger/btn_circle_disable.png b/res/drawable-hdpi-finger/btn_circle_disable.png
index ae063b5..f04da38 100755
--- a/res/drawable-hdpi-finger/btn_circle_disable.png
+++ b/res/drawable-hdpi-finger/btn_circle_disable.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_circle_disable_focused.png b/res/drawable-hdpi-finger/btn_circle_disable_focused.png
index 7a5d4fe..1c918a5 100755
--- a/res/drawable-hdpi-finger/btn_circle_disable_focused.png
+++ b/res/drawable-hdpi-finger/btn_circle_disable_focused.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_circle_normal.png b/res/drawable-hdpi-finger/btn_circle_normal.png
index 5eda668..f5aedb4 100755
--- a/res/drawable-hdpi-finger/btn_circle_normal.png
+++ b/res/drawable-hdpi-finger/btn_circle_normal.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_circle_pressed.png b/res/drawable-hdpi-finger/btn_circle_pressed.png
index 88848ba..bada362 100755
--- a/res/drawable-hdpi-finger/btn_circle_pressed.png
+++ b/res/drawable-hdpi-finger/btn_circle_pressed.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_circle_selected.png b/res/drawable-hdpi-finger/btn_circle_selected.png
index 7469070..1c918a5 100755
--- a/res/drawable-hdpi-finger/btn_circle_selected.png
+++ b/res/drawable-hdpi-finger/btn_circle_selected.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_left_disable.9.png b/res/drawable-hdpi-finger/btn_dial_action_left_disable.9.png
index 7ba8672..2f17d86 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_left_disable.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_left_disable.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_left_disable_focused.9.png b/res/drawable-hdpi-finger/btn_dial_action_left_disable_focused.9.png
index b4300b6..67080f7 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_left_disable_focused.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_left_disable_focused.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_left_normal.9.png b/res/drawable-hdpi-finger/btn_dial_action_left_normal.9.png
index 7ba8672..2f17d86 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_left_normal.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_left_normal.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_left_pressed.9.png b/res/drawable-hdpi-finger/btn_dial_action_left_pressed.9.png
index 1dc40b7..54f34ed 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_left_pressed.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_left_pressed.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_left_selected.9.png b/res/drawable-hdpi-finger/btn_dial_action_left_selected.9.png
index 4f6c7cf..a00bca4 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_left_selected.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_left_selected.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_middle_disable.9.png b/res/drawable-hdpi-finger/btn_dial_action_middle_disable.9.png
index 0a6cd66..e86afd1 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_middle_disable.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_middle_disable.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_middle_disable_focused.9.png b/res/drawable-hdpi-finger/btn_dial_action_middle_disable_focused.9.png
index b28176f..46935c8 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_middle_disable_focused.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_middle_disable_focused.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_middle_normal.9.png b/res/drawable-hdpi-finger/btn_dial_action_middle_normal.9.png
index 0a6cd66..e86afd1 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_middle_normal.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_middle_normal.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_middle_pressed.9.png b/res/drawable-hdpi-finger/btn_dial_action_middle_pressed.9.png
index 58f187d..6d428c9 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_middle_pressed.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_middle_pressed.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_middle_selected.9.png b/res/drawable-hdpi-finger/btn_dial_action_middle_selected.9.png
index f201dee..678d9e0 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_middle_selected.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_middle_selected.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_right_disable.9.png b/res/drawable-hdpi-finger/btn_dial_action_right_disable.9.png
index 6e6fa30..54896a3 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_right_disable.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_right_disable.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_right_disable_focused.9.png b/res/drawable-hdpi-finger/btn_dial_action_right_disable_focused.9.png
index 46a042f..f25cbc6 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_right_disable_focused.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_right_disable_focused.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_right_normal.9.png b/res/drawable-hdpi-finger/btn_dial_action_right_normal.9.png
index 6e6fa30..54896a3 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_right_normal.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_right_normal.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_right_pressed.9.png b/res/drawable-hdpi-finger/btn_dial_action_right_pressed.9.png
index d66a509..27eddd3 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_right_pressed.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_right_pressed.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_action_right_selected.9.png b/res/drawable-hdpi-finger/btn_dial_action_right_selected.9.png
index d2ee98b..131f1c4 100644
--- a/res/drawable-hdpi-finger/btn_dial_action_right_selected.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_action_right_selected.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_normal.9.png b/res/drawable-hdpi-finger/btn_dial_normal.9.png
index 5702e47..aba4382 100644
--- a/res/drawable-hdpi-finger/btn_dial_normal.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_normal.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_pressed.9.png b/res/drawable-hdpi-finger/btn_dial_pressed.9.png
index a5b51d5..10e2eec 100644
--- a/res/drawable-hdpi-finger/btn_dial_pressed.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_pressed.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_selected.9.png b/res/drawable-hdpi-finger/btn_dial_selected.9.png
index b578146..6372fa0 100644
--- a/res/drawable-hdpi-finger/btn_dial_selected.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_selected.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_textfield_activated.9.png b/res/drawable-hdpi-finger/btn_dial_textfield_activated.9.png
index c937c5e..d30e51d 100644
--- a/res/drawable-hdpi-finger/btn_dial_textfield_activated.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_textfield_activated.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_textfield_normal.9.png b/res/drawable-hdpi-finger/btn_dial_textfield_normal.9.png
index 0c38b39..adacb44 100644
--- a/res/drawable-hdpi-finger/btn_dial_textfield_normal.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_textfield_normal.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_textfield_pressed.9.png b/res/drawable-hdpi-finger/btn_dial_textfield_pressed.9.png
index 22d8235..eb1fda0 100644
--- a/res/drawable-hdpi-finger/btn_dial_textfield_pressed.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_textfield_pressed.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/btn_dial_textfield_selected.9.png b/res/drawable-hdpi-finger/btn_dial_textfield_selected.9.png
index 1fe4dfc..5ad7b56 100644
--- a/res/drawable-hdpi-finger/btn_dial_textfield_selected.9.png
+++ b/res/drawable-hdpi-finger/btn_dial_textfield_selected.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_0_blk.png b/res/drawable-hdpi-finger/dial_num_0_blk.png
index 960d968..f2dcf02 100644
--- a/res/drawable-hdpi-finger/dial_num_0_blk.png
+++ b/res/drawable-hdpi-finger/dial_num_0_blk.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_0_wht.png b/res/drawable-hdpi-finger/dial_num_0_wht.png
index c257817..98dfecd 100644
--- a/res/drawable-hdpi-finger/dial_num_0_wht.png
+++ b/res/drawable-hdpi-finger/dial_num_0_wht.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_1_no_vm_blk.png b/res/drawable-hdpi-finger/dial_num_1_no_vm_blk.png
index d150354..8415b05 100644
--- a/res/drawable-hdpi-finger/dial_num_1_no_vm_blk.png
+++ b/res/drawable-hdpi-finger/dial_num_1_no_vm_blk.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_1_no_vm_wht.png b/res/drawable-hdpi-finger/dial_num_1_no_vm_wht.png
index 9a1152b..8f65ee1 100644
--- a/res/drawable-hdpi-finger/dial_num_1_no_vm_wht.png
+++ b/res/drawable-hdpi-finger/dial_num_1_no_vm_wht.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_2_blk.png b/res/drawable-hdpi-finger/dial_num_2_blk.png
index 7b0cee7..852de4e 100644
--- a/res/drawable-hdpi-finger/dial_num_2_blk.png
+++ b/res/drawable-hdpi-finger/dial_num_2_blk.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_2_wht.png b/res/drawable-hdpi-finger/dial_num_2_wht.png
index cad5485..a7c8993 100644
--- a/res/drawable-hdpi-finger/dial_num_2_wht.png
+++ b/res/drawable-hdpi-finger/dial_num_2_wht.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_3_blk.png b/res/drawable-hdpi-finger/dial_num_3_blk.png
index d2efe88..69fd333 100644
--- a/res/drawable-hdpi-finger/dial_num_3_blk.png
+++ b/res/drawable-hdpi-finger/dial_num_3_blk.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_3_wht.png b/res/drawable-hdpi-finger/dial_num_3_wht.png
index ddb890c..d8276c0 100644
--- a/res/drawable-hdpi-finger/dial_num_3_wht.png
+++ b/res/drawable-hdpi-finger/dial_num_3_wht.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_4_blk.png b/res/drawable-hdpi-finger/dial_num_4_blk.png
index fc3ed43..aab94de 100644
--- a/res/drawable-hdpi-finger/dial_num_4_blk.png
+++ b/res/drawable-hdpi-finger/dial_num_4_blk.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_4_wht.png b/res/drawable-hdpi-finger/dial_num_4_wht.png
index bb8064c..7de2623 100644
--- a/res/drawable-hdpi-finger/dial_num_4_wht.png
+++ b/res/drawable-hdpi-finger/dial_num_4_wht.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_5_blk.png b/res/drawable-hdpi-finger/dial_num_5_blk.png
index 5c78c75..de35f1f 100644
--- a/res/drawable-hdpi-finger/dial_num_5_blk.png
+++ b/res/drawable-hdpi-finger/dial_num_5_blk.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_5_wht.png b/res/drawable-hdpi-finger/dial_num_5_wht.png
index 1368d36..e1cb279 100644
--- a/res/drawable-hdpi-finger/dial_num_5_wht.png
+++ b/res/drawable-hdpi-finger/dial_num_5_wht.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_6_blk.png b/res/drawable-hdpi-finger/dial_num_6_blk.png
index 583fb2a..407ff2e 100644
--- a/res/drawable-hdpi-finger/dial_num_6_blk.png
+++ b/res/drawable-hdpi-finger/dial_num_6_blk.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_6_wht.png b/res/drawable-hdpi-finger/dial_num_6_wht.png
index 7f1bf4a..5b33e2f 100644
--- a/res/drawable-hdpi-finger/dial_num_6_wht.png
+++ b/res/drawable-hdpi-finger/dial_num_6_wht.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_7_blk.png b/res/drawable-hdpi-finger/dial_num_7_blk.png
index 793660b..7a5a38c 100644
--- a/res/drawable-hdpi-finger/dial_num_7_blk.png
+++ b/res/drawable-hdpi-finger/dial_num_7_blk.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_7_wht.png b/res/drawable-hdpi-finger/dial_num_7_wht.png
index d8038c7..5136e67 100644
--- a/res/drawable-hdpi-finger/dial_num_7_wht.png
+++ b/res/drawable-hdpi-finger/dial_num_7_wht.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_8_blk.png b/res/drawable-hdpi-finger/dial_num_8_blk.png
index 0ee87fe..a29b24d 100644
--- a/res/drawable-hdpi-finger/dial_num_8_blk.png
+++ b/res/drawable-hdpi-finger/dial_num_8_blk.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_8_wht.png b/res/drawable-hdpi-finger/dial_num_8_wht.png
index 9d0d0eb..3386866 100644
--- a/res/drawable-hdpi-finger/dial_num_8_wht.png
+++ b/res/drawable-hdpi-finger/dial_num_8_wht.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_9_blk.png b/res/drawable-hdpi-finger/dial_num_9_blk.png
index 920235a..a402147 100644
--- a/res/drawable-hdpi-finger/dial_num_9_blk.png
+++ b/res/drawable-hdpi-finger/dial_num_9_blk.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_9_wht.png b/res/drawable-hdpi-finger/dial_num_9_wht.png
index ac3727d..db78a47 100644
--- a/res/drawable-hdpi-finger/dial_num_9_wht.png
+++ b/res/drawable-hdpi-finger/dial_num_9_wht.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_pound_blk.png b/res/drawable-hdpi-finger/dial_num_pound_blk.png
index fcfc58c..0de2ab4 100644
--- a/res/drawable-hdpi-finger/dial_num_pound_blk.png
+++ b/res/drawable-hdpi-finger/dial_num_pound_blk.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_pound_wht.png b/res/drawable-hdpi-finger/dial_num_pound_wht.png
index df67810..b4793fd 100644
--- a/res/drawable-hdpi-finger/dial_num_pound_wht.png
+++ b/res/drawable-hdpi-finger/dial_num_pound_wht.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_star_blk.png b/res/drawable-hdpi-finger/dial_num_star_blk.png
index ddda118..b25eb9b 100644
--- a/res/drawable-hdpi-finger/dial_num_star_blk.png
+++ b/res/drawable-hdpi-finger/dial_num_star_blk.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/dial_num_star_wht.png b/res/drawable-hdpi-finger/dial_num_star_wht.png
index ded1900..612c4ee 100644
--- a/res/drawable-hdpi-finger/dial_num_star_wht.png
+++ b/res/drawable-hdpi-finger/dial_num_star_wht.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/ic_btn_round_less.png b/res/drawable-hdpi-finger/ic_btn_round_less.png
index 819440e..21a8eff 100644
--- a/res/drawable-hdpi-finger/ic_btn_round_less.png
+++ b/res/drawable-hdpi-finger/ic_btn_round_less.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/ic_btn_round_minus.png b/res/drawable-hdpi-finger/ic_btn_round_minus.png
index 27af3fa..2cd610c 100755
--- a/res/drawable-hdpi-finger/ic_btn_round_minus.png
+++ b/res/drawable-hdpi-finger/ic_btn_round_minus.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/ic_btn_round_more.png b/res/drawable-hdpi-finger/ic_btn_round_more.png
index 9883d55..bf91bef 100755
--- a/res/drawable-hdpi-finger/ic_btn_round_more.png
+++ b/res/drawable-hdpi-finger/ic_btn_round_more.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/ic_btn_round_plus.png b/res/drawable-hdpi-finger/ic_btn_round_plus.png
index b24168c..a541efb 100755
--- a/res/drawable-hdpi-finger/ic_btn_round_plus.png
+++ b/res/drawable-hdpi-finger/ic_btn_round_plus.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/ic_contact_list_picture.png b/res/drawable-hdpi-finger/ic_contact_list_picture.png
old mode 100755
new mode 100644
index 296ab9f..b96fbf4
--- a/res/drawable-hdpi-finger/ic_contact_list_picture.png
+++ b/res/drawable-hdpi-finger/ic_contact_list_picture.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/ic_dial_action_voice_mail.png b/res/drawable-hdpi-finger/ic_dial_action_voice_mail.png
index 8a3f366..6607bb8 100644
--- a/res/drawable-hdpi-finger/ic_dial_action_voice_mail.png
+++ b/res/drawable-hdpi-finger/ic_dial_action_voice_mail.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/ic_dial_number_blk.png b/res/drawable-hdpi-finger/ic_dial_number_blk.png
index cad1d80..971d60a 100755
--- a/res/drawable-hdpi-finger/ic_dial_number_blk.png
+++ b/res/drawable-hdpi-finger/ic_dial_number_blk.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/ic_dial_number_wht.png b/res/drawable-hdpi-finger/ic_dial_number_wht.png
index 54f5ac0..ffc0048 100755
--- a/res/drawable-hdpi-finger/ic_dial_number_wht.png
+++ b/res/drawable-hdpi-finger/ic_dial_number_wht.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_launcher_phone.png b/res/drawable-hdpi/ic_launcher_phone.png
index 0943ce5..7739546 100644
--- a/res/drawable-hdpi/ic_launcher_phone.png
+++ b/res/drawable-hdpi/ic_launcher_phone.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_mark.png b/res/drawable-hdpi/ic_menu_mark.png
index 724d787..1c09175 100755
--- a/res/drawable-hdpi/ic_menu_mark.png
+++ b/res/drawable-hdpi/ic_menu_mark.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_left_disable.9.png b/res/drawable-mdpi-finger/btn_dial_action_left_disable.9.png
index 6ab27d8..5f091f2 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_left_disable.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_left_disable.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_left_disable_focused.9.png b/res/drawable-mdpi-finger/btn_dial_action_left_disable_focused.9.png
index 5bba3c4..b9951ef 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_left_disable_focused.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_left_disable_focused.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_left_normal.9.png b/res/drawable-mdpi-finger/btn_dial_action_left_normal.9.png
index 6ab27d8..5f091f2 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_left_normal.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_left_normal.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_left_pressed.9.png b/res/drawable-mdpi-finger/btn_dial_action_left_pressed.9.png
index 542abe7..c84bbfe 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_left_pressed.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_left_pressed.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_left_selected.9.png b/res/drawable-mdpi-finger/btn_dial_action_left_selected.9.png
index 34caba1..1960abc 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_left_selected.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_left_selected.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_middle_disable.9.png b/res/drawable-mdpi-finger/btn_dial_action_middle_disable.9.png
index 0740c95..575793c 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_middle_disable.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_middle_disable.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_middle_disable_focused.9.png b/res/drawable-mdpi-finger/btn_dial_action_middle_disable_focused.9.png
index c57627f..7c7574f 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_middle_disable_focused.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_middle_disable_focused.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_middle_normal.9.png b/res/drawable-mdpi-finger/btn_dial_action_middle_normal.9.png
index 0740c95..575793c 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_middle_normal.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_middle_normal.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_middle_pressed.9.png b/res/drawable-mdpi-finger/btn_dial_action_middle_pressed.9.png
index a5f9f98..ead7039 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_middle_pressed.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_middle_pressed.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_middle_selected.9.png b/res/drawable-mdpi-finger/btn_dial_action_middle_selected.9.png
index dcd4b82..957b7b9 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_middle_selected.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_middle_selected.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_right_disable.9.png b/res/drawable-mdpi-finger/btn_dial_action_right_disable.9.png
index 85dfff0..515e4f4 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_right_disable.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_right_disable.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_right_disable_focused.9.png b/res/drawable-mdpi-finger/btn_dial_action_right_disable_focused.9.png
index 1f76f0c..27bfc02 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_right_disable_focused.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_right_disable_focused.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_right_normal.9.png b/res/drawable-mdpi-finger/btn_dial_action_right_normal.9.png
index 85dfff0..515e4f4 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_right_normal.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_right_normal.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_right_pressed.9.png b/res/drawable-mdpi-finger/btn_dial_action_right_pressed.9.png
index 226633f..054ebef 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_right_pressed.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_right_pressed.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_action_right_selected.9.png b/res/drawable-mdpi-finger/btn_dial_action_right_selected.9.png
index 9cca52c..9c0a76b 100644
--- a/res/drawable-mdpi-finger/btn_dial_action_right_selected.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_action_right_selected.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_normal.9.png b/res/drawable-mdpi-finger/btn_dial_normal.9.png
index 748dd8a..68dccee 100644
--- a/res/drawable-mdpi-finger/btn_dial_normal.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_normal.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_pressed.9.png b/res/drawable-mdpi-finger/btn_dial_pressed.9.png
index 83f9c62..6fd3e44 100644
--- a/res/drawable-mdpi-finger/btn_dial_pressed.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_pressed.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_selected.9.png b/res/drawable-mdpi-finger/btn_dial_selected.9.png
index edc7bcb..f9258a1 100644
--- a/res/drawable-mdpi-finger/btn_dial_selected.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_selected.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_textfield_activated.9.png b/res/drawable-mdpi-finger/btn_dial_textfield_activated.9.png
index de65d44..4481a68 100644
--- a/res/drawable-mdpi-finger/btn_dial_textfield_activated.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_textfield_activated.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_textfield_normal.9.png b/res/drawable-mdpi-finger/btn_dial_textfield_normal.9.png
index d3613e3..3def8c0 100644
--- a/res/drawable-mdpi-finger/btn_dial_textfield_normal.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_textfield_normal.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_textfield_pressed.9.png b/res/drawable-mdpi-finger/btn_dial_textfield_pressed.9.png
index fa7147e..57a8dd9 100644
--- a/res/drawable-mdpi-finger/btn_dial_textfield_pressed.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_textfield_pressed.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/btn_dial_textfield_selected.9.png b/res/drawable-mdpi-finger/btn_dial_textfield_selected.9.png
index 09db422..5956668 100644
--- a/res/drawable-mdpi-finger/btn_dial_textfield_selected.9.png
+++ b/res/drawable-mdpi-finger/btn_dial_textfield_selected.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/dial_num_0_wht.png b/res/drawable-mdpi-finger/dial_num_0_wht.png
index c3b3f2c..44c38d2 100644
--- a/res/drawable-mdpi-finger/dial_num_0_wht.png
+++ b/res/drawable-mdpi-finger/dial_num_0_wht.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/dial_num_1_no_vm_wht.png b/res/drawable-mdpi-finger/dial_num_1_no_vm_wht.png
index a5bdb41..267bed5 100644
--- a/res/drawable-mdpi-finger/dial_num_1_no_vm_wht.png
+++ b/res/drawable-mdpi-finger/dial_num_1_no_vm_wht.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/dial_num_2_wht.png b/res/drawable-mdpi-finger/dial_num_2_wht.png
index ac99cec..f1f27a3 100644
--- a/res/drawable-mdpi-finger/dial_num_2_wht.png
+++ b/res/drawable-mdpi-finger/dial_num_2_wht.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/dial_num_3_wht.png b/res/drawable-mdpi-finger/dial_num_3_wht.png
index 69170b9..b229202 100644
--- a/res/drawable-mdpi-finger/dial_num_3_wht.png
+++ b/res/drawable-mdpi-finger/dial_num_3_wht.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/dial_num_4_wht.png b/res/drawable-mdpi-finger/dial_num_4_wht.png
index 48a02a5..8c9af62 100644
--- a/res/drawable-mdpi-finger/dial_num_4_wht.png
+++ b/res/drawable-mdpi-finger/dial_num_4_wht.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/dial_num_5_wht.png b/res/drawable-mdpi-finger/dial_num_5_wht.png
index e3c9940..bac9b8f 100644
--- a/res/drawable-mdpi-finger/dial_num_5_wht.png
+++ b/res/drawable-mdpi-finger/dial_num_5_wht.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/dial_num_6_wht.png b/res/drawable-mdpi-finger/dial_num_6_wht.png
index ab12781..c76a988 100644
--- a/res/drawable-mdpi-finger/dial_num_6_wht.png
+++ b/res/drawable-mdpi-finger/dial_num_6_wht.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/dial_num_7_wht.png b/res/drawable-mdpi-finger/dial_num_7_wht.png
index 9e66205..4fe6992 100644
--- a/res/drawable-mdpi-finger/dial_num_7_wht.png
+++ b/res/drawable-mdpi-finger/dial_num_7_wht.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/dial_num_8_wht.png b/res/drawable-mdpi-finger/dial_num_8_wht.png
index 2af30fa..0481eb4 100644
--- a/res/drawable-mdpi-finger/dial_num_8_wht.png
+++ b/res/drawable-mdpi-finger/dial_num_8_wht.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/dial_num_9_wht.png b/res/drawable-mdpi-finger/dial_num_9_wht.png
index 1c99b61..b54c6c2 100644
--- a/res/drawable-mdpi-finger/dial_num_9_wht.png
+++ b/res/drawable-mdpi-finger/dial_num_9_wht.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/dial_num_pound_wht.png b/res/drawable-mdpi-finger/dial_num_pound_wht.png
index e17f2bf..2186b31 100644
--- a/res/drawable-mdpi-finger/dial_num_pound_wht.png
+++ b/res/drawable-mdpi-finger/dial_num_pound_wht.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/dial_num_star_wht.png b/res/drawable-mdpi-finger/dial_num_star_wht.png
index 86113ed..3c75031 100644
--- a/res/drawable-mdpi-finger/dial_num_star_wht.png
+++ b/res/drawable-mdpi-finger/dial_num_star_wht.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/ic_btn_round_less.png b/res/drawable-mdpi-finger/ic_btn_round_less.png
index a9b5bed..96fc42e 100644
--- a/res/drawable-mdpi-finger/ic_btn_round_less.png
+++ b/res/drawable-mdpi-finger/ic_btn_round_less.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/ic_btn_round_more.png b/res/drawable-mdpi-finger/ic_btn_round_more.png
index ebdc55c..e3355cc 100644
--- a/res/drawable-mdpi-finger/ic_btn_round_more.png
+++ b/res/drawable-mdpi-finger/ic_btn_round_more.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_launcher_phone.png b/res/drawable-mdpi/ic_launcher_phone.png
index 724f94a..aa4f3c5 100644
--- a/res/drawable-mdpi/ic_launcher_phone.png
+++ b/res/drawable-mdpi/ic_launcher_phone.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_mark.png b/res/drawable-mdpi/ic_menu_mark.png
index 5e95da7..41ccddf 100644
--- a/res/drawable-mdpi/ic_menu_mark.png
+++ b/res/drawable-mdpi/ic_menu_mark.png
Binary files differ
diff --git a/res/layout-finger/recent_calls_list_group_item.xml b/res/layout-finger/recent_calls_list_group_item.xml
index 2d3e7af..79e7bb9 100644
--- a/res/layout-finger/recent_calls_list_group_item.xml
+++ b/res/layout-finger/recent_calls_list_group_item.xml
@@ -60,6 +60,7 @@
         android:layout_alignParentLeft="true"
         android:layout_alignParentBottom="true"
         android:layout_marginLeft="36dip"
+        android:layout_marginRight="5dip"
         android:layout_alignBaseline="@id/date"
 
         android:singleLine="true"
@@ -71,7 +72,6 @@
     <TextView android:id="@+id/number"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginLeft="5dip"
         android:layout_toRightOf="@id/label"
         android:layout_toLeftOf="@id/date"
         android:layout_alignBaseline="@id/label"
diff --git a/res/layout-finger/recent_calls_list_item_layout.xml b/res/layout-finger/recent_calls_list_item_layout.xml
index 7463669..faaa893 100644
--- a/res/layout-finger/recent_calls_list_item_layout.xml
+++ b/res/layout-finger/recent_calls_list_item_layout.xml
@@ -52,6 +52,7 @@
         android:layout_alignParentLeft="true"
         android:layout_alignParentBottom="true"
         android:layout_marginLeft="36dip"
+        android:layout_marginRight="5dip"
         android:layout_alignBaseline="@id/date"
 
         android:singleLine="true"
@@ -63,7 +64,6 @@
     <TextView android:id="@+id/number"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginLeft="5dip"
         android:layout_toRightOf="@id/label"
         android:layout_toLeftOf="@id/date"
         android:layout_alignBaseline="@id/label"
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 9a1220c..15258e1 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakty"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"Nový kontakt"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Foneticky"</string>
     <string name="label_notes" msgid="8337354953278341042">"Poznámky"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Internetový hovor"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Vyzváněcí tón"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"Jméno a příjmení"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Jméno (foneticky)"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"fotografie kontaktu"</string>
     <string name="description_minus_button" msgid="387136707700230172">"mínus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"Žádná karta SD"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"Nebyla zjištěna žádná karta SD"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Úložiště USB nedostupné"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Žádná karta SD"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Úložiště USB nenalezeno"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Nebyla zjištěna žádná karta SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Vyhledávání karty vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importovat z karty SIM"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Importovat z karty SD"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"Exportovat na kartu SD"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importovat z úložiště USB"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importovat z karty SD"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Export do úložiště USB"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportovat na kartu SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Sdílet viditelné kontakty"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importovat jeden soubor vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importovat několik souborů vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importovat všechny soubory vCard"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Vyhledávání dat karty vCard na kartě SD"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Vyhledávání na kartě SD se nezdařilo"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Vyhledávání na kartě SD se nezdařilo. (Důvod: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Vyhledávání dat karty vCard v úložišti USB"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Vyhledávání dat karty vCard na kartě SD"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Vyhledávání v úložišti USB se nezdařilo"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Vyhledávání na kartě SD se nezdařilo"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Vyhledávání v úložišti USB se nezdařilo (Důvod: „<xliff:g id="FAIL_REASON">%s</xliff:g>“)"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Vyhledávání na kartě SD se nezdařilo. (Důvod: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Chyba V/V"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Analýza karty vCard se z neznámého důvodu nezdařila."</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Analýza karty vCard se nezdařila. Přestože se zřejmě jedná o správný formát, aktuální implementace jej nepodporuje."</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Na kartě SD nebyl nalezen žádný soubor vCard"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"V úložišti USB nebyl nalezen žádný soubor vCard"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"Na kartě SD nebyl nalezen žádný soubor vCard"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Import jednoho nebo více souborů se nezdařil (%s)."</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Neznámá chyba"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"Výběr souboru vCard"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Export dat kontaktů se nezdařil"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Export dat kontaktů se nezdařil."\n"Příčina chyby: <xliff:g id="FAIL_REASON">%s</xliff:g>"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Žádný kontakt nelze exportovat"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"Na kartě SD je příliš mnoho souborů vCard"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"V úložišti USB je příliš mnoho souborů vCard"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Na kartě SD je příliš mnoho souborů vCard"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Požadovaný název souboru (<xliff:g id="FILENAME">%s</xliff:g>) je příliš dlouhý"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Export dat kontaktů"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Probíhá export dat kontaktů do souboru <xliff:g id="FILE_NAME">%s</xliff:g>"</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"Všechny ostatní kontakty"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Všechny kontakty"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Odebráním skupiny <xliff:g id="GROUP">%s</xliff:g> ze synchronizace odeberete ze synchronizace také všechny kontakty mimo skupinu."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Pouze v telefonu (nesynchronizováno)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Pouze v telefonu, nesynchronizováno"</string>
     <string name="call_custom" msgid="7756571794763171802">"Volat kontakt <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"Volat domů"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Volat mobil"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index fda1382..0e743df 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Android-kerneprogrammer"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakter"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"Ny kontakt"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Fonetisk"</string>
     <string name="label_notes" msgid="8337354953278341042">"Noter"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Internetopkald"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Ringetone"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"Fornavn og efternavn"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Fonetisk navn"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"kontaktpersonfoto"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"Der er intet SD-kort"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"Der blev ikke fundet noget SD-kort"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB-lager utilgængeligt"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Der er intet SD-kort"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Intet USB-lager blev fundet"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Der blev ikke fundet noget SD-kort"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Søger efter vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importer fra SIM-kort"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Importer fra SD-kort"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"Eksporter til SD-kort"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importer fra USB-lager"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importer fra SD-kort"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Eksporter til USB-lager"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Eksporter til SD-kort"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Del synlige kontaktpersoner"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importer en VCard-fil"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importer flere VCard-filer"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importer alle VCard-filer"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Søger efter vCard-kort på SD-kortet"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Scanningen af SD-kortet mislykkedes"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Scanningen af SD-kortet mislykkedes: (Årsag: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Søger efter vCard-data i USB-lager"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Søger efter vCard-kort på SD-kortet"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Scanningen af USB-lager mislykkedes"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Scanningen af SD-kortet mislykkedes"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Scanningen af USB-lager mislykkedes (årsag: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Scanningen af SD-kortet mislykkedes: (Årsag: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O-fejl"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"vCard kunne ikke parses pga. en uventet årsag"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"vCard kunne ikke parses, selv om det ser ud til at være et gyldigt format, da den nuværende implementering ikke understøtter det"</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Der blev ikke fundet nogen VCard-fil på SD-kortet"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"Der blev ikke fundet nogen vCard-fil i USB-lageret"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"Der blev ikke fundet nogen VCard-fil på SD-kortet"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"En eller flere filer blev ikke importeret (%s)."</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Ukendt fejl"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"Vælg vCard-fil"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Eksport af kontaktdata mislykkedes"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Eksport af kontaktpersondata mislykkedes."\n"Årsag til fejl: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Der er ingen kontakter, der kan eksporteres"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"Der er for mange vCard-data på SD-kortet"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Der er for mange vCard-filer i USB-lager"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Der er for mange vCard-data på SD-kortet"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Det krævede filnavn er for langt (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Eksporterer kontaktdata"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Kontaktdata eksporteres til \"<xliff:g id="FILE_NAME">%s</xliff:g>\""</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"Alle andre kontakter"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Alle kontakter"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Hvis \'<xliff:g id="GROUP">%s</xliff:g>\' fjernes fra synkronisering, vil kontaktpersoner, der ikke er i grupper, også fjernes fra synkroniseringen."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Kun telefon (ikke synkroniseret)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Kun telefon, ikke synkroniseret"</string>
     <string name="call_custom" msgid="7756571794763171802">"Ring til <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"Ring hjem"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Ring til mobil"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index e32ad20..0fd440e 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakte"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"Neuer Kontakt"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Phonetisch"</string>
     <string name="label_notes" msgid="8337354953278341042">"Notizen"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Internetanruf"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Klingelton"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"Vor- und Nachname"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Phonetischer Name"</string>
@@ -139,7 +141,7 @@
     <string name="liveFolderPhone" msgid="3739376066610926780">"Kontakte mit Telefonnummern"</string>
     <string name="menu_sendTextMessage" msgid="6937343460284499306">"Textnachricht senden"</string>
     <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> anrufen"</string>
-    <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Nummer vor Anruf bearbeiten"</string>
+    <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Nr. vor Anruf bearbeiten"</string>
     <string name="recentCalls_addToContact" msgid="1429899535546487008">"Zu Kontakten hinzufügen"</string>
     <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Aus Anrufliste entfernen"</string>
     <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Anrufliste löschen"</string>
@@ -158,11 +160,11 @@
     <string name="simContacts_title" msgid="27341688347689769">"Kontakte auf SIM-Karte"</string>
     <string name="noContactsHelpTextWithSyncForCreateShortcut" msgid="801504710275614594">"Sie haben keine Kontakte. Wenn Sie gerade ein Konto hinzugefügt haben, kann die Synchronisierung der Kontakte einige Minuten dauern."</string>
     <string name="noContactsHelpTextForCreateShortcut" msgid="3081286388667108335">"Sie haben keine Kontakte."</string>
-    <string name="noContactsHelpText" msgid="6788487368878712350">"Es sind keine Kontakte vorhanden."\n\n"Drücken Sie zum Hinzufügen von Kontakten die "<font fgcolor="#ffffffff"><b>"Menütaste"</b></font>" und tippen Sie anschließend auf "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto mit Kontakten, die Sie mit dem Telefon synchronisieren möchten, hinzuzufügen oder zu konfigurieren."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen."\n</li>\n<li><font fgcolor="#ffffffff"><b>"Importieren/Exportieren"</b></font>\n</li></string>
+    <string name="noContactsHelpText" msgid="6788487368878712350">"Es sind keine Kontakte vorhanden."\n\n"Drücken Sie zum Hinzufügen von Kontakten die "<font fgcolor="#ffffffff"><b>"Menütaste"</b></font>" und berühren Sie anschließend "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto mit Kontakten, die Sie mit dem Telefon synchronisieren möchten, hinzuzufügen oder zu konfigurieren."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen."\n</li>\n<li><font fgcolor="#ffffffff"><b>"Importieren/Exportieren"</b></font>\n</li></string>
     <string name="noContactsHelpTextWithSync" msgid="3734101165712848179">"Es sind keine Kontakte vorhanden. Wenn Sie gerade ein Konto hinzugefügt haben, kann es einige Minuten dauern, bis die Kontakte synchronisiert sind."\n\n"Drücken Sie zum Hinzufügen von Kontakten die "<font fgcolor="#ffffffff"><b>"Menütaste"</b></font>" und tippen Sie anschließend auf "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto mit Kontakten, die Sie mit dem Telefon synchronisieren möchten, hinzuzufügen oder zu konfigurieren."\n" "</li>\n<li><font fgcolor="#ffffffff"><b>"Anzeigeoptionen"</b></font>", um zu ändern, welche Kontakte angezeigt werden."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importieren/Exportieren"</b></font>\n</li></string>
-    <string name="noContactsNoSimHelpText" msgid="6553845386917463292">"Es sind keine Kontakte vorhanden."\n\n"Drücken Sie zum Hinzufügen von Kontakten die "<font fgcolor="#ffffffff"><b>"Menütaste"</b></font>" und tippen Sie anschließend auf "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto mit Kontakten, die Sie mit dem Telefon synchronisieren möchten, hinzuzufügen oder zu konfigurieren."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen."\n</li>\n<li><font fgcolor="#ffffffff"><b>"Importieren/Exportieren"</b></font>\n</li></string>
-    <string name="noContactsNoSimHelpTextWithSync" msgid="1122296298361373488">"Es sind keine Kontakte vorhanden. Wenn Sie gerade ein Konto hinzugefügt haben, kann es einige Minuten dauern, bis die Kontakte synchronisiert sind."\n\n"Drücken Sie zum Hinzufügen von Kontakten die "<font fgcolor="#ffffffff"><b>"Menütaste"</b></font>" und tippen Sie anschließend auf "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto mit Kontakten, die Sie mit dem Telefon synchronisieren möchten, hinzuzufügen oder zu konfigurieren."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Anzeigeoptionen"</b></font>", um zu ändern, welche Kontakte angezeigt werden."\n</li>\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importieren/Exportieren"</b></font>\n</li></string>
-    <string name="noFavoritesHelpText" msgid="3744655776704833277">"Es sind keine Favoriten vorhanden."\n\n"So fügen Sie einen Kontakt zu Ihrer Favoritenliste hinzu:"\n\n"        "<li>"Tippen Sie auf den Tab "<b>"Kontakte"</b>"."\n</li>" "\n<li>"Tippen Sie auf den Kontakt, den Sie zu Ihren Favoriten hinzufügen möchten."\n</li>" "\n<li>"Tippen Sie auf die Markierung neben dem Kontaktnamen."\n</li></string>
+    <string name="noContactsNoSimHelpText" msgid="6553845386917463292">"Es sind keine Kontakte vorhanden."\n\n"Drücken Sie zum Hinzufügen von Kontakten die "<font fgcolor="#ffffffff"><b>"Menütaste"</b></font>" und berühren Sie anschließend "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto mit Kontakten, die Sie mit dem Telefon synchronisieren möchten, hinzuzufügen oder zu konfigurieren."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen."\n</li>\n<li><font fgcolor="#ffffffff"><b>"Importieren/Exportieren"</b></font>\n</li></string>
+    <string name="noContactsNoSimHelpTextWithSync" msgid="1122296298361373488">"Es sind keine Kontakte vorhanden. Wenn Sie gerade ein Konto hinzugefügt haben, kann es einige Minuten dauern, bis die Kontakte synchronisiert sind."\n\n"Drücken Sie zum Hinzufügen von Kontakten die "<font fgcolor="#ffffffff"><b>"Menütaste"</b></font>" und berühren Sie anschließend "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto mit Kontakten, die Sie mit dem Telefon synchronisieren möchten, hinzuzufügen oder zu konfigurieren."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Anzeigeoptionen"</b></font>", um zu ändern, welche Kontakte angezeigt werden."\n</li>\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importieren/Exportieren"</b></font>\n</li></string>
+    <string name="noFavoritesHelpText" msgid="3744655776704833277">"Es sind keine Favoriten vorhanden."\n\n"So fügen Sie einen Kontakt zu Ihrer Favoritenliste hinzu:"\n\n" "<li>"Berühren Sie den Tab "<b>"Kontakte"</b>"."\n</li>" "\n<li>"Berühren Sie den Kontakt, den Sie zu Ihren Favoriten hinzufügen möchten."\n</li>" "\n<li>"Berühren Sie den Stern neben dem Kontaktnamen."\n</li></string>
     <string name="liveFolder_all_label" msgid="5961411940473276616">"Alle Kontakte"</string>
     <string name="liveFolder_favorites_label" msgid="2674341514070517105">"Markiert"</string>
     <string name="liveFolder_phones_label" msgid="1709786878793436245">"Nummern"</string>
@@ -173,7 +175,7 @@
     <string name="toast_call_detail_error" msgid="7200975244804730096">"Details für den angeforderten Anruf konnten nicht gelesen werden."</string>
     <string name="type_incoming" msgid="6502076603836088532">"Eingehender Anruf"</string>
     <string name="type_outgoing" msgid="343108709599392641">"Ausgehender Anruf"</string>
-    <string name="type_missed" msgid="2720502601640509542">"Verpasster Anruf"</string>
+    <string name="type_missed" msgid="2720502601640509542">"Entgangener Anruf"</string>
     <string name="actionIncomingCall" msgid="6028930669817038600">"Eingehende Anrufe"</string>
     <string name="callBack" msgid="5498224409038809224">"Rückruf"</string>
     <string name="callAgain" msgid="3197312117049874778">"Erneut anrufen"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"Kontaktbild"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"Keine SD-Karte"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"Keine SD-Karte gefunden"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB-Speicher nicht verfügbar"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Keine SD-Karte"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Keinen USB-Speicher gefunden"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Keine SD-Karte gefunden"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"vCard wird gesucht."</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Von SIM-Karte importieren"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Von SD-Karte importieren"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"An SD-Karte exportieren"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Aus USB-Speicher import."</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Von SD-Karte importieren"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"In USB-Speicher exportieren"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"An SD-Karte exportieren"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Sichtbare Kontakte weiterleiten"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Eine VCard-Datei importieren"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Mehrere VCard-Dateien importieren"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Alle VCard-Dateien importieren"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Suche nach einer vCard-Information auf der SD-Karte"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Fehler beim Lesen der SD-Karte"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Fehler beim Lesen der SD-Karte. Grund: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Suche nach vCard-Daten in USB-Speicher"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Suche nach einer vCard-Information auf der SD-Karte"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Scannen des USB-Speichers fehlgeschlagen"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Fehler beim Lesen der SD-Karte"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Scannen des USB-Speichers fehlgeschlagen. Grund: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Fehler beim Lesen der SD-Karte. Grund: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"E/A-Fehler"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Die vCard konnte aus einem unbekannten Grund nicht geparst werden."</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Beim Parsen der vCard ist ein Fehler aufgetreten. Obwohl die vCard anscheinend ein gültiges Format aufweist, wird sie von der aktuellen Implementierung nicht unterstützt."</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Keine VCard-Datei auf der SD-Karte gefunden"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"Im USB-Speicher wurde keine vCard-Datei gefunden."</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"Keine VCard-Datei auf der SD-Karte gefunden"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Fehler beim Import einer oder mehrerer Dateien (%s)"</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Unbekannter Fehler"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"vCard-Datei auswählen"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Fehler beim Exportieren von Kontaktdaten"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Fehler beim Exportieren der Kontaktdaten."\n"Fehlerursache: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Es ist kein exportierbarer Kontakt vorhanden"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"Zu viele vCard-Dateien auf der SD-Karte"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Zu viele vCard-Dateien im USB-Speicher"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Zu viele vCard-Dateien auf der SD-Karte"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Erforderlicher Dateiname ist zu lang (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Kontaktdaten werden exportiert."</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Kontaktdaten werden in \"<xliff:g id="FILE_NAME">%s</xliff:g>\" exportiert."</string>
@@ -279,13 +290,13 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"Alle weiteren Kontakte"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Alle Kontakte"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Wenn \"<xliff:g id="GROUP">%s</xliff:g>\" aus der Synchronisierung entfernt wird, werden auch alle nicht gruppierten Kontakte aus der Synchronisierung entfernt."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Nur Telefon (nicht synchronisiert)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Nur Telefon, nicht synchronisiert"</string>
     <string name="call_custom" msgid="7756571794763171802">"<xliff:g id="CUSTOM">%s</xliff:g> anrufen"</string>
     <string name="call_home" msgid="1990519474420545392">"Anruf (privat)"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Anruf (mobil)"</string>
-    <string name="call_work" msgid="5328785911463744028">"Anruf (Arbeit)"</string>
-    <string name="call_fax_work" msgid="7467763592359059243">"Anruf (Fax, Arbeit)"</string>
-    <string name="call_fax_home" msgid="8342175628887571876">"Faxanruf (privat)"</string>
+    <string name="call_work" msgid="5328785911463744028">"Anruf (geschäftl.)"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Anruf (Fax, geschäftl.)"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Anruf Fax (privat)"</string>
     <string name="call_pager" msgid="9003902812293983281">"Anruf (Pager)"</string>
     <string name="call_other" msgid="8563753966926932052">"Anruf bei"</string>
     <string name="call_callback" msgid="1910165691349426858">"Rückrufnummer anrufen"</string>
@@ -297,16 +308,16 @@
     <string name="call_radio" msgid="8296755876398357063">"Anruf (Mobilfunk)"</string>
     <string name="call_telex" msgid="2223170774548648114">"Telexnummer anrufen"</string>
     <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD anrufen"</string>
-    <string name="call_work_mobile" msgid="8707874281430105394">"Mobilfunknummer (geschäftlich) anrufen"</string>
-    <string name="call_work_pager" msgid="3419348514157949008">"Pager (beruflich) anrufen"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Anruf Handy (geschäftl.)"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Anruf Pager (geschäftl.)"</string>
     <string name="call_assistant" msgid="2141641383068514308">"<xliff:g id="ASSISTANT">%s</xliff:g> anrufen"</string>
     <string name="call_mms" msgid="6274041545876221437">"Anruf (MMS)"</string>
     <string name="sms_custom" msgid="5932736853732191825">"Text <xliff:g id="CUSTOM">%s</xliff:g>"</string>
-    <string name="sms_home" msgid="7524332261493162995">"Text (privat)"</string>
+    <string name="sms_home" msgid="7524332261493162995">"SMS (privat)"</string>
     <string name="sms_mobile" msgid="5200107250451030769">"Text (mobil)"</string>
-    <string name="sms_work" msgid="2269624156655267740">"Text (Arbeit)"</string>
-    <string name="sms_fax_work" msgid="8028189067816907075">"Text (Fax, Arbeit)"</string>
-    <string name="sms_fax_home" msgid="9204042076306809634">"Text (Fax, privat)"</string>
+    <string name="sms_work" msgid="2269624156655267740">"SMS (geschäftl.)"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"SMS an Fax (geschäftl.)"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"SMS an Fax (privat)"</string>
     <string name="sms_pager" msgid="7730404569637015192">"Text-Pager"</string>
     <string name="sms_other" msgid="806127844607642331">"Textnachricht an"</string>
     <string name="sms_callback" msgid="5004824430094288752">"Textnachricht an Rückrufnummer"</string>
@@ -318,23 +329,23 @@
     <string name="sms_radio" msgid="3329166673433967820">"Text (Mobilfunk)"</string>
     <string name="sms_telex" msgid="9034802430065267848">"Textnachricht an Telex"</string>
     <string name="sms_tty_tdd" msgid="6782284969132531532">"Textnachricht an TTY/TDD"</string>
-    <string name="sms_work_mobile" msgid="2459939960512702560">"Textnachricht an Mobilfunknummer (geschäftlich)"</string>
-    <string name="sms_work_pager" msgid="5566924423316960597">"Textnachricht an Pager (geschäftlich)"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"SMS an Handy (geschäftl.)"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"SMS an Pager (geschäftl.)"</string>
     <string name="sms_assistant" msgid="2773424339923116234">"Textnachricht an <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
     <string name="sms_mms" msgid="4069352461380762677">"Text (MMS)"</string>
     <string name="email_home" msgid="8573740658148184279">"E-Mail (privat)"</string>
     <string name="email_mobile" msgid="2042889209787989814">"E-Mail (mobil)"</string>
-    <string name="email_work" msgid="2807430017302722689">"E-Mail (Arbeit)"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-Mail (geschäftl.)"</string>
     <string name="email_other" msgid="3454004077967657109">"E-Mail an"</string>
     <string name="email_custom" msgid="7548003991586214105">"E-Mail <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="email" msgid="5668400997660065897">"E-Mail"</string>
     <string name="map_home" msgid="1243547733423343982">"Privatadresse anzeigen"</string>
-    <string name="map_work" msgid="1360474076921878088">"Arbeitsadresse anzeigen"</string>
+    <string name="map_work" msgid="1360474076921878088">"Geschäftsadresse anzeigen"</string>
     <string name="map_other" msgid="3817820803587012641">"Adresse anzeigen"</string>
     <string name="map_custom" msgid="6184363799976265281">"<xliff:g id="CUSTOM">%s</xliff:g>-Adresse anzeigen"</string>
     <string name="chat_aim" msgid="2588492205291249142">"Chat über AIM"</string>
     <string name="chat_msn" msgid="8041633440091073484">"Chat über Windows Live"</string>
-    <string name="chat_yahoo" msgid="6629211142719943666">"Chat über Yahoo"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chat über Yahoo!"</string>
     <string name="chat_skype" msgid="1210045020427480566">"Chat über Skype"</string>
     <string name="chat_qq" msgid="4294637812847719693">"Chat über QQ"</string>
     <string name="chat_gtalk" msgid="981575737258117697">"Chat über Google Talk"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index ec645a5..1d86dcc 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Βασικές εφαρμογές Android"</string>
     <string name="contactsList" msgid="8661624236494819731">"Επαφές"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Τηλέφωνο"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Επαφή"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"Νέα επαφή"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Φωνητική"</string>
     <string name="label_notes" msgid="8337354953278341042">"Σημειώσεις"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Κλήση Internet"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Ήχος κλήσης"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"Όνομα και επίθετο"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Φωνητικό όνομα"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"φωτογραφία επαφής"</string>
     <string name="description_minus_button" msgid="387136707700230172">"μείον"</string>
     <string name="description_plus_button" msgid="515164827856229880">"συν"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"Δεν υπάρχει κάρτα SD"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"Δεν ανιχνεύθηκε κάρτα SD"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Διαθέσ. αποθηκ. χώρος USB"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Δεν υπάρχει κάρτα SD"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Χωρίς εντοπ. αποθ. χώρου USB"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Δεν ανιχνεύθηκε κάρτα SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Αναζήτηση κάρτας vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Εισαγωγή από κάρτα SIM"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Εισαγωγή από κάρτα SD"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"Εξαγωγή σε κάρτα SD"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Εισ. από αποθ. χώρο USB"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Εισαγωγή από κάρτα SD"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Εξαγ. σε αποθ. χώρο USB"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Εξαγωγή σε κάρτα SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Κοινή χρήση ορατών επαφών"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Εισαγωγή ενός αρχείου VCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Εισαγωγή πολλαπλών αρχείων vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Εισαγωγή όλων των αρχείων vCard"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Αναζήτηση για δεδομένα vCard στην κάρτα SD"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Η σάρωση της κάρτας SD απέτυχε"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Η σάρωση της κάρτας SD απέτυχε (Αιτία:\"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Αναζήτηση δεδομένων vCard στον αποθηκευτικό χώρο USB"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Αναζήτηση για δεδομένα vCard στην κάρτα SD"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Η σάρωση του αποθηκευτικού χώρου USB απέτυχε"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Η σάρωση της κάρτας SD απέτυχε"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Η σάρωση του αποθηκευτικού χώρου USB απέτυχε (Αιτία: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Η σάρωση της κάρτας SD απέτυχε (Αιτία:\"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Σφάλμα I/O"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Η ανάλυση της κάρτας vCard απέτυχε εξαιτίας μη αναμενόμενου συμβάντος"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Αν και το VCard φαίνεται να βρίσκεται σε έγκυρη μορφή, η ανάλυσή του απέτυχε, εφόσον η τρέχουσα εφαρμογή δεν το υποστηρίζει"</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Δεν βρέθηκε αρχείο VCard στην κάρτα SD"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"Δεν βρέθηκαν αρχεία vCard στον αποθηκευτικό σας χώρο USB"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"Δεν βρέθηκε αρχείο VCard στην κάρτα SD"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Η εισαγωγή ενός ή περισσοτέρων αρχείων απέτυχε (%s)."</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Άγνωστο σφάλμα"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"Επιλογή αρχείου vCard"</string>
@@ -228,12 +238,13 @@
     <string name="reading_vcard_failed_title" msgid="4923008144735294994">"Η ανάγνωση των δεδομένων vCard απέτυχε"</string>
     <string name="reading_vcard_contacts" msgid="3066834102042012868">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g> από <xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> επαφές"</string>
     <string name="reading_vcard_files" msgid="34180143726972661">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g> από <xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> αρχεία"</string>
-    <string name="confirm_export_title" msgid="7648747763127442983">"Επιβεβαίωση\nεξαγωγής"</string>
+    <string name="confirm_export_title" msgid="7648747763127442983">"Επιβεβαίωση εξαγωγής"</string>
     <string name="confirm_export_message" msgid="3875683519257829750">"Είστε σίγουροι ότι θέλετε να εξαγάγετε τη λίστα των επαφών σας στο \"<xliff:g id="VCARD_FILENAME">%s</xliff:g>\";"</string>
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Αποτυχία εξαγωγής δεδομένων επαφής"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Αποτυχία εξαγωγής δεδομένων επαφής."\n"Αιτία αποτυχίας: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Δεν υπάρχει επαφή με δυνατότητα εξαγωγής"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"Υπερβολικά μεγάλος όγκος αρχείων VCard στην κάρτα SD"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Υπερβολικά μεγάλος όγκος αρχείων VCard στον αποθηκευτικό χώρο USB"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Υπερβολικά μεγάλος όγκος αρχείων VCard στην κάρτα SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Το απαιτούμενο όνομα αρχείου είναι υπερβολικά μεγάλο (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Εξαγωγή δεδομένων επαφών"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Εξαγωγή δεδομένων επαφών προς \"<xliff:g id="FILE_NAME">%s</xliff:g>\""</string>
@@ -272,14 +283,14 @@
     <string name="edit_read_only" msgid="8158629550655830981">"Αυτή η επαφή είναι μόνο για ανάγνωση"</string>
     <string name="edit_secondary_collapse" msgid="5371618426594477103">"Περισσότερα"</string>
     <string name="dialog_primary_name" msgid="5521591005692614833">"Κύριο όνομα"</string>
-    <string name="dialog_new_contact_account" msgid="9044704073286262197">"Δημιουργία επαφής\nστον λογαριασμό"</string>
+    <string name="dialog_new_contact_account" msgid="9044704073286262197">"Δημιουργία επαφής στον λογαριασμό"</string>
     <string name="menu_sync_remove" msgid="3266725887008450161">"Κατάργηση ομάδας συγχρονισμού"</string>
     <string name="dialog_sync_add" msgid="8267045393119375803">"Προσθήκη ομάδας συγχρονισμού"</string>
     <string name="display_more_groups" msgid="2682547080423434170">"Περισσότερες ομάδες…"</string>
     <string name="display_ungrouped" msgid="4602580795576261158">"Όλες οι άλλες επαφές"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Όλες οι επαφές"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Η κατάργηση της ομάδας \"<xliff:g id="GROUP">%s</xliff:g>\" από τον συγχρονισμό θα καταργήσει επίσης και τις επαφές χωρίς ομαδοποίηση από τον συγχρονισμό."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Μόνο στο τηλέφωνο (Χωρίς συγχρονισμό)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Μόνο στο τηλέφωνο, χωρίς συγχρονισμό"</string>
     <string name="call_custom" msgid="7756571794763171802">"Κλήση <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"Κλήση οικίας"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Κλήση κινητής συσκευής"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 5c430d3..66ef0cc 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Aplicaciones del núcleo de Androide"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contactos"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Teléfono"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contacto"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"Nuevo contacto"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Fonético"</string>
     <string name="label_notes" msgid="8337354953278341042">"Notas"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Llamada de Internet"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Tono de llamada"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"Primero y último"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Nombre fonético"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"foto de contacto"</string>
     <string name="description_minus_button" msgid="387136707700230172">"negativo"</string>
     <string name="description_plus_button" msgid="515164827856229880">"más"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"No hay tarjeta SD"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"No se ha detectado ninguna tarjeta SD"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Almacenamiento USB no disponible"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"No hay tarjeta SD"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"No se detectó el almacenamiento USB"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"No se ha detectado ninguna tarjeta SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Buscando vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importar de la tarjeta SIM"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Importar de la tarjeta SD"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"Exportar a la tarjeta SD"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importar desde almacenamiento USB"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importar de la tarjeta SD"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exportar a almacenamiento USB"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportar a la tarjeta SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Compartir contactos visibles"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importar un archivo de vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importar múltiples archivos de vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importar todos los archivos de vCard"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Buscando datos de vCard en la tarjeta SD"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"No se ha podido explorar la tarjeta SD"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"No se ha podido explorar la tarjeta SD. (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Buscando datos de vCard en el almacenamiento USB"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Buscando datos de vCard en la tarjeta SD"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"No se pudo explorar el almacenamiento USB"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"No se ha podido explorar la tarjeta SD"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"No se pudo explorar el almacenamiento USB (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"No se ha podido explorar la tarjeta SD. (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Error de E/S"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"No se ha podido analizar vCard debido a un motivo inesperado"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"No se ha podido analizar vCard aunque el formato parece válido, ya que la implementación actual no lo admite"</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"No se ha encontrado un archivo de vCard en la Tarjeta SD."</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"No se encontró ningún archivo vCard en el almacenamiento USB."</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"No se ha encontrado un archivo de vCard en la Tarjeta SD."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"No se pudieron importar uno o más archivos (%s)."</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Error desconocido"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"Seleccionar archivo de vCard"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"No se han podido exportar los datos de contacto"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"No se han podido exportar los datos de contacto."\n"Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"No hay ningún contacto exportable"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"Demasiados archivos de vCard en la tarjeta SD"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Demasiados archivos de vCard en el almacenamiento USB"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Demasiados archivos de vCard en la tarjeta SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"El nombre de archivo requerido es demasiado largo (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exportando datos de contacto"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Exportando datos de contacto a \"<xliff:g id="FILE_NAME">%s</xliff:g>\""</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"Todos los otros contactos"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Todos los contactos"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Al suprimir \"<xliff:g id="GROUP">%s</xliff:g>\" de sincronización también se suprimirá cualquier contacto no agrupado de la sincronización."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Sólo telefónicamente (no sincronizado)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Sólo telefónicamente, no sincronizado"</string>
     <string name="call_custom" msgid="7756571794763171802">"Llamar a <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"Llamar al hogar"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Llamar al celular"</string>
@@ -290,7 +301,7 @@
     <string name="call_other" msgid="8563753966926932052">"Llamar"</string>
     <string name="call_callback" msgid="1910165691349426858">"Llamar a devolución de llamada"</string>
     <string name="call_car" msgid="3280537320306436445">"Llamar al auto"</string>
-    <string name="call_company_main" msgid="6105120947138711257">"Llamar empresa principal "</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Llamar empresa principal"</string>
     <string name="call_isdn" msgid="1541590690193403411">"Llamar a ISDN"</string>
     <string name="call_main" msgid="6082900571803441339">"Llamada principal"</string>
     <string name="call_other_fax" msgid="5745314124619636674">"Llamar a fax"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index d689638..2cb7023 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Aplicaciones básicas"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contactos"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Teléfono"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contacto"</string>
@@ -42,7 +43,7 @@
     <string name="menu_deleteContact" msgid="1916555454274101750">"Eliminar contacto"</string>
     <string name="menu_call" msgid="3992595586042260618">"Llamar al contacto"</string>
     <string name="menu_sendSMS" msgid="5535886767547006515">"Enviar un mensaje de texto al contacto"</string>
-    <string name="menu_sendEmail" msgid="7293508859242926187">"Enviar mensaje de correo electrónico"</string>
+    <string name="menu_sendEmail" msgid="7293508859242926187">"Enviar email"</string>
     <string name="menu_viewAddress" msgid="1814744325763202024">"Dirección en mapa"</string>
     <string name="menu_makeDefaultNumber" msgid="4838759253316649534">"Convertir en número predeterminado"</string>
     <string name="menu_makeDefaultEmail" msgid="2599044610375789994">"Establecer como dirección de correo electrónico predeterminada"</string>
@@ -64,12 +65,13 @@
     <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_done" msgid="796017761764190697">"Listo"</string>
+    <string name="menu_done" msgid="796017761764190697">"OK"</string>
     <string name="menu_doNotSave" msgid="2174577548513895144">"Volver"</string>
     <string name="editContact_title_edit" msgid="7678695190666836093">"Editar contacto"</string>
     <string name="editContact_title_insert" msgid="9125600232291405757">"Contacto nuevo"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Pronunciación"</string>
     <string name="label_notes" msgid="8337354953278341042">"Notas"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Llamada por Internet"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Tono"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"Nombre y apellido"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Transcripción fonética del nombre"</string>
@@ -133,7 +135,7 @@
     <string name="contactsIconLabel" msgid="7666609097606552806">"Contactos"</string>
     <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoritos"</string>
     <string name="dialerIconLabel" msgid="6500826552823403796">"Teléfono"</string>
-    <string name="recentCallsIconLabel" msgid="1419116422359067949">"Registro"</string>
+    <string name="recentCallsIconLabel" msgid="1419116422359067949">"Llamadas"</string>
     <string name="liveFolderAll" msgid="4789010460767506206">"Todos los contactos"</string>
     <string name="liveFolderFavorites" msgid="3100957542927222282">"Contactos destacados"</string>
     <string name="liveFolderPhone" msgid="3739376066610926780">"Contactos con números de teléfono"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"foto de contacto"</string>
     <string name="description_minus_button" msgid="387136707700230172">"menos"</string>
     <string name="description_plus_button" msgid="515164827856229880">"más"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"Falta la tarjeta SD."</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"No se ha detectado ninguna tarjeta SD."</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB no disponible"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Falta la tarjeta SD."</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"USB no detectado"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"No se ha detectado ninguna tarjeta SD."</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Buscando vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importar contactos desde la tarjeta SIM"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Importar contactos desde la tarjeta SD"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"Exportar contactos a la tarjeta SD"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importar de USB"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importar contactos desde la tarjeta SD"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exportar a USB"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportar contactos a la tarjeta SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Compartir contactos visibles"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importar un archivo de vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importar varios archivos de vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importar todos los archivos de vCard"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Buscando datos de vCard en la tarjeta SD"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Error al buscar en la tarjeta SD"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Error al buscar en la tarjeta SD (motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Buscando datos de vCard en USB"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Buscando datos de vCard en la tarjeta SD"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Error al analizar USB"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Error al buscar en la tarjeta SD"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Error al analizar USB (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Error al buscar en la tarjeta SD (motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Error de E/S"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"No se ha podido analizar el archivo de vCard debido a un error inesperado."</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"No se ha podido analizar el archivo de vCard (a pesar de que su formato parece ser válido) porque no es compatible con la implementación actual."</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"No se ha encontrado ningún archivo de vCard en la tarjeta SD."</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"No se ha encontrado el archivo de vCard en el almacenamiento USB."</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"No se ha encontrado ningún archivo de vCard en la tarjeta SD."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"No ha sido posible importar uno o varios archivos (%s)."</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Error desconocido"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"Seleccionar archivo de vCard"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Error al exportar los datos del contacto"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Se ha producido un error al exportar los datos del contacto."\n"Motivo del error: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"No hay contactos que exportar."</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"Hay demasiados archivos de vCard en la tarjeta SD."</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Hay demasiados archivos de vCard en el almacenamiento USB."</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Hay demasiados archivos de vCard en la tarjeta SD."</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"El nombre de archivo necesario es demasiado largo (\"<xliff:g id="FILENAME">%s</xliff:g>\")."</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exportando datos de contacto"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Exportando datos de contacto a \"<xliff:g id="FILE_NAME">%s</xliff:g>\"..."</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"Todos los demás contactos"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Todos los contactos"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Si eliminas \"<xliff:g id="GROUP">%s</xliff:g>\" de la sincronización, también se eliminarán todos los contactos no agrupados."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Solo en el teléfono (no sincronizado)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Solo en el teléfono, no sincronizado"</string>
     <string name="call_custom" msgid="7756571794763171802">"Llamar a <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"Llamar a casa"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Llamar al móvil"</string>
@@ -325,9 +336,9 @@
     <string name="email_home" msgid="8573740658148184279">"Enviar email a casa"</string>
     <string name="email_mobile" msgid="2042889209787989814">"Enviar email al móvil"</string>
     <string name="email_work" msgid="2807430017302722689">"Enviar email a trabajo"</string>
-    <string name="email_other" msgid="3454004077967657109">"Enviar correo electrónico"</string>
+    <string name="email_other" msgid="3454004077967657109">"Enviar email"</string>
     <string name="email_custom" msgid="7548003991586214105">"Correo electrónico <xliff:g id="CUSTOM">%s</xliff:g>"</string>
-    <string name="email" msgid="5668400997660065897">"Correo electrónico"</string>
+    <string name="email" msgid="5668400997660065897">"Email"</string>
     <string name="map_home" msgid="1243547733423343982">"Ver dirección de casa"</string>
     <string name="map_work" msgid="1360474076921878088">"Ver dirección del trabajo"</string>
     <string name="map_other" msgid="3817820803587012641">"Ver dirección"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index aed36e1..5cef560 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Applications de base Android"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contacts"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Téléphone"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contact"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"Nouveau contact"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Prononciation phonétique"</string>
     <string name="label_notes" msgid="8337354953278341042">"Notes"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Appel VoIP"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Sonnerie"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"Nom et prénom"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Nom phonétique"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"photo du contact"</string>
     <string name="description_minus_button" msgid="387136707700230172">"moins"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"Aucune carte SD trouvée"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"Aucune carte SD n\'a été détectée."</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Mémoire de stockage USB indisponible"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Aucune carte SD trouvée"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Mémoire de stockage USB non détectée"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Aucune carte SD n\'a été détectée."</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Recherche des données VCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importer à partir de la carte SIM"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Importer à partir de la carte SD"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"Exporter vers la carte SD"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importer depuis mémoire USB"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importer à partir de la carte SD"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exporter vers mémoire USB"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exporter vers la carte SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Partager les contacts visibles"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importer un fichier vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importer plusieurs fichiers vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importer tous les fichiers vCard"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Recherche de données VCard sur la carte SD"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Échec de l\'analyse de la carte SD"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Échec de l\'analyse de la carte SD (Raison : \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Recherche de données VCard sur la mémoire de stockage USB"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Recherche de données VCard sur la carte SD"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Impossible d\'analyser la mémoire de stockage USB"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Échec de l\'analyse de la carte SD"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Impossible d\'analyser la mémoire de stockage USB (Raison : \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Échec de l\'analyse de la carte SD (Raison : \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Erreur d\'E/S"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Échec de l\'analyse des données VCard pour une raison inattendue"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Échec de l\'analyse des données VCard. Le format semble valide, mais l\'implémentation actuelle ne le prend pas en charge."</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Aucun fichier VCard n\'a été trouvé sur la carte SD."</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"Aucun fichier VCard n\'a été trouvé sur la mémoire de stockage USB."</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"Aucun fichier VCard n\'a été trouvé sur la carte SD."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Échec de l\'importation d\'un ou de plusieurs fichiers (%s)"</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Erreur inconnue"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"Sélectionner un fichier VCard"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Échec lors de l\'exportation des données du contact"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Échec lors de l\'exportation des données du contact."\n"Motif : \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Aucun contact exportable"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"La carte SD contient trop de fichiers VCard."</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"La mémoire de stockage USB contient trop de fichiers VCard."</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"La carte SD contient trop de fichiers VCard."</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Le nom de fichier requis est trop long (\"<xliff:g id="FILENAME">%s</xliff:g>\")."</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exportation des données des contacts"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Exportation des données des contacts vers \"<xliff:g id="FILE_NAME">%s</xliff:g>\""</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"Tous les autres contacts"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Tous les contacts"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Le retrait du groupe \"<xliff:g id="GROUP">%s</xliff:g>\" de la synchronisation entraîne également la suppression de tous les contacts non groupés de la synchronisation."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Téléphone uniquement (sans synchronisation)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Téléphone uniquement, sans synchronisation"</string>
     <string name="call_custom" msgid="7756571794763171802">"Appeler <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"Appeler domicile"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Appeler mobile"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 791d23e..d541876 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contatti"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefono"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contatto"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"Nuovo contatto"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Fonetica"</string>
     <string name="label_notes" msgid="8337354953278341042">"Note"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Chiamata Internet"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Suoneria"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"Nome e cognome"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Nome fonetico"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"foto contatto"</string>
     <string name="description_minus_button" msgid="387136707700230172">"meno"</string>
     <string name="description_plus_button" msgid="515164827856229880">"più"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"Nessuna scheda SD"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"Nessuna scheda SD rilevata"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Archivio USB non disponibile"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Nessuna scheda SD"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Nessun archivio USB rilevato"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Nessuna scheda SD rilevata"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Ricerca vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importa da scheda SIM"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Importa da scheda SD"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"Esporta su scheda SD"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importa da archivio USB"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importa da scheda SD"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Esporta in archivio USB"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Esporta su scheda SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Condividi contatti visibili"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importa un file vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importa più file vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importa tutti i file vCard"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Ricerca dati vCard su scheda SD"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Analisi scheda SD non riuscita"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Analisi scheda SD non riuscita (motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Ricerca di dati vCard nell\'archivio USB"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Ricerca dati vCard su scheda SD"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Scansione dell\'archivio USB non riuscita"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Analisi scheda SD non riuscita"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Scansione dell\'archivio USB non riuscita (motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Analisi scheda SD non riuscita (motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Errore I/O"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Impossibile analizzare la vCard per motivi imprevisti"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Impossibile analizzare la vCard nonostante sembri avere un formato valido perché l\'implementazione corrente non la supporta"</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Nessun file vCard trovato sulla scheda SD"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"Nessun file vCard trovato nell\'archivio USB"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"Nessun file vCard trovato sulla scheda SD"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Impossibile importare uno o più file (%s)."</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Errore sconosciuto"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"Seleziona file vCard"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Esportazione dati contatti non riuscita"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Esportazione dati contatti non riuscita."\n"Motivo dell\'errore: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Nessun contatto esportabile"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"Troppi dati vCard sulla scheda SD"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Troppi file vCard nell\'archivio USB"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Troppi dati vCard sulla scheda SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Il nome file richiesto è troppo lungo (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Esportazione dati di contatto"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Esportazione dati di contatto in \"<xliff:g id="FILE_NAME">%s</xliff:g>\""</string>
@@ -279,12 +290,12 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"Tutti gli altri contatti"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Tutti i contatti"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Se rimuovi \"<xliff:g id="GROUP">%s</xliff:g>\" dalla sincronizzazione, verranno rimossi anche tutti i contatti separati."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Solo su telefono (non sincronizzato)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Solo su telefono, non sincronizzato"</string>
     <string name="call_custom" msgid="7756571794763171802">"Chiama n. <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"Chiama casa"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Chiama cellulare"</string>
-    <string name="call_work" msgid="5328785911463744028">"Chiama ufficio"</string>
-    <string name="call_fax_work" msgid="7467763592359059243">"Chiama fax ufficio"</string>
+    <string name="call_work" msgid="5328785911463744028">"Chiama n. lavoro"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Chiama fax lavoro"</string>
     <string name="call_fax_home" msgid="8342175628887571876">"Chiama n. fax casa"</string>
     <string name="call_pager" msgid="9003902812293983281">"Chiama cercapersone"</string>
     <string name="call_other" msgid="8563753966926932052">"Chiama"</string>
@@ -298,14 +309,14 @@
     <string name="call_telex" msgid="2223170774548648114">"Chiama telex"</string>
     <string name="call_tty_tdd" msgid="8951266948204379604">"Chiama n. TTY/TDD"</string>
     <string name="call_work_mobile" msgid="8707874281430105394">"Chiama cellulare lavoro"</string>
-    <string name="call_work_pager" msgid="3419348514157949008">"Chiama cercapersone ufficio"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Chiama cercapersone lavoro"</string>
     <string name="call_assistant" msgid="2141641383068514308">"Chiama <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
     <string name="call_mms" msgid="6274041545876221437">"Chiama n. MMS"</string>
     <string name="sms_custom" msgid="5932736853732191825">"Invia SMS a n. <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="sms_home" msgid="7524332261493162995">"Invia SMS a n. casa"</string>
     <string name="sms_mobile" msgid="5200107250451030769">"Invia SMS a cellulare"</string>
-    <string name="sms_work" msgid="2269624156655267740">"Invia SMS a ufficio"</string>
-    <string name="sms_fax_work" msgid="8028189067816907075">"Invia SMS a fax ufficio"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Invia SMS a n. lavoro"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Invia SMS a fax lavoro"</string>
     <string name="sms_fax_home" msgid="9204042076306809634">"Invia SMS a n. fax casa"</string>
     <string name="sms_pager" msgid="7730404569637015192">"Invia SMS a n. cercapersone"</string>
     <string name="sms_other" msgid="806127844607642331">"Invia SMS a n."</string>
@@ -319,17 +330,17 @@
     <string name="sms_telex" msgid="9034802430065267848">"Invia SMS a n. telex"</string>
     <string name="sms_tty_tdd" msgid="6782284969132531532">"Invia SMS a n. TTY/TDD"</string>
     <string name="sms_work_mobile" msgid="2459939960512702560">"Invia SMS a cellulare lavoro"</string>
-    <string name="sms_work_pager" msgid="5566924423316960597">"Invia SMS a cercapersone ufficio"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"SMS a cercapersone lavoro"</string>
     <string name="sms_assistant" msgid="2773424339923116234">"Invia testo a <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
     <string name="sms_mms" msgid="4069352461380762677">"Invia SMS a n. MMS"</string>
     <string name="email_home" msgid="8573740658148184279">"Invia email a ind. casa"</string>
     <string name="email_mobile" msgid="2042889209787989814">"Invia email a ind. cellulare"</string>
-    <string name="email_work" msgid="2807430017302722689">"Invia email a ind. ufficio"</string>
+    <string name="email_work" msgid="2807430017302722689">"Invia email a ind. lavoro"</string>
     <string name="email_other" msgid="3454004077967657109">"Invia email"</string>
     <string name="email_custom" msgid="7548003991586214105">"Invia email a ind. <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="email" msgid="5668400997660065897">"Email"</string>
     <string name="map_home" msgid="1243547733423343982">"Visualizza indirizzo casa"</string>
-    <string name="map_work" msgid="1360474076921878088">"Visualizza indirizzo ufficio"</string>
+    <string name="map_work" msgid="1360474076921878088">"Visualizza indirizzo lavoro"</string>
     <string name="map_other" msgid="3817820803587012641">"Visualizza indirizzo"</string>
     <string name="map_custom" msgid="6184363799976265281">"Visualizza indirizzo <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="chat_aim" msgid="2588492205291249142">"Chatta su AIM"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 957aefb..35f9d70 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="contactsList" msgid="8661624236494819731">"連絡先"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"電話"</string>
     <string name="shortcutContact" msgid="749243779392912958">"連絡先"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"連絡先を新規登録"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"読み"</string>
     <string name="label_notes" msgid="8337354953278341042">"メモ"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"インターネット通話"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"着信音"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"名前"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"よみがな"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"連絡先の写真"</string>
     <string name="description_minus_button" msgid="387136707700230172">"マイナス"</string>
     <string name="description_plus_button" msgid="515164827856229880">"プラス"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"SDカードがありません"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"SDカードを検出できませんでした"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USBストレージ使用不可"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"SDカードがありません"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"USBストレージがありません"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"SDカードを検出できませんでした"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"vCardを検索中"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"SIMカードからインポート"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"SDカードからインポート"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"SDカードにエクスポート"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"USBストレージからインポート"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"SDカードからインポート"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"USBストレージにエクスポート"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"SDカードにエクスポート"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"表示可能な連絡先を共有"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"vCardファイルを1つインポート"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"複数のvCardファイルをインポート"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"すべてのvCardファイルをインポート"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"SDカードのvCardデータを検索しています"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"SDカードのスキャンに失敗しました"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"SDカードのスキャンに失敗しました(理由: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"USBストレージ内でvCardデータを検索中"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"SDカードのvCardデータを検索しています"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"USBストレージのスキャンエラー"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"SDカードのスキャンに失敗しました"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"USBストレージをスキャンできませんでした(理由: 「<xliff:g id="FAIL_REASON">%s</xliff:g>」)"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"SDカードのスキャンに失敗しました(理由: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"送受信エラー"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"予期しない理由によりvCardの解析に失敗しました"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"vCardの解析に失敗しました。正しいフォーマットですが、現在サポートされていません。"</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"SDカードでvCardファイルが見つかりません"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"USBストレージ内にvCardファイルが見つかりません"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"SDカードでvCardファイルが見つかりません"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"1つ以上のファイルをインポートできませんでした(%s)。"</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"不明なエラー"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"vCardファイルの選択"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"連絡先データのエクスポートに失敗しました"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"連絡先データのエクスポートに失敗しました。"\n"理由: 「<xliff:g id="FAIL_REASON">%s</xliff:g>」"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"エクスポートできる連絡先がありません"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"SDカードのvCardファイルが多すぎます"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"USBストレージ内のvCardファイルが多すぎます"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"SDカードのvCardファイルが多すぎます"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"指定したファイル名が長すぎます(「<xliff:g id="FILENAME">%s</xliff:g>」)"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"連絡先データのエクスポート"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"連絡先データを\"<xliff:g id="FILE_NAME">%s</xliff:g>\"にエクスポートしています"</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"その他の連絡先"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"すべての連絡先"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"「<xliff:g id="GROUP">%s</xliff:g>」を同期から除外すると、グループに含まれない連絡先もすべて同期から除外されます。"</string>
-    <string name="account_phone" msgid="4025734638492419713">"電話のみ(非同期)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"電話のみ(非同期)"</string>
     <string name="call_custom" msgid="7756571794763171802">"<xliff:g id="CUSTOM">%s</xliff:g>に発信"</string>
     <string name="call_home" msgid="1990519474420545392">"自宅に発信"</string>
     <string name="call_mobile" msgid="7502236805487609178">"携帯電話に発信"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index a9802b8..7b6bbbd 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core 애플리케이션"</string>
     <string name="contactsList" msgid="8661624236494819731">"주소록"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"휴대전화"</string>
     <string name="shortcutContact" msgid="749243779392912958">"연락처"</string>
@@ -46,13 +47,13 @@
     <string name="menu_viewAddress" msgid="1814744325763202024">"지도상의 주소"</string>
     <string name="menu_makeDefaultNumber" msgid="4838759253316649534">"기본 번호로 설정"</string>
     <string name="menu_makeDefaultEmail" msgid="2599044610375789994">"기본 이메일로 설정"</string>
-    <string name="menu_splitAggregate" msgid="8368636463748691868">"분할"</string>
+    <string name="menu_splitAggregate" msgid="8368636463748691868">"분리"</string>
     <string name="contactsSplitMessage" msgid="5253490235863170269">"연락처가 분할되었습니다."</string>
-    <string name="splitConfirmation_title" msgid="6716467920283502570">"연락처 분할"</string>
-    <string name="splitConfirmation" msgid="1150797297503944823">"연락처 하나를 여러 주소록으로 분할하시겠습니까? 가입된 연락처 정보 세트마다 하나씩 만드시겠습니까?"</string>
-    <string name="menu_joinAggregate" msgid="5027981918265667970">"결합"</string>
-    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"연락처 결합"</string>
-    <string name="blurbJoinContactDataWith" msgid="995870557595050304">"<xliff:g id="NAME">%s</xliff:g>와(과) 결합할 연락처를 선택하세요."</string>
+    <string name="splitConfirmation_title" msgid="6716467920283502570">"연락처 분리"</string>
+    <string name="splitConfirmation" msgid="1150797297503944823">"연락처 하나를 여러 주소록으로 분리하시겠습니까? 가입된 연락처 정보 세트마다 하나씩 만드시겠습니까?"</string>
+    <string name="menu_joinAggregate" msgid="5027981918265667970">"통합"</string>
+    <string name="titleJoinContactDataWith" msgid="7684875775798635354">"연락처 통합"</string>
+    <string name="blurbJoinContactDataWith" msgid="995870557595050304">"<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>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"새 연락처"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"소리나는 대로"</string>
     <string name="label_notes" msgid="8337354953278341042">"메모"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"인터넷 통화"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"벨소리"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"이름"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"이름(소리나는 대로)"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"주소록 사진"</string>
     <string name="description_minus_button" msgid="387136707700230172">"빼기"</string>
     <string name="description_plus_button" msgid="515164827856229880">"더하기"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"SD 카드 없음"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"SD 카드가 발견되지 않았습니다."</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB 저장소 사용 불가능"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"SD 카드 없음"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"USB 저장소가 없습니다."</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"SD 카드가 발견되지 않았습니다."</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"vCard 검색"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"SIM 카드에서 가져오기"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"SD 카드에서 가져오기"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"SD 카드로 내보내기"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"USB 저장소에서 가져오기"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"SD 카드에서 가져오기"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"USB 저장소로 내보내기"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"SD 카드로 내보내기"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"표시되는 연락처 공유"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"vCard 파일 한 개 가져오기"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"vCard 파일 여러 개 가져오기"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"모든 vCard 파일 가져오기"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"SD 카드의 vCard 데이터 검색"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"SD 카드 스캔 실패"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"SD 카드 스캔 실패(이유: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\')"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"USB 저장소에서 vCard 데이터 검색"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"SD 카드의 vCard 데이터 검색"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"USB 저장소 스캔 실패"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"SD 카드 스캔 실패"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"USB 저장소 스캔 실패(이유: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\')"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"SD 카드 스캔 실패(이유: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\')"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O 오류"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"예기치 못한 이유로 인해 vCard를 구문분석하지 못했습니다."</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"올바른 형식처럼 보이지만 현재 구현 환경에서는 VCard를 지원하지 않기 때문에 VCard 구문 분석에 실패했습니다."</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"SD 카드에 VCard 파일이 없습니다."</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"vCard 파일이 USB 저장소에 없습니다."</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"SD 카드에 VCard 파일이 없습니다."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"하나 이상의 파일을 가져오지 못했습니다(%s)."</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"알 수 없는 오류"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"vCard 파일 선택"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"연락처 데이터를 내보내지 못했습니다."</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"연락처 데이터를 내보내지 못했습니다."\n"실패 이유: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\'"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"내보낼 수 있는 연락처가 없습니다."</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"SD 카드에 vCard 파일이 너무 많습니다."</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"USB 저장소에 vCard 파일이 너무 많습니다."</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"SD 카드에 vCard 파일이 너무 많습니다."</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"필수 파일 이름이 너무 깁니다(\'<xliff:g id="FILENAME">%s</xliff:g>\')."</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"연락처 데이터 내보내기"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"연락처 데이터를 \'<xliff:g id="FILE_NAME">%s</xliff:g>\'(으)로 내보내는 중"</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"다른 모든 연락처"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"모든 연락처"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"\'<xliff:g id="GROUP">%s</xliff:g>\'을(를) 동기화에서 제거하면 그룹화되지 않은 연락처도 동기화에서 제거됩니다."</string>
-    <string name="account_phone" msgid="4025734638492419713">"전화기 전용(동기화되지 않음)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"휴대전화 전용(동기화되지 않음)"</string>
     <string name="call_custom" msgid="7756571794763171802">"<xliff:g id="CUSTOM">%s</xliff:g>(으)로 전화걸기"</string>
     <string name="call_home" msgid="1990519474420545392">"집으로 전화걸기"</string>
     <string name="call_mobile" msgid="7502236805487609178">"휴대전화로 전화걸기"</string>
@@ -350,7 +361,7 @@
     <string name="postal_country" msgid="7638264508416368690">"국가"</string>
     <string name="name_given" msgid="1687286314106019813">"이름"</string>
     <string name="name_family" msgid="3416695586119999058">"성"</string>
-    <string name="name_prefix" msgid="59756378548779822">"이름 접두어"</string>
+    <string name="name_prefix" msgid="59756378548779822">"경칭"</string>
     <string name="name_middle" msgid="8467433655992690326">"중간 이름"</string>
     <string name="name_suffix" msgid="3855278445375651441">"이름 접미어"</string>
     <string name="name_phonetic_given" msgid="6853570431394449191">"이름(소리나는 대로)"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 73d2e19..86709a2 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Kjerneprogrammer for Android"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakter"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"Ny kontakt"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Fonetisk"</string>
     <string name="label_notes" msgid="8337354953278341042">"Notater"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Internett-anrop"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Ringetone"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"For- og etternavn"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Fonetisk navn"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"kontaktens bilde"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minusknapp"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plussknapp"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"Mangler minnekort"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"Fant ikke noe minnekort"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB-lagring utilgj."</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Mangler minnekort"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Finner ikke USB-lagring"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Fant ikke noe minnekort"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Leter etter VCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importér fra SIM-kort"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Importér fra minnekort"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"Eksportér til minnekort"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importér fra USB-lagr."</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importér fra minnekort"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Eksportér til USB-lagr."</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Eksportér til minnekort"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Del synlige kontakter"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importer én VCard-fil"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importer flere vCard-filer"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importer alle vCard-filer"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Leter etter VCard-data på minnekort"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Kunne ikke scanne minnekort"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Kunne ikke skanne minnekort (grunn: «<xliff:g id="FAIL_REASON">%s</xliff:g>»)"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Søker etter vCard-data i USB-lagring"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Leter etter VCard-data på minnekort"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Skanning av USB-lagring mislyktes"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Kunne ikke scanne minnekort"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Skanning av USB-lagring mislyktes (årsak: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Kunne ikke skanne minnekort (grunn: «<xliff:g id="FAIL_REASON">%s</xliff:g>»)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Inn/ut-feil (årsak: «FAIL_REASON»)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Kan ikke analysere VCard av uventet årsak"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Kan ikke analysere VCard selv om det ser ut til å være i riktig format, fordi den aktuelle implementeringen ikke støtter det."</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Fant ingen VCard-filer på minnekortet"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"Finner ingen vCard-filer i USB-lagring"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"Fant ingen VCard-filer på minnekortet"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Importeringen av én eller flere filer mislyktes (%s)"</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Ukjent feil"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"Velg VCard-fil"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Kunne ikke eksportere kontaktlisten"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Eksport av kontaktdata mislyktes"\n"Årsak til feil: «<xliff:g id="FAIL_REASON">%s</xliff:g>»"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Det finnes ingen eksporterbar kontakt."</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"For mange VCard-datafiler på minnekortet"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"For mange vCard-filer på USB-lagring"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"For mange VCard-datafiler på minnekortet"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"For langt filnavn kreves («<xliff:g id="FILENAME">%s</xliff:g>»)"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Eksporterer kontaktdata"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Eksporterer kontaktdata til «<xliff:g id="FILE_NAME">%s</xliff:g>»"</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"(Ugrupperte kontakter)"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Alle kontakter"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Hvis «<xliff:g id="GROUP">%s</xliff:g>» fjernes·fra synkroniseringen, vil også alle ugrupperte kontakter fjernes fra synkroniseringen."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Kun telefon (usynkronisert)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Kun telefon (usynkronisert)"</string>
     <string name="call_custom" msgid="7756571794763171802">"Ring <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"Ring (privat)"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Ring mobil"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 22214fa..33ea0a5 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Android-kerntoepassingen"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contacten"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefoon"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contacten"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"Nieuw contact"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Fonetisch"</string>
     <string name="label_notes" msgid="8337354953278341042">"Opmerkingen"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Internetoproep"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Beltoon"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"Voor- en achternaam"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Fonetisch gespelde naam"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"contactfoto"</string>
     <string name="description_minus_button" msgid="387136707700230172">"min"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"Geen SD-kaart"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"Geen SD-kaart gedetecteerd"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB-opslag niet beschikb."</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Geen SD-kaart"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Geen USB-opslag gevonden"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Geen SD-kaart gedetecteerd"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Zoeken naar vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importeren van SIM-kaart"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Importeren van SD-kaart"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"Exporteren naar SD-kaart"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Import. uit USB-opslag"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importeren van SD-kaart"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Export. naar USB-opslag"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exporteren naar SD-kaart"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Zichtbare contacten delen"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Eén vCard-bestand importeren"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Meerdere vCard-bestanden importeren"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Alle vCard-bestanden importeren"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Zoeken naar vCard-gegevens op SD-kaart"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Scannen van SD-kaart is mislukt"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Scannen van SD-kaart is mislukt: (Reden: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\')"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Zoeken naar vCard-gegevens in USB-opslag"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Zoeken naar vCard-gegevens op SD-kaart"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Scannen van USB-opslag is mislukt"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Scannen van SD-kaart is mislukt"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Scannen van USB-opslag is mislukt (reden: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\')"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Scannen van SD-kaart is mislukt: (Reden: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\')"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O-fout"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Parseren van vCard is mislukt om onbekende reden"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Kan vCard niet parseren, ook al lijkt de indeling geldig. vCard wordt niet ondersteund door de huidige implementatie"</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Geen vCard-bestand gevonden op SD-kaart"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"Geen vCard-bestand gevonden in USB-opslag"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"Geen vCard-bestand gevonden op SD-kaart"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Een of meer bestanden kunnen niet worden geïmporteerd (%s)"</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Onbekende fout"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"vCard-bestand selecteren"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Exporteren van contactgegevens mislukt"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Exporteren van contactgegevens mislukt."\n"Reden voor de fout: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\'"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Er is geen contact dat geëxporteerd kan worden"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"Te veel vCard-gegevens op de SD-kaart"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Te veel vCard-bestanden in de USB-opslag"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Te veel vCard-gegevens op de SD-kaart"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Vereiste bestandsnaam is te lang (\'<xliff:g id="FILENAME">%s</xliff:g>\')"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Contactgegevens exporteren"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Contactgegevens exporteren naar \'<xliff:g id="FILE_NAME">%s</xliff:g>\'"</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"Alle andere contacten"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Alle contacten"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Als u \'<xliff:g id="GROUP">%s</xliff:g>\' verwijdert uit de synchronisatie, worden ook contacten die niet bij een groep horen uit de synchronisatie verwijderd."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Alleen voor telefoon (niet gesynchroniseerd)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Alleen voor telefoon, niet gesynchroniseerd"</string>
     <string name="call_custom" msgid="7756571794763171802">"<xliff:g id="CUSTOM">%s</xliff:g> bellen"</string>
     <string name="call_home" msgid="1990519474420545392">"Bellen naar huis"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Bellen naar mobiel"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index aa050dd..399db0f 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Aplikacje główne systemu Android"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakty"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"Nowy kontakt"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Fonetycznie"</string>
     <string name="label_notes" msgid="8337354953278341042">"Notatki"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Rozmowa internetowa"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Dzwonek"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"Imię i nazwisko"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Nazwisko (fonetycznie)"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"zdjęcie kontaktu"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"Brak karty SD"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"Nie wykryto karty SD"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Nośnik USB niedostępny"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Brak karty SD"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Nie wykryto nośnika USB"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Nie wykryto karty SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Wyszukiwanie danych vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importuj z karty SIM"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Importuj z karty SD"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"Eksportuj na kartę SD"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importuj z nośnika USB"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importuj z karty SD"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Eksportuj na nośnik USB"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Eksportuj na kartę SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Udostępnij widoczne kontakty"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importuj jeden plik vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importuj wiele plików vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importuj wszystkie pliki vCard"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Wyszukiwanie danych vCard na karcie SD"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Skanowanie karty SD nie powiodło się"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Skanowanie karty SD nie powiodło się (przyczyna: „<xliff:g id="FAIL_REASON">%s</xliff:g>”)"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Wyszukiwanie danych vCard na nośniku USB"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Wyszukiwanie danych vCard na karcie SD"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Skanowanie nośnika USB nie powiodło się"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Skanowanie karty SD nie powiodło się"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Skanowanie nośnika USB nie powiodło się (przyczyna: „<xliff:g id="FAIL_REASON">%s</xliff:g>”)"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Skanowanie karty SD nie powiodło się (przyczyna: „<xliff:g id="FAIL_REASON">%s</xliff:g>”)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Błąd wejścia/wyjścia"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Nie można zanalizować pliku vCard z nieoczekiwanego powodu"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Nie można zanalizować pliku vCard, mimo że prawdopodobnie ma on prawidłowy format. Bieżąca wersja go nie obsługuje."</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Na karcie SD nie znaleziono żadnego pliku vCard"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"Na nośniku USB nie znaleziono pliku vCard"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"Na karcie SD nie znaleziono żadnego pliku vCard"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Nie można zaimportować co najmniej jednego pliku (%s)."</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Nieznany błąd"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"Wybierz plik vCard"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Nie można wyeksportować danych kontaktu"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Nie można wyeksportować danych kontaktu."\n"Przyczyna niepowodzenia: „<xliff:g id="FAIL_REASON">%s</xliff:g>”."</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Brak kontaktów, które można wyeksportować"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"Zbyt dużo plików vCard na karcie SD"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Zbyt wiele plików vCard na nośniku USB"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Zbyt dużo plików vCard na karcie SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Wymagana nazwa pliku jest zbyt długa („<xliff:g id="FILENAME">%s</xliff:g>”)"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Eksportowanie danych kontaktowych"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Eksportowanie danych kontaktowych do pliku „<xliff:g id="FILE_NAME">%s</xliff:g>”"</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"Wszystkie inne kontakty"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Wszystkie kontakty"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Usunięcie grupy „<xliff:g id="GROUP">%s</xliff:g>” z ustawień synchronizacji spowoduje również usunięcie wszelkich rozgrupowanych kontaktów z tych ustawień."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Tylko telefon (brak synchronizacji)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Tylko telefon, brak synchronizacji"</string>
     <string name="call_custom" msgid="7756571794763171802">"Połącz – <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"Połącz – domowy"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Połącz – komórka"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 8a2d0a8..ec651e3 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Aplicações Principais do Android"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contactos"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefone"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contacto"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"Novo contacto"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Fonético"</string>
     <string name="label_notes" msgid="8337354953278341042">"Notas"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Chamada por internet"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Toque"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"Primeiro e último"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Nome fonético"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"fotografia do contacto"</string>
     <string name="description_minus_button" msgid="387136707700230172">"menos"</string>
     <string name="description_plus_button" msgid="515164827856229880">"mais"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"Nenhum cartão SD"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"Não foi detectado nenhum cartão SD"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Armaz. USB não disponível"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Nenhum cartão SD"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Armaz. USB não detectado"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Não foi detectado nenhum cartão SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"A procurar vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importar do cartão SIM"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Importar do cartão SD"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"Exportar para cartão SD"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importar do armaz. USB"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importar do cartão SD"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exportar para armaz. USB"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportar para cartão SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Partilhar contactos visíveis"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importar um ficheiro VCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importar vários ficheiros vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importar todos os ficheiros VCard"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Procurar dados do vCard no cartão SD"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Falha na análise do cartão SD"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Falha na análise do cartão SD (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"A pesquisar dados do vCard no armazenamento USB"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Procurar dados do vCard no cartão SD"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Falha ao analisar armazenamento USB"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Falha na análise do cartão SD"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Falha ao analisar armazenamento USB (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Falha na análise do cartão SD (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Erro de E/S"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Falha na análise do vCard por motivo inesperado"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Falha na análise do vCard embora o formato pareça válido, uma vez que não é suportado pela implementação actual"</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Não foi encontrado nenhum ficheiro vCard no cartão SD"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"Não foi encontrado nenhum ficheiro vCard no armazenamento USB"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"Não foi encontrado nenhum ficheiro vCard no cartão SD"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"A importação de um ou vários ficheiros falhou (%s)."</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Erro desconhecido"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"Seleccionar ficheiro vCard"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Falha ao exportar dados de contacto"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Falha na exportação de dados de contacto."\n"Motivo da falha: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Não existe um contacto exportável"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"Demasiados ficheiros vCard no cartão SD"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Existem demasiados ficheiros vCard no armazenamento USB"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Demasiados ficheiros vCard no cartão SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Nome de ficheiro demasiado longo (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exportar dados do contacto"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Exportar dados do contacto para \"<xliff:g id="FILE_NAME">%s</xliff:g>\""</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"Todos os outros contactos"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Todos os contactos"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Ao remover \"<xliff:g id="GROUP">%s</xliff:g>\" da sincronização, removerá também quaisquer contactos não agrupados."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Apenas telefone (não sincronizado)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Apenas telemóvel, não sincronizado"</string>
     <string name="call_custom" msgid="7756571794763171802">"Ligar para <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"Ligar para residência"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Ligar para telemóvel"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index e53f68e..31c6745 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Principais aplicativos do Android"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contatos"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefone"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contato"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"Novo contato"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Fonética"</string>
     <string name="label_notes" msgid="8337354953278341042">"Observações"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Chamada da internet"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Toque"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"Nome e sobrenome"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Nome fonético"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"foto do contato"</string>
     <string name="description_minus_button" msgid="387136707700230172">"menos"</string>
     <string name="description_plus_button" msgid="515164827856229880">"mais"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"Nenhum cartão SD"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"Nenhum cartão SD detectado"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Armaz. USB não disponível"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Nenhum cartão SD"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Nenhum armaz. USB detectado"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Nenhum cartão SD detectado"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Pesquisando vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importar do cartão SIM"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Importar do cartão SD"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"Exportar para cartão SD"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importar do armaz. USB"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importar do cartão SD"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exportar para armaz. USB"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportar para cartão SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Compartilhar contatos visíveis"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importar um arquivo do vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importar vários arquivos do vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importar todos os arquivos do vCard"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Procurando dados do vCard no cartão SD"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Falha na verificação do cartão SD"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Falha na verificação do cartão SD (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Procurando dados do vCard no armazenamento USB"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Procurando dados do vCard no cartão SD"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Falha na verificação do armazenamento USB"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Falha na verificação do cartão SD"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Falha na verificação do armazenamento USB (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Falha na verificação do cartão SD (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Erro E/S"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Falha ao analisar o vCard por razão inesperada"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Falha ao analisar o vCard. Embora o formato pareça ser válido, a implementação atual não oferece suporte a ele."</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Nenhum arquivo de vCard encontrado no cartão SD"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"Nenhum arquivo de vCard encontrado no armazenamento USB"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"Nenhum arquivo de vCard encontrado no cartão SD"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Falha na importação de um ou mais arquivos (%s)."</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Erro desconhecido"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"Selecionar arquivo do vCard"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Falha ao exportar dados do contato"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Falha ao exportar dados dos contatos."\n"Motivo da falha: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Não há contatos exportáveis"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"Muitos arquivos do vCard no cartão SD"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Muitos arquivos do vCard no armazenamento USB"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Muitos arquivos do vCard no cartão SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"O nome de arquivo exigido é muito longo (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exportando dados do contato"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Exportando dados do contato para \"<xliff:g id="FILE_NAME">%s</xliff:g>\""</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"Todos os outros contatos"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Todos os contatos"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"A remoção de \'<xliff:g id="GROUP">%s</xliff:g>\' da sincronização também removerá todos os contatos não agrupados da sincronização."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Somente telefone (não sincronizado)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Somente telefone, não sincronizado"</string>
     <string name="call_custom" msgid="7756571794763171802">"Chamar <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"Chamar residência"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Chamar celular"</string>
@@ -367,7 +378,7 @@
     <string name="display_options_view_names_as" msgid="18022868169627979">"Visualizar nomes de contato como"</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="search_bar_hint" msgid="1012756309632856553">"Pesquisar contatos "</string>
+    <string name="search_bar_hint" msgid="1012756309632856553">"Pesquisar contatos"</string>
     <string name="search_for_all_contacts" msgid="6644963335787294131">"Pesquisar em todos os contatos"</string>
     <string name="take_photo" msgid="7496128293167402354">"Tirar foto"</string>
     <string name="pick_photo" msgid="448886509158039462">"Selecionar foto da Galeria"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 121c25a..466c586 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Основные приложения Android"</string>
     <string name="contactsList" msgid="8661624236494819731">"Контакты"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Телефон"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Контакт"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"Новый контакт"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Произношение"</string>
     <string name="label_notes" msgid="8337354953278341042">"Примечания"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Интернет-вызов"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Мелодия"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"Имя и фамилия"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Произношение имени"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"фотография контакта"</string>
     <string name="description_minus_button" msgid="387136707700230172">"минус"</string>
     <string name="description_plus_button" msgid="515164827856229880">"плюс"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"Нет SD-карты"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"SD-карта не обнаружена"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB-накопитель недоступен"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Нет SD-карты"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"USB-накопитель не найден"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"SD-карта не обнаружена"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Поиск vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Импортировать с SIM-карты"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Импортировать с SD-карты"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"Экспортировать на SD-карту"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Импорт с USB-накопителя"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Импортировать с SD-карты"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Экспорт на USB-накопитель"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Экспортировать на SD-карту"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Передать видимые контакты"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Импорт одного файла VCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Импорт нескольких файлов vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Импорт всех файлов VCard"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Поиск данных vCard на SD-карте"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Не удалось сканировать SD-карту."</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Не удалось просканировать SD-карту (причина: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Поиск данных vCard на USB-накопителе"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Поиск данных vCard на SD-карте"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Не удалось просканировать USB-накопитель"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Не удалось сканировать SD-карту."</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Не удалось просканировать USB-накопитель (<xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Не удалось просканировать SD-карту (причина: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Ошибка ввода-вывода"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Не удалось обработать vCard по неизвестной причине."</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Не удалось обработать vCard. Файл правильного формата, но не поддерживается в текущей реализации."</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"На SD-карте не найдены файлы VCard"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"На USB-накопителе отсутствуют файлы vCard"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"На SD-карте не найдены файлы VCard"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Не удалось импортировать один или несколько файлов (%s)."</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Неизвестная ошибка"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"Выберите файл vCard"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Не удалось экспортировать данные контакта."</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Не удалось экспортировать данные контакта."\n"Причина: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Нет контактов, которые можно экспортировать."</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"Слишком много файлов VCard на SD-карте."</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Слишком много файлов vCard на USB-накопителе"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Слишком много файлов VCard на SD-карте."</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Название файла слишком длинное (<xliff:g id="FILENAME">%s</xliff:g>)."</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Экспорт данных контакта"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Экспорт данных контакта в \"<xliff:g id="FILE_NAME">%s</xliff:g>\""</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"Остальные контакты"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Все контакты"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Удаление группы \"<xliff:g id="GROUP">%s</xliff:g>\" из синхронизации приведет к удалению любых несгруппированных контактов из синхронизации."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Только телефон (несинхронизирован)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Только телефон, без синхронизации"</string>
     <string name="call_custom" msgid="7756571794763171802">"Позвонить (<xliff:g id="CUSTOM">%s</xliff:g>)"</string>
     <string name="call_home" msgid="1990519474420545392">"Домашний тел."</string>
     <string name="call_mobile" msgid="7502236805487609178">"Мобильный тел."</string>
@@ -350,9 +361,9 @@
     <string name="postal_country" msgid="7638264508416368690">"Страна"</string>
     <string name="name_given" msgid="1687286314106019813">"Имя"</string>
     <string name="name_family" msgid="3416695586119999058">"Фамилия"</string>
-    <string name="name_prefix" msgid="59756378548779822">"Префикс имени"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Форма обращения"</string>
     <string name="name_middle" msgid="8467433655992690326">"Отчество"</string>
-    <string name="name_suffix" msgid="3855278445375651441">"Суффикс имени"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Звание/титул"</string>
     <string name="name_phonetic_given" msgid="6853570431394449191">"Имя (транскрипция)"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Отчество (транскрипция)"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Фамилия (транскрипция)"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 1a68355..0336c33 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakter"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
@@ -65,11 +66,12 @@
     <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_done" msgid="796017761764190697">"Färdig"</string>
-    <string name="menu_doNotSave" msgid="2174577548513895144">"Återgå"</string>
+    <string name="menu_doNotSave" msgid="2174577548513895144">"Tillbaka"</string>
     <string name="editContact_title_edit" msgid="7678695190666836093">"Redigera kontakt"</string>
     <string name="editContact_title_insert" msgid="9125600232291405757">"Ny kontakt"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Fonetiskt"</string>
     <string name="label_notes" msgid="8337354953278341042">"Anteckningar"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"Internetsamtal"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Ringsignal"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"För- och efternamn"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Fonetiskt namn"</string>
@@ -167,7 +169,7 @@
     <string name="liveFolder_favorites_label" msgid="2674341514070517105">"Stjärnmärkt"</string>
     <string name="liveFolder_phones_label" msgid="1709786878793436245">"Telefoner"</string>
     <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Använda tonvalstelefon"</string>
-    <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Återgå till pågående samtal"</string>
+    <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Återvänd till pågående samtal"</string>
     <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Lägg t. samt."</string>
     <string name="callDetailTitle" msgid="5340227785196217938">"Samtalsinfo"</string>
     <string name="toast_call_detail_error" msgid="7200975244804730096">"Det gick inte att läsa information om samtalet."</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"kontaktbild"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"Inget SD-kort"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"Inget SD-kort hittades"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB-enhet ej tillgänglig"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Inget SD-kort"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Ingen USB-enhet hittades"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Inget SD-kort hittades"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Söker efter vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importera från SIM-kort"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"Importera från SD-kort"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"Exportera till SD-kort"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importera från USB-enhet"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importera från SD-kort"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exportera till USB-enhet"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportera till SD-kort"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Dela synliga kontakter"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importera en vCard-fil"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importera flera vCard-filer"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importera alla vCard-filer"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"Söker efter vCard-data på SD-kort"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Det gick inte att läsa SD-kort"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Det gick inte att skanna SD-kortet (orsak: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Söker efter vCard-data på USB-lagringsenhet"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Söker efter vCard-data på SD-kort"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Det gick inte att söka igenom USB-lagringsenheten"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Det gick inte att läsa SD-kort"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Det gick inte att söka igenom USB-lagringsenheten (orsak: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Det gick inte att skanna SD-kortet (orsak: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O-fel"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Det gick inte att analysera vCard av okänd anledning"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Det gick inte att analysera vCard trots att formatet verkar vara giltigt. Den aktuella implementeringen stöder inte det."</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Ingen vCard-fil hittades på SD-kortet"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"Det finns ingen vCard-fil i USB-lagringsenheten"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"Ingen vCard-fil hittades på SD-kortet"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"En eller flera filer kunde inte importeras: (%s)."</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Okänt fel"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"Välj vCard-fil"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Det gick inte att exportera kontaktdata"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Det gick inte att exportera kontaktdata."\n"Orsak: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Det finns ingen kontakt som kan exporteras"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"För många vCard-filer på SD-kortet"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"För många vCard-filer på USB-lagringsenheten"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"För många vCard-filer på SD-kortet"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Det obligatoriska filnamnet är för långt (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exporterar kontaktuppgifter"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Exporterar kontaktuppgifter till: <xliff:g id="FILE_NAME">%s</xliff:g>"</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"Alla andra kontakter"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Alla kontakter"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Om du tar bort \"<xliff:g id="GROUP">%s</xliff:g>\" från synkroniseringen tas även alla kontakter som inte tillhör grupper bort från synkroniseringen."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Bara telefon (osynkad)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Bara telefon (osynkad)"</string>
     <string name="call_custom" msgid="7756571794763171802">"Ring <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"Ring hem"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Ring mobilen"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index b360da8..4954a0e 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Android Core Apps"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kişiler"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kişi"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"Yeni kişi"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"Fonetik"</string>
     <string name="label_notes" msgid="8337354953278341042">"Notlar"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"İnternet çağrısı"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"Zil sesi"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"Adı ve Soyadı"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"Fonetik adı"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"kişi fotoğrafı"</string>
     <string name="description_minus_button" msgid="387136707700230172">"eksi"</string>
     <string name="description_plus_button" msgid="515164827856229880">"artı"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"SD kart yok"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"Hiçbir SD kart tespit edilmedi"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB depl birimi kullnlmyr"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"SD kart yok"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"USB deplm birimi algılanmadı"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Hiçbir SD kart tespit edilmedi"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"vCard aranıyor"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"SIM karttan içe aktar"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"SD karttan içe aktar"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"SD karta dışa aktar"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"USB depl birmndn içe aktr"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"SD karttan içe aktar"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"USB deplm birmn dışa aktr"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"SD karta dışa aktar"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Görülebilir kişileri paylaş"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Bir vCard dosyasını içe aktar"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Birden fazla vCard dosyasını içe aktar"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Tüm vCard dosyalarını içe aktar"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"SD kartta vCard verileri aranıyor"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"SD kart taranamadı"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"SD kart taraması başarısız oldu (Neden: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"USB depolama birimindeki vCard verileri aranıyor"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"SD kartta vCard verileri aranıyor"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"USB depolama birimi taraması başarısız oldu"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"SD kart taranamadı"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"USB depolama birimi taraması başarısız oldu (Nedeni: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"SD kart taraması başarısız oldu (Neden: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"G/Ç Hatası"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Beklenmedik bir nedenden dolayı vCard ayrıştırılamadı"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Geçerli biçimde görünmesine rağmen vCard ayrıştırılamadı, çünkü şu anki uygulama vCard\'ı desteklemiyor"</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"SD kartta hiçbir vCard dosyası bulunamadı"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"USB depolama biriminde herhangi bir vCard dosyası bulunamadı"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"SD kartta hiçbir vCard dosyası bulunamadı"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"İçe aktarılamayan bir veya birden fazla dosya (%s)."</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"Bilinmeyen hata"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"vCard dosyasını seç"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Kişi verileri dışa aktarılamadı"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Kişi verileri dışa aktarılamadı."\n"Hata nedeni: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Dışa aktarılabilen hiçbir kişi yok"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"SD kartta çok fazla vCard dosyası var"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"USB depolama biriminde çok fazla vCard dosyası var"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"SD kartta çok fazla vCard dosyası var"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Gereken dosya adı çok uzun (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"Kişi verileri dışa aktarılıyor"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"Kişi verileri \"<xliff:g id="FILE_NAME">%s</xliff:g>\" dosyasına dışa aktarılıyor"</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"Diğer Tüm Kişiler"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"Tüm Kişiler"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"\'<xliff:g id="GROUP">%s</xliff:g>\' grubunu senkronizasyondan kaldırmak, gruplandırılmamış tüm kişileri de senkronizasyondan kaldırır."</string>
-    <string name="account_phone" msgid="4025734638492419713">"Yalnızca telefon (senkronize edilmemiş)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"Yalnızca telefon, senkronize edilmemiş"</string>
     <string name="call_custom" msgid="7756571794763171802">"Ara (<xliff:g id="CUSTOM">%s</xliff:g>)"</string>
     <string name="call_home" msgid="1990519474420545392">"Çağrı yap (ev)"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Çağrı yap (mobil)"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 65af296..142245c 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Android 核心应用程序"</string>
     <string name="contactsList" msgid="8661624236494819731">"通讯录"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"拨号"</string>
     <string name="shortcutContact" msgid="749243779392912958">"联系人"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"新建联系人"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"拼音"</string>
     <string name="label_notes" msgid="8337354953278341042">"备注"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"互联网通话"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"铃声"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"姓名"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"姓名拼音"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"联系人照片"</string>
     <string name="description_minus_button" msgid="387136707700230172">"删除"</string>
     <string name="description_plus_button" msgid="515164827856229880">"添加"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"无 SD 卡"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"未检测到 SD 卡"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"不存在 USB 存储设备"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"无 SD 卡"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"未检测到 USB 存储设备"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"未检测到 SD 卡"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"正在搜索 vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"从 SIM 卡导入"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"从 SD 卡导入"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"导出到 SD 卡"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"从 USB 存储设备导入"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"从 SD 卡导入"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"导出到 USB 存储设备"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"导出到 SD 卡"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"分享可见的联系人"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"导入一个 vCard 文件"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"导入多个 vCard 文件"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"导入所有 vCard 文件"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"正在 SD 卡中搜索 vCard 数据"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"扫描 SD 卡失败"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"扫描 SD 卡失败(原因:“<xliff:g id="FAIL_REASON">%s</xliff:g>”)"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"正在 USB 存储设备中搜索 vCard 文件"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"正在 SD 卡中搜索 vCard 数据"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"扫描 USB 存储设备时失败"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"扫描 SD 卡失败"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"扫描 USB 存储设备时失败(原因:“<xliff:g id="FAIL_REASON">%s</xliff:g>”)"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"扫描 SD 卡失败(原因:“<xliff:g id="FAIL_REASON">%s</xliff:g>”)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O 错误"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"由于意外原因而无法解析 vCard"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"虽然 vCard 似乎使用了有效的格式,但系统无法对其进行解析,因为当前的实现方案不支持该格式。"</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"未在 SD 卡上找到 vCard 文件"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"未在 USB 存储设备中找到 vCard 文件"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"未在 SD 卡上找到 vCard 文件"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"一个或多个文件导入失败 (%s)。"</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"未知错误"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"选择 vCard 文件"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"导出联系人数据失败"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"导出联系人数据失败。"\n"失败原因:“<xliff:g id="FAIL_REASON">%s</xliff:g>”"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"没有可导出的联系人"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"SD 卡中的 vCard 文件太多"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"USB 存储设备中的 vCard 文件太多"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"SD 卡中的 vCard 文件太多"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"所需文件名太长(“<xliff:g id="FILENAME">%s</xliff:g>”)"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"正在导出联系人数据"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"正在向“<xliff:g id="FILE_NAME">%s</xliff:g>”导出联系人数据"</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"其他所有联系人"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"所有联系人"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"如果从同步中删除群组“<xliff:g id="GROUP">%s</xliff:g>”,则会同时删除其中所有未分组的联系人。"</string>
-    <string name="account_phone" msgid="4025734638492419713">"仅保存在手机中(不同步)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"仅保存在手机中,不同步"</string>
     <string name="call_custom" msgid="7756571794763171802">"呼叫<xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"呼叫住宅电话"</string>
     <string name="call_mobile" msgid="7502236805487609178">"呼叫手机"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 4f0c93e..8332890 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -16,6 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sharedUserLabel" msgid="7965035505237135241">"Android 核心應用程式"</string>
     <string name="contactsList" msgid="8661624236494819731">"聯絡人"</string>
     <string name="launcherDialer" msgid="8636288196618486553">"電話"</string>
     <string name="shortcutContact" msgid="749243779392912958">"聯絡人"</string>
@@ -70,6 +71,7 @@
     <string name="editContact_title_insert" msgid="9125600232291405757">"新增聯絡人"</string>
     <string name="label_phonetic_name" msgid="2288082649573927286">"拼音"</string>
     <string name="label_notes" msgid="8337354953278341042">"附註"</string>
+    <string name="label_sip_address" msgid="124073911714324974">"網路電話"</string>
     <string name="label_ringtone" msgid="8833166825330686244">"鈴聲"</string>
     <string name="ghostData_name" msgid="6490954238641157585">"姓名"</string>
     <string name="ghostData_phonetic_name" msgid="7852749081984070902">"姓名拼音"</string>
@@ -202,23 +204,31 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"聯絡人相片"</string>
     <string name="description_minus_button" msgid="387136707700230172">"負號"</string>
     <string name="description_plus_button" msgid="515164827856229880">"加號"</string>
-    <string name="no_sdcard_title" msgid="5911758680339949273">"無 SD 卡"</string>
-    <string name="no_sdcard_message" msgid="6019391476490445358">"未偵測到 SD 卡"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"沒有可用的 USB 儲存裝置"</string>
+    <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"無 SD 卡"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"未偵測到 USB 儲存裝置"</string>
+    <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"未偵測到 SD 卡"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"正在搜尋 VCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"從 SIM 卡匯入"</string>
-    <string name="import_from_sdcard" msgid="8550360976693202816">"從 SD 卡匯入"</string>
-    <string name="export_to_sdcard" msgid="2597105442616166277">"匯出至 SD 卡"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"從 USB 儲存裝置匯入"</string>
+    <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"從 SD 卡匯入"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"匯出到 USB 儲存裝置"</string>
+    <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"匯出至 SD 卡"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"分享正常顯示的聯絡人"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"匯入一個 vCard 檔案"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"匯入多個 vCard 檔案"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"匯入所有 vCard 檔案"</string>
-    <string name="searching_vcard_message" msgid="6917522333561434546">"在 SD 卡上搜尋 VCard 資料"</string>
-    <string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"無法掃描 SD 卡"</string>
-    <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"無法掃描 SD 卡 (原因:「<xliff:g id="FAIL_REASON">%s</xliff:g>」)"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"正在 USB 儲存裝置中搜尋 vCard 資料"</string>
+    <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"在 SD 卡上搜尋 VCard 資料"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"掃描 USB 儲存裝置失敗"</string>
+    <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"無法掃描 SD 卡"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"掃描 USB 儲存裝置失敗 (原因:「<xliff:g id="FAIL_REASON">%s</xliff:g>」)"</string>
+    <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"無法掃描 SD 卡 (原因:「<xliff:g id="FAIL_REASON">%s</xliff:g>」)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O 錯誤"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"因未預期原因,無法剖析 VCard"</string>
     <string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"VCard 格式正確,但目前的實作系統不支援此格式,因此無法剖析"</string>
-    <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"SD 卡上沒有 vCard 檔案"</string>
+    <string name="fail_reason_no_vcard_file" product="nosdcard" msgid="4231528180481838813">"在 USB 儲存裝置中找不到 vCard 檔案"</string>
+    <string name="fail_reason_no_vcard_file" product="default" msgid="6376516175882881595">"SD 卡上沒有 vCard 檔案"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"無法匯入一或多個檔案 (%s)。"</string>
     <string name="fail_reason_unknown" msgid="999034019513096768">"未知的錯誤"</string>
     <string name="select_vcard_title" msgid="3968948173786172468">"選取 VCard 檔案"</string>
@@ -233,7 +243,8 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"無法匯出聯絡人資料"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"匯出聯絡人資料失敗。"\n"失敗原因:「<xliff:g id="FAIL_REASON">%s</xliff:g>」"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"沒有可匯出的聯絡人"</string>
-    <string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"SD 卡中的 VCard 檔案過多"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"USB 儲存裝置中的 vCard 檔案過多"</string>
+    <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"SD 卡中的 VCard 檔案過多"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"要求的檔案名稱過長 (「<xliff:g id="FILENAME">%s</xliff:g>」)"</string>
     <string name="exporting_contact_list_title" msgid="9072240631534457415">"正在匯出聯絡人資料"</string>
     <string name="exporting_contact_list_message" msgid="5640326540405486055">"正在將聯絡人資料匯出至「<xliff:g id="FILE_NAME">%s</xliff:g>」"</string>
@@ -279,7 +290,7 @@
     <string name="display_ungrouped" msgid="4602580795576261158">"所有其他聯絡人"</string>
     <string name="display_all_contacts" msgid="6846131371214707956">"所有聯絡人"</string>
     <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"如果從同步處理群組中移除「<xliff:g id="GROUP">%s</xliff:g>」群組,系統也會從同步處理群組中移除所有未分組的聯絡人。"</string>
-    <string name="account_phone" msgid="4025734638492419713">"僅儲存於手機 (不會同步處理)"</string>
+    <string name="account_phone" msgid="3682950835276226870">"僅儲存於手機 (不會同步處理)"</string>
     <string name="call_custom" msgid="7756571794763171802">"去電<xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"去電住家電話"</string>
     <string name="call_mobile" msgid="7502236805487609178">"去電行動裝置"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 893394c..5d275aa 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -14,6 +14,10 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Label for this app's shared user ID (and thus for all other
+         apps sharing the uid). -->
+    <string name="sharedUserLabel">Android Core Apps</string>
+
     <!-- Title for the activity that shows contacts.  This is the name
          used in the Launcher icon. -->
     <string name="contactsList">Contacts</string>
@@ -189,6 +193,9 @@
     <!-- The label describing the Notes field of a contact. This field allows free form text entry about a contact -->
     <string name="label_notes">Notes</string>
 
+    <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
+    <string name="label_sip_address">Internet call</string>
+
     <!-- The label describing the custom ringtone for a contact -->
     <string name="label_ringtone">Ringtone</string>
 
@@ -652,11 +659,15 @@
     -->
     <string name="description_plus_button">plus</string>
 
+    <!-- Dialog title shown when USB storage does not exist [CHAR LIMIT=25] -->
+    <string name="no_sdcard_title" product="nosdcard">USB storage unavailable</string>
     <!-- Dialog title shown when SD Card does not exist -->
-    <string name="no_sdcard_title">No SD card</string>
+    <string name="no_sdcard_title" product="default">No SD card</string>
 
+    <!-- Dialog message shown when USB storage does not exist [CHAR LIMIT=30] -->
+    <string name="no_sdcard_message" product="nosdcard">No USB storage detected</string>
     <!-- Dialog message shown when SDcard does not exist -->
-    <string name="no_sdcard_message">No SD card detected</string>
+    <string name="no_sdcard_message" product="default">No SD card detected</string>
 
     <!-- Dialog title shown when searching VCard data from SD Card -->
     <string name="searching_vcard_title">Searching for vCard</string>
@@ -664,11 +675,15 @@
     <!-- Action string for selecting SIM for importing contacts -->
     <string name="import_from_sim">Import from SIM card</string>
 
+    <!-- Action string for selecting USB storage for importing contacts [CHAR LIMIT=25] -->
+    <string name="import_from_sdcard" product="nosdcard">Import from USB storage</string>
     <!-- Action string for selecting SD Card for importing contacts -->
-    <string name="import_from_sdcard">Import from SD card</string>
+    <string name="import_from_sdcard" product="default">Import from SD card</string>
 
+    <!-- Action that exports all contacts to USB storage [CHAR LIMIT=25] -->
+    <string name="export_to_sdcard" product="nosdcard">Export to USB storage</string>
     <!-- Action that exports all contacts to SD Card -->
-    <string name="export_to_sdcard">Export to SD card</string>
+    <string name="export_to_sdcard" product="default">Export to SD card</string>
 
     <!-- Action that shares visible contacts -->
     <string name="share_visible_contacts">Share visible contacts</string>
@@ -688,15 +703,22 @@
          than one vCard files available in the system. -->
     <string name="import_all_vcard_string">Import all vCard files</string>
 
+    <!-- Dialog message shown when searching VCard data from SD Card [CHAR LIMIT=NONE] -->
+    <string name="searching_vcard_message" product="nosdcard">Searching for vCard data in USB storage</string>
     <!-- Dialog message shown when searching VCard data from SD Card -->
-    <string name="searching_vcard_message">Searching for vCard data on SD card</string>
+    <string name="searching_vcard_message" product="default">Searching for vCard data on SD card</string>
 
+    <!-- Dialog title shown when scanning VCard data failed. [CHAR LIMIT=NONE] -->
+    <string name="scanning_sdcard_failed_title" product="nosdcard">Scanning USB storage failed</string>
     <!-- Dialog title shown when scanning VCard data failed. -->
-    <string name="scanning_sdcard_failed_title">Scanning SD card failed</string>
+    <string name="scanning_sdcard_failed_title" product="default">Scanning SD card failed</string>
 
     <!-- Dialog message shown when searching VCard data failed.
+         An exact reason for the failure should [CHAR LIMIT=NONE] -->
+    <string name="scanning_sdcard_failed_message" product="nosdcard">Scanning USB storage failed (Reason: \"<xliff:g id="fail_reason">%s</xliff:g>\")</string>
+    <!-- Dialog message shown when searching VCard data failed.
          An exact reason for the failure should -->
-    <string name="scanning_sdcard_failed_message">Scanning SD card failed (Reason: \"<xliff:g id="fail_reason">%s</xliff:g>\")</string>
+    <string name="scanning_sdcard_failed_message" product="default">Scanning SD card failed (Reason: \"<xliff:g id="fail_reason">%s</xliff:g>\")</string>
 
     <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
          emitted some I/O error. Exact reason will be appended by the system. -->
@@ -714,8 +736,11 @@
     <string name="fail_reason_vcard_not_supported_error">Failed to parse vCard though it seems in valid format, since the current implementation does not support it</string>
 
     <!-- The failed reason shown when the system could not find any vCard file
+         (with extension ".vcf" in SDCard.) [CHAR LIMIT=NONE] -->
+    <string name="fail_reason_no_vcard_file" product="nosdcard">No vCard file found in the USB storage</string>
+    <!-- The failed reason shown when the system could not find any vCard file
          (with extension ".vcf" in SDCard.) -->
-    <string name="fail_reason_no_vcard_file">No vCard file found on the SD card</string>
+    <string name="fail_reason_no_vcard_file" product="default">No vCard file found on the SD card</string>
 
     <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
          files import. It includes the case where all files were failed to be imported. -->
@@ -765,8 +790,11 @@
     <string name="fail_reason_no_exportable_contact">There is no exportable contact</string>
 
     <!-- The failed reason shown when vCard exporter could not create a file for the vCard since
+         there are too many files relevant to vCard. [CHAR LIMIT=NONE] -->
+    <string name="fail_reason_too_many_vcard" product="nosdcard">Too many vCard files in the USB storage</string>
+    <!-- The failed reason shown when vCard exporter could not create a file for the vCard since
          there are too many files relevant to vCard. -->
-    <string name="fail_reason_too_many_vcard">Too many vCard files on the SD card</string>
+    <string name="fail_reason_too_many_vcard" product="default">Too many vCard files on the SD card</string>
 
     <!-- The failed reason shown when the given file name is too long for the system.
          The length limit of each file is different in each Android device, so we don't need to
@@ -907,7 +935,7 @@
     <!-- Title for data source when creating or editing a contact that doesn't
          belong to a specific account.  This contact will only exist on the phone
          and will not be synced. -->
-    <string name="account_phone">Phone-only (unsynced)</string>
+    <string name="account_phone">Phone-only, unsynced</string>
 
     <!-- Action string for calling a custom phone number -->
     <string name="call_custom">Call <xliff:g id="custom">%s</xliff:g></string>
diff --git a/src/com/android/contacts/CallDetailActivity.java b/src/com/android/contacts/CallDetailActivity.java
index 14f54c9..9f027bb 100644
--- a/src/com/android/contacts/CallDetailActivity.java
+++ b/src/com/android/contacts/CallDetailActivity.java
@@ -126,6 +126,7 @@
                     Intent callIntent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
                             Uri.fromParts("tel", mNumber, null));
                     startActivity(callIntent);
+                    StickyTabs.saveTab(this, getIntent());
                     return true;
                 }
             }
@@ -240,6 +241,7 @@
                     // to create new contact from this number.
                     if (personUri != null) {
                         Intent viewIntent = new Intent(Intent.ACTION_VIEW, personUri);
+                        StickyTabs.setTab(viewIntent, getIntent());
                         actions.add(new ViewEntry(R.drawable.sym_action_view_contact,
                                 getString(R.string.menu_viewContact), viewIntent));
                     } else {
@@ -362,6 +364,9 @@
         if (view.getTag() instanceof ViewEntry) {
             ViewEntry entry = (ViewEntry) view.getTag();
             if (entry.intent != null) {
+                if (Intent.ACTION_CALL_PRIVILEGED.equals(entry.intent.getAction())) {
+                    StickyTabs.saveTab(this, getIntent());
+                }
                 startActivity(entry.intent);
             }
         }
diff --git a/src/com/android/contacts/ContactsListActivity.java b/src/com/android/contacts/ContactsListActivity.java
index 0d2c7eb..ac6a3a8 100644
--- a/src/com/android/contacts/ContactsListActivity.java
+++ b/src/com/android/contacts/ContactsListActivity.java
@@ -1024,6 +1024,13 @@
     }
 
     @Override
+    protected void onStart() {
+        super.onStart();
+
+        mContactsPrefs.registerChangeListener(mPreferencesChangeListener);
+    }
+
+    @Override
     protected void onPause() {
         super.onPause();
         unregisterProviderStatusObserver();
@@ -1205,6 +1212,7 @@
     protected void onStop() {
         super.onStop();
 
+        mContactsPrefs.unregisterChangeListener();
         mAdapter.setSuggestionsCursor(null);
         mAdapter.changeCursor(null);
 
@@ -1528,7 +1536,8 @@
             case SUBACTIVITY_NEW_CONTACT:
                 if (resultCode == RESULT_OK) {
                     returnPickerResult(null, data.getStringExtra(Intent.EXTRA_SHORTCUT_NAME),
-                            data.getData());
+                            data.getData(), (mMode & MODE_MASK_PICKER) != 0
+                            ? Intent.FLAG_GRANT_READ_URI_PERMISSION : 0);
                 }
                 break;
 
@@ -1584,13 +1593,14 @@
         menu.setHeaderTitle(cursor.getString(getSummaryDisplayNameColumnIndex()));
 
         // View contact details
+        final Intent viewContactIntent = new Intent(Intent.ACTION_VIEW, contactUri);
+        StickyTabs.setTab(viewContactIntent, getIntent());
         menu.add(0, MENU_ITEM_VIEW_CONTACT, 0, R.string.menu_viewContact)
-                .setIntent(new Intent(Intent.ACTION_VIEW, contactUri));
+                .setIntent(viewContactIntent);
 
         if (cursor.getInt(SUMMARY_HAS_PHONE_COLUMN_INDEX) != 0) {
             // Calling contact
-            menu.add(0, MENU_ITEM_CALL, 0,
-                    getString(R.string.menu_call));
+            menu.add(0, MENU_ITEM_CALL, 0, getString(R.string.menu_call));
             // Send SMS item
             menu.add(0, MENU_ITEM_SEND_SMS, 0, getString(R.string.menu_sendSMS));
         }
@@ -1837,9 +1847,10 @@
             final Uri uri = getSelectedUri(position);
             if ((mMode & MODE_MASK_PICKER) == 0) {
                 final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
+                StickyTabs.setTab(intent, getIntent());
                 startActivityForResult(intent, SUBACTIVITY_VIEW_CONTACT);
             } else if (mMode == MODE_JOIN_CONTACT) {
-                returnPickerResult(null, null, uri);
+                returnPickerResult(null, null, uri, 0);
             } else if (mMode == MODE_QUERY_PICK_TO_VIEW) {
                 // Started with query that should launch to view contact
                 final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
@@ -1847,14 +1858,16 @@
                 finish();
             } else if (mMode == MODE_PICK_PHONE || mMode == MODE_QUERY_PICK_PHONE) {
                 Cursor c = (Cursor) mAdapter.getItem(position);
-                returnPickerResult(c, c.getString(PHONE_DISPLAY_NAME_COLUMN_INDEX), uri);
+                returnPickerResult(c, c.getString(PHONE_DISPLAY_NAME_COLUMN_INDEX), uri,
+                        Intent.FLAG_GRANT_READ_URI_PERMISSION);
             } else if ((mMode & MODE_MASK_PICKER) != 0) {
                 Cursor c = (Cursor) mAdapter.getItem(position);
-                returnPickerResult(c, c.getString(getSummaryDisplayNameColumnIndex()), uri);
+                returnPickerResult(c, c.getString(getSummaryDisplayNameColumnIndex()), uri,
+                        Intent.FLAG_GRANT_READ_URI_PERMISSION);
             } else if (mMode == MODE_PICK_POSTAL
                     || mMode == MODE_LEGACY_PICK_POSTAL
                     || mMode == MODE_LEGACY_PICK_PHONE) {
-                returnPickerResult(null, null, uri);
+                returnPickerResult(null, null, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
             }
         } else {
             signalError();
@@ -1872,7 +1885,7 @@
      * @param selectedUri In most cases, this should be a lookup {@link Uri}, possibly
      *            generated through {@link Contacts#getLookupUri(long, String)}.
      */
-    private void returnPickerResult(Cursor c, String name, Uri selectedUri) {
+    private void returnPickerResult(Cursor c, String name, Uri selectedUri, int uriPerms) {
         final Intent intent = new Intent();
 
         if (mShortcutAction != null) {
@@ -1924,6 +1937,7 @@
             setResult(RESULT_OK, intent);
         } else {
             intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
+            intent.addFlags(uriPerms);
             setResult(RESULT_OK, intent.setData(selectedUri));
         }
         finish();
@@ -2653,12 +2667,13 @@
                 if (phone == null) {
                     // Display dialog to choose a number to call.
                     PhoneDisambigDialog phoneDialog = new PhoneDisambigDialog(
-                            this, phonesCursor, sendSms);
+                            this, phonesCursor, sendSms, StickyTabs.getTab(getIntent()));
                     phoneDialog.show();
                 } else {
                     if (sendSms) {
                         ContactsUtils.initiateSms(this, phone);
                     } else {
+                        StickyTabs.saveTab(this, getIntent());
                         ContactsUtils.initiateCall(this, phone);
                     }
                 }
@@ -2675,8 +2690,11 @@
                 new String[] {Phone._ID, Phone.NUMBER, Phone.IS_SUPER_PRIMARY,
                         RawContacts.ACCOUNT_TYPE, Phone.TYPE, Phone.LABEL},
                 Data.MIMETYPE + "=?", new String[] {Phone.CONTENT_ITEM_TYPE}, null);
-        if (c != null && c.moveToFirst()) {
-            return c;
+        if (c != null) {
+            if (c.moveToFirst()) {
+                return c;
+            }
+            c.close();
         }
         return null;
     }
@@ -3130,6 +3148,7 @@
                     final String lookupKey = cursor.getString(SUMMARY_LOOKUP_KEY_COLUMN_INDEX);
                     QuickContactBadge quickContact = view.getQuickContact();
                     quickContact.assignContactUri(Contacts.getLookupUri(contactId, lookupKey));
+                    quickContact.setSelectedContactsAppTabIndex(StickyTabs.getTab(getIntent()));
                     viewToUse = quickContact;
                 } else {
                     viewToUse = view.getPhotoView();
@@ -3582,4 +3601,14 @@
             }
         }
     }
+
+    private ContactsPreferences.ChangeListener mPreferencesChangeListener =
+            new ContactsPreferences.ChangeListener() {
+        @Override
+        public void onChange() {
+            // When returning from DisplayOptions, onActivityResult ensures that we reload the list,
+            // so we do not have to do anything here. However, ContactsPreferences requires a change
+            // listener, otherwise it would not reload its settings.
+        }
+    };
 }
diff --git a/src/com/android/contacts/DialtactsActivity.java b/src/com/android/contacts/DialtactsActivity.java
index afb8606..ef183c5 100644
--- a/src/com/android/contacts/DialtactsActivity.java
+++ b/src/com/android/contacts/DialtactsActivity.java
@@ -44,10 +44,6 @@
     private static final String FAVORITES_ENTRY_COMPONENT =
             "com.android.contacts.DialtactsFavoritesEntryActivity";
 
-    /** Opens the Contacts app in the state the user has last set it to */
-    private static final String CONTACTS_LAUNCH_ACTIVITY =
-            "com.android.contacts.ContactsLaunchActivity";
-
     private static final int TAB_INDEX_DIALER = 0;
     private static final int TAB_INDEX_CALL_LOG = 1;
     private static final int TAB_INDEX_CONTACTS = 2;
@@ -55,32 +51,19 @@
 
     static final String EXTRA_IGNORE_STATE = "ignore-state";
 
-    /** Name of the dialtacts shared preferences */
-    static final String PREFS_DIALTACTS = "dialtacts";
     /** If true, when handling the contacts intent the favorites tab will be shown instead */
-    static final String PREF_FAVORITES_AS_CONTACTS = "favorites_as_contacts";
-    static final boolean PREF_FAVORITES_AS_CONTACTS_DEFAULT = false;
-
-    /** Last manually selected tab index */
-    private static final String PREF_LAST_MANUALLY_SELECTED_TAB = "last_manually_selected_tab";
-    private static final int PREF_LAST_MANUALLY_SELECTED_TAB_DEFAULT = TAB_INDEX_DIALER;
+    private static final String PREF_FAVORITES_AS_CONTACTS = "favorites_as_contacts";
+    private static final boolean PREF_FAVORITES_AS_CONTACTS_DEFAULT = false;
 
     private TabHost mTabHost;
     private String mFilterText;
     private Uri mDialUri;
 
-    /**
-     * The index of the tab that has last been manually selected (the user clicked on a tab).
-     * This value does not keep track of programmatically set Tabs (e.g. Call Log after a Call)
-     */
-    private int mLastManuallySelectedTab;
-
     @Override
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
         final Intent intent = getIntent();
-        fixIntent(intent);
 
         requestWindowFeature(Window.FEATURE_NO_TITLE);
         setContentView(R.layout.dialer_activity);
@@ -94,11 +77,6 @@
         setupContactsTab();
         setupFavoritesTab();
 
-        // Load the last manually loaded tab
-        final SharedPreferences prefs = getSharedPreferences(PREFS_DIALTACTS, MODE_PRIVATE);
-        mLastManuallySelectedTab = prefs.getInt(PREF_LAST_MANUALLY_SELECTED_TAB,
-                PREF_LAST_MANUALLY_SELECTED_TAB_DEFAULT);
-
         setCurrentTab(intent);
 
         if (intent.getAction().equals(UI.FILTER_CONTACTS_ACTION)
@@ -113,30 +91,19 @@
 
         final int currentTabIndex = mTabHost.getCurrentTab();
         final SharedPreferences.Editor editor =
-                getSharedPreferences(PREFS_DIALTACTS, MODE_PRIVATE).edit();
+                getSharedPreferences(StickyTabs.PREFERENCES_NAME, MODE_PRIVATE).edit();
         if (currentTabIndex == TAB_INDEX_CONTACTS || currentTabIndex == TAB_INDEX_FAVORITES) {
             editor.putBoolean(PREF_FAVORITES_AS_CONTACTS, currentTabIndex == TAB_INDEX_FAVORITES);
         }
-        editor.putInt(PREF_LAST_MANUALLY_SELECTED_TAB, mLastManuallySelectedTab);
 
-        editor.commit();
-    }
-
-    private void fixIntent(Intent intent) {
-        // This should be cleaned up: the call key used to send an Intent
-        // that just said to go to the recent calls list.  It now sends this
-        // abstract action, but this class hasn't been rewritten to deal with it.
-        if (Intent.ACTION_CALL_BUTTON.equals(intent.getAction())) {
-            intent.setDataAndType(Calls.CONTENT_URI, Calls.CONTENT_TYPE);
-            intent.putExtra("call_key", true);
-            setIntent(intent);
-        }
+        editor.apply();
     }
 
     private void setupCallLogTab() {
         // Force the class since overriding tab entries doesn't work
         Intent intent = new Intent("com.android.phone.action.RECENT_CALLS");
         intent.setClass(this, RecentCallsListActivity.class);
+        StickyTabs.setTab(intent, TAB_INDEX_CALL_LOG);
 
         mTabHost.addTab(mTabHost.newTabSpec("call_log")
                 .setIndicator(getString(R.string.recentCallsIconLabel),
@@ -147,6 +114,7 @@
     private void setupDialerTab() {
         Intent intent = new Intent("com.android.phone.action.TOUCH_DIALER");
         intent.setClass(this, TwelveKeyDialer.class);
+        StickyTabs.setTab(intent, TAB_INDEX_DIALER);
 
         mTabHost.addTab(mTabHost.newTabSpec("dialer")
                 .setIndicator(getString(R.string.dialerIconLabel),
@@ -157,6 +125,7 @@
     private void setupContactsTab() {
         Intent intent = new Intent(UI.LIST_DEFAULT);
         intent.setClass(this, ContactsListActivity.class);
+        StickyTabs.setTab(intent, TAB_INDEX_CONTACTS);
 
         mTabHost.addTab(mTabHost.newTabSpec("contacts")
                 .setIndicator(getText(R.string.contactsIconLabel),
@@ -167,6 +136,7 @@
     private void setupFavoritesTab() {
         Intent intent = new Intent(UI.LIST_STREQUENT_ACTION);
         intent.setClass(this, ContactsListActivity.class);
+        StickyTabs.setTab(intent, TAB_INDEX_FAVORITES);
 
         mTabHost.addTab(mTabHost.newTabSpec("favorites")
                 .setIndicator(getString(R.string.contactsFavoritesLabel),
@@ -175,43 +145,11 @@
     }
 
     /**
-     * Returns true if the intent is due to hitting the green send key while in a call.
-     *
-     * @param intent the intent that launched this activity
-     * @param recentCallsRequest true if the intent is requesting to view recent calls
-     * @return true if the intent is due to hitting the green send key while in a call
-     */
-    private boolean isSendKeyWhileInCall(final Intent intent, final boolean recentCallsRequest) {
-        // If there is a call in progress go to the call screen
-        if (recentCallsRequest) {
-            final boolean callKey = intent.getBooleanExtra("call_key", false);
-
-            try {
-                ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone"));
-                if (callKey && phone != null && phone.showCallScreen()) {
-                    return true;
-                }
-            } catch (RemoteException e) {
-                Log.e(TAG, "Failed to handle send while in call", e);
-            }
-        }
-
-        return false;
-    }
-
-    /**
      * Sets the current tab based on the intent's request type
      *
      * @param intent Intent that contains information about which tab should be selected
      */
     private void setCurrentTab(Intent intent) {
-        // If we got here by hitting send and we're in call forward along to the in-call activity
-        final boolean recentCallsRequest = Calls.CONTENT_TYPE.equals(intent.getType());
-        if (isSendKeyWhileInCall(intent, recentCallsRequest)) {
-            finish();
-            return;
-        }
-
         // Dismiss menu provided by any children activities
         Activity activity = getLocalActivityManager().
                 getActivity(mTabHost.getCurrentTabTag());
@@ -223,25 +161,33 @@
         // state and instead reload their state from the parent's intent
         intent.putExtra(EXTRA_IGNORE_STATE, true);
 
-        // Remember the old manually selected tab index so that it can be restored if it is
-        // overwritten by one of the programmatic tab selections
-        final int savedTabIndex = mLastManuallySelectedTab;
-
         // Choose the tab based on the inbound intent
         String componentName = intent.getComponent().getClassName();
         if (getClass().getName().equals(componentName)) {
-            if (recentCallsRequest) {
+            if (phoneIsInUse()) {
+                // We are in a call, show the dialer tab (which allows going back to the call)
+                mTabHost.setCurrentTab(TAB_INDEX_DIALER);
+            } else if ((intent.getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) != 0) {
+                // launched from history (long-press home) --> nothing to change
+            } else if (isDialIntent(intent)) {
+                // The dialer was explicitly requested
+                mTabHost.setCurrentTab(TAB_INDEX_DIALER);
+            } else if (Calls.CONTENT_TYPE.equals(intent.getType())) {
+                // After a call, show the call log
                 mTabHost.setCurrentTab(TAB_INDEX_CALL_LOG);
             } else {
-                mTabHost.setCurrentTab(TAB_INDEX_DIALER);
+                // Load the last tab used to make a phone call. default to the dialer in
+                // first launch
+                mTabHost.setCurrentTab(StickyTabs.loadTab(this, TAB_INDEX_DIALER));
             }
         } else if (FAVORITES_ENTRY_COMPONENT.equals(componentName)) {
             mTabHost.setCurrentTab(TAB_INDEX_FAVORITES);
-        } else if (CONTACTS_LAUNCH_ACTIVITY.equals(componentName)) {
-            mTabHost.setCurrentTab(mLastManuallySelectedTab);
         } else {
-            SharedPreferences prefs = getSharedPreferences(PREFS_DIALTACTS, MODE_PRIVATE);
-            boolean favoritesAsContacts = prefs.getBoolean(PREF_FAVORITES_AS_CONTACTS,
+            // Launched as "Contacts" --> Go either to favorites or contacts, whichever is more
+            // recent
+            final SharedPreferences prefs = getSharedPreferences(StickyTabs.PREFERENCES_NAME,
+                    MODE_PRIVATE);
+            final boolean favoritesAsContacts = prefs.getBoolean(PREF_FAVORITES_AS_CONTACTS,
                     PREF_FAVORITES_AS_CONTACTS_DEFAULT);
             if (favoritesAsContacts) {
                 mTabHost.setCurrentTab(TAB_INDEX_FAVORITES);
@@ -250,9 +196,6 @@
             }
         }
 
-        // Restore to the previous manual selection
-        mLastManuallySelectedTab = savedTabIndex;
-
         // Tell the children activities that they should honor their saved states
         // instead of the state from the parent's intent
         intent.putExtra(EXTRA_IGNORE_STATE, false);
@@ -261,7 +204,6 @@
     @Override
     public void onNewIntent(Intent newIntent) {
         setIntent(newIntent);
-        fixIntent(newIntent);
         setCurrentTab(newIntent);
         final String action = newIntent.getAction();
         if (action.equals(UI.FILTER_CONTACTS_ACTION)) {
@@ -358,6 +300,7 @@
     }
 
     /** {@inheritDoc} */
+    @Override
     public void onTabChanged(String tabId) {
         // Because we're using Activities as our tab children, we trigger
         // onWindowFocusChanged() to let them know when they're active.  This may
@@ -367,9 +310,20 @@
         if (activity != null) {
             activity.onWindowFocusChanged(true);
         }
+    }
 
-        // Remember this tab index. This function is also called, if the tab is set automatically
-        // in which case the setter (setCurrentTab) has to set this to its old value afterwards
-        mLastManuallySelectedTab = mTabHost.getCurrentTab();
+    /**
+     * @return true if the phone is "in use", meaning that at least one line
+     *              is active (ie. off hook or ringing or dialing).
+     */
+    private boolean phoneIsInUse() {
+        boolean phoneInUse = false;
+        try {
+            ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone"));
+            if (phone != null) phoneInUse = !phone.isIdle();
+        } catch (RemoteException e) {
+            Log.w(TAG, "phone.isIdle() failed", e);
+        }
+        return phoneInUse;
     }
 }
diff --git a/src/com/android/contacts/ExportVCardActivity.java b/src/com/android/contacts/ExportVCardActivity.java
index 5bccc7a..ceeecfc 100644
--- a/src/com/android/contacts/ExportVCardActivity.java
+++ b/src/com/android/contacts/ExportVCardActivity.java
@@ -26,6 +26,7 @@
 import android.os.Handler;
 import android.os.PowerManager;
 import android.pim.vcard.VCardComposer;
+import android.pim.vcard.VCardConfig;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -146,10 +147,9 @@
                     return;
                 }
 
-                composer = new VCardComposer(ExportVCardActivity.this, mVCardTypeStr, true);
-                /*int vcardType = (VCardConfig.VCARD_TYPE_V21_GENERIC |
-                        VCardConfig.FLAG_USE_QP_TO_PRIMARY_PROPERTIES);
-                composer = new VCardComposer(ExportVCardActivity.this, vcardType, true);*/
+                // composer = new VCardComposer(ExportVCardActivity.this, mVCardTypeStr, true);
+                int vcardType = VCardConfig.VCARD_TYPE_V30_GENERIC;
+                composer = new VCardComposer(ExportVCardActivity.this, vcardType, true);
 
                 composer.addHandler(composer.new HandlerForOutputStream(outputStream));
 
diff --git a/src/com/android/contacts/ImportVCardActivity.java b/src/com/android/contacts/ImportVCardActivity.java
index 0a324fe..46cdf32 100644
--- a/src/com/android/contacts/ImportVCardActivity.java
+++ b/src/com/android/contacts/ImportVCardActivity.java
@@ -16,6 +16,9 @@
 
 package com.android.contacts;
 
+import com.android.contacts.model.Sources;
+import com.android.contacts.util.AccountSelectionUtil;
+
 import android.accounts.Account;
 import android.app.Activity;
 import android.app.AlertDialog;
@@ -25,9 +28,9 @@
 import android.content.ContentUris;
 import android.content.Context;
 import android.content.DialogInterface;
-import android.content.Intent;
 import android.content.DialogInterface.OnCancelListener;
 import android.content.DialogInterface.OnClickListener;
+import android.content.Intent;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Environment;
@@ -39,6 +42,7 @@
 import android.pim.vcard.VCardEntryCounter;
 import android.pim.vcard.VCardInterpreter;
 import android.pim.vcard.VCardInterpreterCollection;
+import android.pim.vcard.VCardParser;
 import android.pim.vcard.VCardParser_V21;
 import android.pim.vcard.VCardParser_V30;
 import android.pim.vcard.VCardSourceDetector;
@@ -53,9 +57,6 @@
 import android.text.style.RelativeSizeSpan;
 import android.util.Log;
 
-import com.android.contacts.model.Sources;
-import com.android.contacts.util.AccountSelectionUtil;
-
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -107,6 +108,10 @@
     private static final String LOG_TAG = "ImportVCardActivity";
     private static final boolean DO_PERFORMANCE_PROFILE = false;
 
+    private final static int VCARD_VERSION_V21 = 1;
+    private final static int VCARD_VERSION_V30 = 2;
+    private final static int VCARD_VERSION_V40 = 3;
+
     // Run on the UI thread. Must not be null except after onDestroy().
     private Handler mHandler = new Handler();
 
@@ -155,7 +160,7 @@
     private class VCardReadThread extends Thread
             implements DialogInterface.OnCancelListener {
         private ContentResolver mResolver;
-        private VCardParser_V21 mVCardParser;
+        private VCardParser mVCardParser;
         private boolean mCanceled;
         private PowerManager.WakeLock mWakeLock;
         private Uri mUri;
@@ -213,20 +218,25 @@
                     if (DO_PERFORMANCE_PROFILE) {
                         start = System.currentTimeMillis();
                     }
-                    VCardEntryCounter counter = new VCardEntryCounter();
-                    VCardSourceDetector detector = new VCardSourceDetector();
-                    VCardInterpreterCollection builderCollection = new VCardInterpreterCollection(
-                            Arrays.asList(counter, detector));
+                    final VCardEntryCounter counter = new VCardEntryCounter();
+                    final VCardSourceDetector detector = new VCardSourceDetector();
+                    final VCardInterpreterCollection builderCollection =
+                            new VCardInterpreterCollection(Arrays.asList(counter, detector));
                     boolean result;
                     try {
-                        result = readOneVCardFile(targetUri,
-                                VCardConfig.DEFAULT_CHARSET, builderCollection, null, true, null);
+                        // We don't know which type should be useld to parse the Uri.
+                        // It is possble to misinterpret the vCard, but we expect the parser
+                        // lets VCardSourceDetector detect the type before the misinterpretation.
+                        result = readOneVCardFile(targetUri, VCardConfig.VCARD_TYPE_UNKNOWN,
+                                builderCollection, true, null);
                     } catch (VCardNestedException e) {
                         try {
+                            final int estimatedVCardType = detector.getEstimatedType();
+                            final String estimatedCharset = detector.getEstimatedCharset();
                             // Assume that VCardSourceDetector was able to detect the source.
                             // Try again with the detector.
-                            result = readOneVCardFile(targetUri,
-                                    VCardConfig.DEFAULT_CHARSET, counter, detector, false, null);
+                            result = readOneVCardFile(targetUri, estimatedVCardType,
+                                    counter, false, null);
                         } catch (VCardNestedException e2) {
                             result = false;
                             Log.e(LOG_TAG, "Must not reach here. " + e2);
@@ -247,7 +257,7 @@
                     mProgressDialogForReadVCard.setIndeterminate(false);
                     mProgressDialogForReadVCard.setMax(counter.getCount());
                     String charset = detector.getEstimatedCharset();
-                    createdUri = doActuallyReadOneVCard(targetUri, null, charset, true, detector,
+                    createdUri = doActuallyReadOneVCard(targetUri, mAccount, true, detector,
                             mErrorFileNameList);
                 } else {  // Read multiple files.
                     mProgressDialogForReadVCard.setProgressNumberFormat(
@@ -260,13 +270,11 @@
                             return;
                         }
                         // TODO: detect scheme!
-                        final Uri targetUri =
-                            Uri.parse("file://" + vcardFile.getCanonicalPath());
-
+                        final Uri targetUri = Uri.parse("file://" + vcardFile.getCanonicalPath());
                         VCardSourceDetector detector = new VCardSourceDetector();
                         try {
-                            if (!readOneVCardFile(targetUri, VCardConfig.DEFAULT_CHARSET,
-                                    detector, null, true, mErrorFileNameList)) {
+                            if (!readOneVCardFile(targetUri, VCardConfig.VCARD_TYPE_UNKNOWN,
+                                    detector, true, mErrorFileNameList)) {
                                 continue;
                             }
                         } catch (VCardNestedException e) {
@@ -274,7 +282,7 @@
                         }
                         String charset = detector.getEstimatedCharset();
                         doActuallyReadOneVCard(targetUri, mAccount,
-                                charset, false, detector, mErrorFileNameList);
+                                false, detector, mErrorFileNameList);
                         mProgressDialogForReadVCard.incrementProgressBy(1);
                     }
                 }
@@ -327,20 +335,19 @@
         }
 
         private Uri doActuallyReadOneVCard(Uri uri, Account account,
-                String charset, boolean showEntryParseProgress,
+                boolean showEntryParseProgress,
                 VCardSourceDetector detector, List<String> errorFileNameList) {
             final Context context = ImportVCardActivity.this;
-            VCardEntryConstructor builder;
-            final String currentLanguage = Locale.getDefault().getLanguage();
-            int vcardType = VCardConfig.getVCardTypeFromString(
-                    context.getString(R.string.config_import_vcard_type));
-            if (charset != null) {
-                builder = new VCardEntryConstructor(charset, charset, false, vcardType, mAccount);
-            } else {
-                charset = VCardConfig.DEFAULT_CHARSET;
-                builder = new VCardEntryConstructor(null, null, false, vcardType, mAccount);
+            int vcardType = detector.getEstimatedType();
+            if (vcardType == VCardConfig.VCARD_TYPE_UNKNOWN) {
+                vcardType = VCardConfig.getVCardTypeFromString(
+                        context.getString(R.string.config_import_vcard_type));
             }
-            VCardEntryCommitter committer = new VCardEntryCommitter(mResolver);
+            final String estimatedCharset = detector.getEstimatedCharset();
+            final String currentLanguage = Locale.getDefault().getLanguage();
+            VCardEntryConstructor builder;
+            builder = new VCardEntryConstructor(vcardType, mAccount, estimatedCharset);
+            final VCardEntryCommitter committer = new VCardEntryCommitter(mResolver);
             builder.addEntryHandler(committer);
             if (showEntryParseProgress) {
                 builder.addEntryHandler(new ProgressShower(mProgressDialogForReadVCard,
@@ -350,7 +357,7 @@
             }
 
             try {
-                if (!readOneVCardFile(uri, charset, builder, detector, false, null)) {
+                if (!readOneVCardFile(uri, vcardType, builder, false, null)) {
                     return null;
                 }
             } catch (VCardNestedException e) {
@@ -360,31 +367,42 @@
             return (createdUris == null || createdUris.size() != 1) ? null : createdUris.get(0);
         }
 
-        private boolean readOneVCardFile(Uri uri, String charset,
-                VCardInterpreter builder, VCardSourceDetector detector,
+        /**
+         * Charset should be handled by {@link VCardEntryConstructor}. 
+         */
+        private boolean readOneVCardFile(Uri uri, int vcardType,
+                VCardInterpreter interpreter,
                 boolean throwNestedException, List<String> errorFileNameList)
                 throws VCardNestedException {
             InputStream is;
             try {
                 is = mResolver.openInputStream(uri);
-                mVCardParser = new VCardParser_V21(detector);
+                mVCardParser = new VCardParser_V21(vcardType);
 
                 try {
-                    mVCardParser.parse(is, charset, builder, mCanceled);
+                    mVCardParser.parse(is, interpreter);
                 } catch (VCardVersionException e1) {
                     try {
                         is.close();
                     } catch (IOException e) {
                     }
-                    if (builder instanceof VCardEntryConstructor) {
+                    if (interpreter instanceof VCardEntryConstructor) {
                         // Let the object clean up internal temporal objects,
-                        ((VCardEntryConstructor)builder).clear();
+                        ((VCardEntryConstructor)interpreter).clear();
+                    } else if (interpreter instanceof VCardInterpreterCollection) {
+                        for (VCardInterpreter elem :
+                            ((VCardInterpreterCollection) interpreter).getCollection()) {
+                            if (elem instanceof VCardEntryConstructor) {
+                                ((VCardEntryConstructor)elem).clear();
+                            }
+                        }
                     }
+
                     is = mResolver.openInputStream(uri);
 
                     try {
-                        mVCardParser = new VCardParser_V30();
-                        mVCardParser.parse(is, charset, builder, mCanceled);
+                        mVCardParser = new VCardParser_V30(vcardType);
+                        mVCardParser.parse(is, interpreter);
                     } catch (VCardVersionException e2) {
                         throw new VCardException("vCard with unspported version.");
                     }
diff --git a/src/com/android/contacts/PhoneDisambigDialog.java b/src/com/android/contacts/PhoneDisambigDialog.java
index d8cb14e..3e3d534 100644
--- a/src/com/android/contacts/PhoneDisambigDialog.java
+++ b/src/com/android/contacts/PhoneDisambigDialog.java
@@ -55,18 +55,17 @@
     private Context mContext;
     private AlertDialog mDialog;
     private boolean mSendSms;
+    private int mStickyTab;
     private Cursor mPhonesCursor;
     private ListAdapter mPhonesAdapter;
     private ArrayList<PhoneItem> mPhoneItemList;
 
-    public PhoneDisambigDialog(Context context, Cursor phonesCursor) {
-        this(context, phonesCursor, false /*make call*/);
-    }
-
-    public PhoneDisambigDialog(Context context, Cursor phonesCursor, boolean sendSms) {
+    public PhoneDisambigDialog(Context context, Cursor phonesCursor, boolean sendSms,
+            int stickyTab) {
         mContext = context;
         mSendSms = sendSms;
         mPhonesCursor = phonesCursor;
+        mStickyTab = stickyTab;
 
         mPhoneItemList = makePhoneItemsList(phonesCursor);
         Collapser.collapseList(mPhoneItemList);
@@ -118,6 +117,7 @@
             if (mSendSms) {
                 ContactsUtils.initiateSms(mContext, phone);
             } else {
+                StickyTabs.saveTab(mContext, mStickyTab);
                 ContactsUtils.initiateCall(mContext, phone);
             }
         } else {
diff --git a/src/com/android/contacts/RecentCallsListActivity.java b/src/com/android/contacts/RecentCallsListActivity.java
index ccd1ce3..abda325 100644
--- a/src/com/android/contacts/RecentCallsListActivity.java
+++ b/src/com/android/contacts/RecentCallsListActivity.java
@@ -47,10 +47,12 @@
 import android.os.SystemClock;
 import android.provider.CallLog;
 import android.provider.CallLog.Calls;
-import android.provider.ContactsContract.Intents.Insert;
-import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.PhoneLookup;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Intents.Insert;
+import android.provider.ContactsContract.PhoneLookup;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.TelephonyManager;
 import android.text.SpannableStringBuilder;
@@ -120,9 +122,9 @@
     static final int LABEL_COLUMN_INDEX = 3;
     static final int MATCHED_NUMBER_COLUMN_INDEX = 4;
 
-    private static final int MENU_ITEM_DELETE = 1;
-    private static final int MENU_ITEM_DELETE_ALL = 2;
-    private static final int MENU_ITEM_VIEW_CONTACTS = 3;
+    private static final int MENU_ITEM_DELETE_ALL = 1;
+    private static final int CONTEXT_MENU_ITEM_DELETE = 1;
+    private static final int CONTEXT_MENU_CALL_CONTACT = 2;
 
     private static final int QUERY_TOKEN = 53;
     private static final int UPDATE_TOKEN = 54;
@@ -133,6 +135,8 @@
     private QueryHandler mQueryHandler;
     String mVoiceMailNumber;
 
+    private boolean mScrollToTop;
+
     static final class ContactInfo {
         public long personId;
         public String name;
@@ -208,8 +212,17 @@
         public void onClick(View view) {
             String number = (String) view.getTag();
             if (!TextUtils.isEmpty(number)) {
-                Uri telUri = Uri.fromParts("tel", number, null);
-                startActivity(new Intent(Intent.ACTION_CALL_PRIVILEGED, telUri));
+                // Here, "number" can either be a PSTN phone number or a
+                // SIP address.  So turn it into either a tel: URI or a
+                // sip: URI, as appropriate.
+                Uri callUri;
+                if (PhoneNumberUtils.isUriNumber(number)) {
+                    callUri = Uri.fromParts("sip", number, null);
+                } else {
+                    callUri = Uri.fromParts("tel", number, null);
+                }
+                StickyTabs.saveTab(RecentCallsListActivity.this, getIntent());
+                startActivity(new Intent(Intent.ACTION_CALL_PRIVILEGED, callUri));
             }
         }
 
@@ -342,29 +355,103 @@
             if (info != null && info != ContactInfo.EMPTY) {
                 return true;
             } else {
-                Cursor phonesCursor =
-                    RecentCallsListActivity.this.getContentResolver().query(
-                            Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,
-                                    Uri.encode(ciq.number)),
-                    PHONES_PROJECTION, null, null, null);
-                if (phonesCursor != null) {
-                    if (phonesCursor.moveToFirst()) {
-                        info = new ContactInfo();
-                        info.personId = phonesCursor.getLong(PERSON_ID_COLUMN_INDEX);
-                        info.name = phonesCursor.getString(NAME_COLUMN_INDEX);
-                        info.type = phonesCursor.getInt(PHONE_TYPE_COLUMN_INDEX);
-                        info.label = phonesCursor.getString(LABEL_COLUMN_INDEX);
-                        info.number = phonesCursor.getString(MATCHED_NUMBER_COLUMN_INDEX);
+                // Ok, do a fresh Contacts lookup for ciq.number.
+                boolean infoUpdated = false;
 
-                        // New incoming phone number invalidates our formatted
-                        // cache. Any cache fills happen only on the GUI thread.
-                        info.formattedNumber = null;
+                if (PhoneNumberUtils.isUriNumber(ciq.number)) {
+                    // This "number" is really a SIP address.
 
-                        mContactInfo.put(ciq.number, info);
-                        // Inform list to update this item, if in view
-                        needNotify = true;
+                    // TODO: This code is duplicated from the
+                    // CallerInfoAsyncQuery class.  To avoid that, could the
+                    // code here just use CallerInfoAsyncQuery, rather than
+                    // manually running ContentResolver.query() itself?
+
+                    // We look up SIP addresses directly in the Data table:
+                    Uri contactRef = Data.CONTENT_URI;
+
+                    // Note Data.DATA1 and SipAddress.SIP_ADDRESS are equivalent.
+                    //
+                    // Also note we use "upper(data1)" in the WHERE clause, and
+                    // uppercase the incoming SIP address, in order to do a
+                    // case-insensitive match.
+                    //
+                    // TODO: May also need to normalize by adding "sip:" as a
+                    // prefix, if we start storing SIP addresses that way in the
+                    // database.
+                    String selection = "upper(" + Data.DATA1 + ")=?"
+                            + " AND "
+                            + Data.MIMETYPE + "='" + SipAddress.CONTENT_ITEM_TYPE + "'";
+                    String[] selectionArgs = new String[] { ciq.number.toUpperCase() };
+
+                    Cursor dataTableCursor =
+                            RecentCallsListActivity.this.getContentResolver().query(
+                                    contactRef,
+                                    null,  // projection
+                                    selection,  // selection
+                                    selectionArgs,  // selectionArgs
+                                    null);  // sortOrder
+
+                    if (dataTableCursor != null) {
+                        if (dataTableCursor.moveToFirst()) {
+                            info = new ContactInfo();
+
+                            // TODO: we could slightly speed this up using an
+                            // explicit projection (and thus not have to do
+                            // those getColumnIndex() calls) but the benefit is
+                            // very minimal.
+
+                            // Note the Data.CONTACT_ID column here is
+                            // equivalent to the PERSON_ID_COLUMN_INDEX column
+                            // we use with "phonesCursor" below.
+                            info.personId = dataTableCursor.getLong(
+                                    dataTableCursor.getColumnIndex(Data.CONTACT_ID));
+                            info.name = dataTableCursor.getString(
+                                    dataTableCursor.getColumnIndex(Data.DISPLAY_NAME));
+                            // "type" and "label" are currently unused for SIP addresses
+                            info.type = SipAddress.TYPE_OTHER;
+                            info.label = null;
+
+                            // And "number" is the SIP address.
+                            // Note Data.DATA1 and SipAddress.SIP_ADDRESS are equivalent.
+                            info.number = dataTableCursor.getString(
+                                    dataTableCursor.getColumnIndex(Data.DATA1));
+
+                            infoUpdated = true;
+                        }
+                        dataTableCursor.close();
                     }
-                    phonesCursor.close();
+                } else {
+                    // "number" is a regular phone number, so use the
+                    // PhoneLookup table:
+                    Cursor phonesCursor =
+                            RecentCallsListActivity.this.getContentResolver().query(
+                                Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,
+                                                     Uri.encode(ciq.number)),
+                                PHONES_PROJECTION, null, null, null);
+                    if (phonesCursor != null) {
+                        if (phonesCursor.moveToFirst()) {
+                            info = new ContactInfo();
+                            info.personId = phonesCursor.getLong(PERSON_ID_COLUMN_INDEX);
+                            info.name = phonesCursor.getString(NAME_COLUMN_INDEX);
+                            info.type = phonesCursor.getInt(PHONE_TYPE_COLUMN_INDEX);
+                            info.label = phonesCursor.getString(LABEL_COLUMN_INDEX);
+                            info.number = phonesCursor.getString(MATCHED_NUMBER_COLUMN_INDEX);
+
+                            infoUpdated = true;
+                        }
+                        phonesCursor.close();
+                    }
+                }
+
+                if (infoUpdated) {
+                    // New incoming phone number invalidates our formatted
+                    // cache. Any cache fills happen only on the GUI thread.
+                    info.formattedNumber = null;
+
+                    mContactInfo.put(ciq.number, info);
+
+                    // Inform list to update this item, if in view
+                    needNotify = true;
                 }
             }
             if (info != null) {
@@ -590,15 +677,45 @@
             if (!TextUtils.isEmpty(name)) {
                 views.line1View.setText(name);
                 views.labelView.setVisibility(View.VISIBLE);
-                CharSequence numberLabel = Phone.getDisplayLabel(context, ntype, label,
-                        mLabelArray);
+
+                // "type" and "label" are currently unused for SIP addresses.
+                CharSequence numberLabel = null;
+                if (!PhoneNumberUtils.isUriNumber(number)) {
+                    numberLabel = Phone.getDisplayLabel(context, ntype, label,
+                            mLabelArray);
+                }
                 views.numberView.setVisibility(View.VISIBLE);
                 views.numberView.setText(formattedNumber);
                 if (!TextUtils.isEmpty(numberLabel)) {
                     views.labelView.setText(numberLabel);
                     views.labelView.setVisibility(View.VISIBLE);
+
+                    // Zero out the numberView's left margin (see below)
+                    ViewGroup.MarginLayoutParams numberLP =
+                            (ViewGroup.MarginLayoutParams) views.numberView.getLayoutParams();
+                    numberLP.leftMargin = 0;
+                    views.numberView.setLayoutParams(numberLP);
                 } else {
-                    views.labelView.setVisibility(View.GONE);
+                    // There's nothing to display in views.labelView, so hide it.
+                    // We can't set it to View.GONE, since it's the anchor for
+                    // numberView in the RelativeLayout, so make it INVISIBLE.
+                    //   Also, we need to manually *subtract* some left margin from
+                    // numberView to compensate for the right margin built in to
+                    // labelView (otherwise the number will be indented by a very
+                    // slight amount).
+                    //   TODO: a cleaner fix would be to contain both the label and
+                    // number inside a LinearLayout, and then set labelView *and*
+                    // its padding to GONE when there's no label to display.
+                    views.labelView.setText(null);
+                    views.labelView.setVisibility(View.INVISIBLE);
+
+                    ViewGroup.MarginLayoutParams labelLP =
+                            (ViewGroup.MarginLayoutParams) views.labelView.getLayoutParams();
+                    ViewGroup.MarginLayoutParams numberLP =
+                            (ViewGroup.MarginLayoutParams) views.numberView.getLayoutParams();
+                    // Equivalent to setting android:layout_marginLeft in XML
+                    numberLP.leftMargin = -labelLP.rightMargin;
+                    views.numberView.setLayoutParams(numberLP);
                 }
             } else {
                 if (number.equals(CallerInfo.UNKNOWN_NUMBER)) {
@@ -609,7 +726,8 @@
                     views.callView.setVisibility(View.INVISIBLE);
                 } else if (number.equals(CallerInfo.PAYPHONE_NUMBER)) {
                     number = getString(R.string.payphone);
-                } else if (number.equals(mVoiceMailNumber)) {
+                } else if (PhoneNumberUtils.extractNetworkPortion(number)
+                                .equals(mVoiceMailNumber)) {
                     number = getString(R.string.voicemail);
                 } else {
                     // Just a raw number, and no cache, so format it nicely
@@ -702,6 +820,13 @@
                 final RecentCallsListActivity.RecentCallsAdapter callsAdapter = activity.mAdapter;
                 callsAdapter.setLoading(false);
                 callsAdapter.changeCursor(cursor);
+                if (activity.mScrollToTop) {
+                    if (activity.mList.getFirstVisiblePosition() > 5) {
+                        activity.mList.setSelection(5);
+                    }
+                    activity.mList.smoothScrollToPosition(0);
+                    activity.mScrollToTop = false;
+                }
             } else {
                 cursor.close();
             }
@@ -730,6 +855,12 @@
     }
 
     @Override
+    protected void onStart() {
+        mScrollToTop = true;
+        super.onStart();
+    }
+
+    @Override
     protected void onResume() {
         // The adapter caches looked up numbers, clear it so they will get
         // looked up again.
@@ -798,6 +929,11 @@
             return "";
         }
 
+        // If "number" is really a SIP address, don't try to do any formatting at all.
+        if (PhoneNumberUtils.isUriNumber(number)) {
+            return number;
+        }
+
         // Cache formatting type if not already present
         if (sFormattingType == FORMATTING_TYPE_INVALID) {
             sFormattingType = PhoneNumberUtils.getFormatTypeForLocale(Locale.getDefault());
@@ -853,16 +989,20 @@
         String number = cursor.getString(NUMBER_COLUMN_INDEX);
         Uri numberUri = null;
         boolean isVoicemail = false;
+        boolean isSipNumber = false;
         if (number.equals(CallerInfo.UNKNOWN_NUMBER)) {
             number = getString(R.string.unknown);
         } else if (number.equals(CallerInfo.PRIVATE_NUMBER)) {
             number = getString(R.string.private_num);
         } else if (number.equals(CallerInfo.PAYPHONE_NUMBER)) {
             number = getString(R.string.payphone);
-        } else if (number.equals(mVoiceMailNumber)) {
+        } else if (PhoneNumberUtils.extractNetworkPortion(number).equals(mVoiceMailNumber)) {
             number = getString(R.string.voicemail);
             numberUri = Uri.parse("voicemail:x");
             isVoicemail = true;
+        } else if (PhoneNumberUtils.isUriNumber(number)) {
+            numberUri = Uri.fromParts("sip", number, null);
+            isSipNumber = true;
         } else {
             numberUri = Uri.fromParts("tel", number, null);
         }
@@ -877,31 +1017,45 @@
 
         if (numberUri != null) {
             Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED, numberUri);
-            menu.add(0, 0, 0, getResources().getString(R.string.recentCalls_callNumber, number))
+            menu.add(0, CONTEXT_MENU_CALL_CONTACT, 0,
+                    getResources().getString(R.string.recentCalls_callNumber, number))
                     .setIntent(intent);
         }
 
         if (contactInfoPresent) {
-            menu.add(0, 0, 0, R.string.menu_viewContact)
-                    .setIntent(new Intent(Intent.ACTION_VIEW,
-                            ContentUris.withAppendedId(Contacts.CONTENT_URI, info.personId)));
+            Intent intent = new Intent(Intent.ACTION_VIEW,
+                    ContentUris.withAppendedId(Contacts.CONTENT_URI, info.personId));
+            StickyTabs.setTab(intent, getIntent());
+            menu.add(0, 0, 0, R.string.menu_viewContact).setIntent(intent);
         }
 
-        if (numberUri != null && !isVoicemail) {
+        if (numberUri != null && !isVoicemail && !isSipNumber) {
             menu.add(0, 0, 0, R.string.recentCalls_editNumberBeforeCall)
                     .setIntent(new Intent(Intent.ACTION_DIAL, numberUri));
             menu.add(0, 0, 0, R.string.menu_sendTextMessage)
                     .setIntent(new Intent(Intent.ACTION_SENDTO,
                             Uri.fromParts("sms", number, null)));
         }
-        if (!contactInfoPresent && numberUri != null && !isVoicemail) {
+
+        // "Add to contacts" item, if this entry isn't already associated with a contact
+        if (!contactInfoPresent && numberUri != null && !isVoicemail && !isSipNumber) {
+            // TODO: This item is currently disabled for SIP addresses, because
+            // the Insert.PHONE extra only works correctly for PSTN numbers.
+            //
+            // To fix this for SIP addresses, we need to:
+            // - define ContactsContract.Intents.Insert.SIP_ADDRESS, and use it here if
+            //   the current number is a SIP address
+            // - update the contacts UI code to handle Insert.SIP_ADDRESS by
+            //   updating the SipAddress field
+            // and then we can remove the "!isSipNumber" check above.
+
             Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
             intent.setType(Contacts.CONTENT_ITEM_TYPE);
             intent.putExtra(Insert.PHONE, number);
             menu.add(0, 0, 0, R.string.recentCalls_addToContact)
                     .setIntent(intent);
         }
-        menu.add(0, MENU_ITEM_DELETE, 0, R.string.recentCalls_removeFromRecentList);
+        menu.add(0, CONTEXT_MENU_ITEM_DELETE, 0, R.string.recentCalls_removeFromRecentList);
     }
 
     @Override
@@ -935,30 +1089,23 @@
                 showDialog(DIALOG_CONFIRM_DELETE_ALL);
                 return true;
             }
-
-            case MENU_ITEM_VIEW_CONTACTS: {
-                Intent intent = new Intent(Intent.ACTION_VIEW, Contacts.CONTENT_URI);
-                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                startActivity(intent);
-                return true;
-            }
         }
         return super.onOptionsItemSelected(item);
     }
 
     @Override
     public boolean onContextItemSelected(MenuItem item) {
-        // Convert the menu info to the proper type
-        AdapterView.AdapterContextMenuInfo menuInfo;
-        try {
-             menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
-        } catch (ClassCastException e) {
-            Log.e(TAG, "bad menuInfoIn", e);
-            return false;
-        }
-
         switch (item.getItemId()) {
-            case MENU_ITEM_DELETE: {
+            case CONTEXT_MENU_ITEM_DELETE: {
+                // Convert the menu info to the proper type
+                AdapterView.AdapterContextMenuInfo menuInfo;
+                try {
+                     menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
+                } catch (ClassCastException e) {
+                    Log.e(TAG, "bad menuInfoIn", e);
+                    return false;
+                }
+
                 Cursor cursor = (Cursor)mAdapter.getItem(menuInfo.position);
                 int groupSize = 1;
                 if (mAdapter.isGroupHeader(menuInfo.position)) {
@@ -977,9 +1124,17 @@
 
                 getContentResolver().delete(Calls.CONTENT_URI, Calls._ID + " IN (" + sb + ")",
                         null);
+                return true;
+            }
+            case CONTEXT_MENU_CALL_CONTACT: {
+                StickyTabs.saveTab(this, getIntent());
+                startActivity(item.getIntent());
+                return true;
+            }
+            default: {
+                return super.onContextItemSelected(item);
             }
         }
-        return super.onContextItemSelected(item);
     }
 
     @Override
@@ -1070,8 +1225,8 @@
             // most recent entry.
             position = 0;
         }
-        final Cursor cursor = mAdapter.getCursor();
-        if (cursor != null && cursor.moveToPosition(position)) {
+        final Cursor cursor = (Cursor)mAdapter.getItem(position);
+        if (cursor != null) {
             String number = cursor.getString(NUMBER_COLUMN_INDEX);
             if (TextUtils.isEmpty(number)
                     || number.equals(CallerInfo.UNKNOWN_NUMBER)
@@ -1080,16 +1235,25 @@
                 // This number can't be called, do nothing
                 return;
             }
-
-            int callType = cursor.getInt(CALL_TYPE_COLUMN_INDEX);
-            if (!number.startsWith("+") &&
-                    (callType == Calls.INCOMING_TYPE
-                            || callType == Calls.MISSED_TYPE)) {
-                // If the caller-id matches a contact with a better qualified number, use it
-                number = getBetterNumberFromContacts(number);
+            Intent intent;
+            // If "number" is really a SIP address, construct a sip: URI.
+            if (PhoneNumberUtils.isUriNumber(number)) {
+                intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
+                                    Uri.fromParts("sip", number, null));
+            } else {
+                // We're calling a regular PSTN phone number.
+                // Construct a tel: URI, but do some other possible cleanup first.
+                int callType = cursor.getInt(CALL_TYPE_COLUMN_INDEX);
+                if (!number.startsWith("+") &&
+                       (callType == Calls.INCOMING_TYPE
+                                || callType == Calls.MISSED_TYPE)) {
+                    // If the caller-id matches a contact with a better qualified number, use it
+                    number = getBetterNumberFromContacts(number);
+                }
+                intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
+                                    Uri.fromParts("tel", number, null));
             }
-            Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
-                    Uri.fromParts("tel", number, null));
+            StickyTabs.saveTab(this, getIntent());
             intent.setFlags(
                     Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
             startActivity(intent);
@@ -1103,6 +1267,7 @@
         } else {
             Intent intent = new Intent(this, CallDetailActivity.class);
             intent.setData(ContentUris.withAppendedId(CallLog.Calls.CONTENT_URI, id));
+            StickyTabs.setTab(intent, getIntent());
             startActivity(intent);
         }
     }
diff --git a/src/com/android/contacts/StickyTabs.java b/src/com/android/contacts/StickyTabs.java
new file mode 100644
index 0000000..4ecc970
--- /dev/null
+++ b/src/com/android/contacts/StickyTabs.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.contacts;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.provider.ContactsContract.QuickContact;
+import android.util.Log;
+
+/**
+ * Utility class to annotate Intents with extra data required for the Sticky-Tab behavior, which
+ * allows storing the app to go to the last tab that was used to make a call. Also handles saving
+ * and restoring the tab index
+ */
+public final class StickyTabs {
+    private static final String TAG = "StickyTabs";
+    private static final boolean LOGV = false;
+
+    private static final String EXTRA_TAB_INDEX =
+            QuickContact.EXTRA_SELECTED_CONTACTS_APP_TAB_INDEX;
+
+    /**
+     * Name of the shared setting. We are using the same name as in FroYo to prevent
+     * having an orphan here
+     */
+    public static final String PREFERENCES_NAME = "dialtacts";
+
+    /**
+     * Name of the shared setting. We are using the same name as in FroYo to prevent
+     * having an orphan there
+     */
+    private static final String PREF_LAST_PHONECALL_TAB = "last_manually_selected_tab";
+
+    /**
+     * Writes the selected tab to the passed intent
+     * @param intent The intent to modify.
+     * @param tabIndex The tab index to write to the intent
+     * @return Returns the modified intent. Notice that this is not a new instance (the passed-in
+     * intent is modified)
+     */
+    public static Intent setTab(Intent intent, int tabIndex) {
+        if (LOGV) Log.v(TAG, "*********** Setting tab index of intent to " + tabIndex);
+
+        if (tabIndex == -1) {
+            intent.removeExtra(EXTRA_TAB_INDEX);
+        } else {
+            intent.putExtra(EXTRA_TAB_INDEX, tabIndex);
+        }
+        return intent;
+    }
+
+    /**
+     * Writes the selected tab to the passed intent by retrieving it from the originalIntent that
+     * was passed in
+     * @param intent The intent to modify.
+     * @param originalIntent The intent where the tab index should be read from
+     * @return Returns the modified intent. Notice that this is not a new instance (the passed-in
+     * intent is modified)
+     */
+    public static Intent setTab(Intent intent, Intent originalIntent) {
+        return setTab(intent, getTab(originalIntent));
+    }
+
+    /**
+     * Returns the selected tab or -1 if no tab is stored
+     */
+    public static int getTab(Intent intent) {
+        if (intent.getExtras() == null) return -1;
+        return intent.getExtras().getInt(EXTRA_TAB_INDEX, -1);
+    }
+
+    /**
+     * Persists the given tabIndex. If the value is -1, the previously persisted value is not
+     * overriden
+     */
+    public static void saveTab(Context context, int tabIndex) {
+        if (LOGV) Log.v(TAG, "*********** Persisting tab index " + tabIndex);
+        if (tabIndex == -1) return;
+
+        final SharedPreferences.Editor editor =
+            context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE).edit();
+        editor.putInt(PREF_LAST_PHONECALL_TAB, tabIndex);
+        editor.apply();
+    }
+
+    /**
+     * Persists the tab as it is stored in the Intent. If the intent does not have a tab index,
+     * the persisted value is not overriden
+     */
+    public static void saveTab(Context context, Intent intent) {
+        saveTab(context, getTab(intent));
+    }
+
+    /**
+     * Returns the previously persisted tab or defaultValue if nothing is saved
+     */
+    public static int loadTab(Context context, int defaultValue) {
+        final SharedPreferences prefs = context.getSharedPreferences(PREFERENCES_NAME,
+                Context.MODE_PRIVATE);
+        final int result = prefs.getInt(PREF_LAST_PHONECALL_TAB, defaultValue);
+        if (LOGV) Log.v(TAG, "*********** Loaded tab index: " + result);
+        return result;
+    }
+}
diff --git a/src/com/android/contacts/TwelveKeyDialer.java b/src/com/android/contacts/TwelveKeyDialer.java
index 07927de..5219d99 100644
--- a/src/com/android/contacts/TwelveKeyDialer.java
+++ b/src/com/android/contacts/TwelveKeyDialer.java
@@ -302,6 +302,7 @@
         if (Intent.ACTION_DIAL.equals(action) || Intent.ACTION_VIEW.equals(action)) {
             // see if we are "adding a call" from the InCallScreen; false by default.
             mIsAddCallMode = intent.getBooleanExtra(ADD_CALL_MODE_KEY, false);
+
             Uri uri = intent.getData();
             if (uri != null) {
                 if ("tel".equals(uri.getScheme())) {
@@ -324,6 +325,16 @@
                         }
                     }
                 }
+            } else {
+                // ACTION_DIAL or ACTION_VIEW with no data.
+                // This behaves basically like ACTION_MAIN: If there's
+                // already an active call, bring up an intermediate UI to
+                // make the user confirm what they really want to do.
+                // Be sure *not* to show the dialpad chooser if this is an
+                // explicit "Add call" action, though.
+                if (!mIsAddCallMode && phoneIsInUse()) {
+                    needToShowDialpadChooser = true;
+                }
             }
         } else if (Intent.ACTION_MAIN.equals(action)) {
             // The MAIN action means we're bringing up a blank dialer
@@ -763,6 +774,7 @@
     }
 
     void callVoicemail() {
+        StickyTabs.saveTab(this, getIntent());
         Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
                 Uri.fromParts("voicemail", EMPTY_NUMBER, null));
         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
@@ -799,6 +811,7 @@
             intent.setData(Uri.fromParts("tel", number, null));
         }
 
+        StickyTabs.saveTab(this, getIntent());
         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         startActivity(intent);
         mDigits.getText().clear();
diff --git a/src/com/android/contacts/ViewContactActivity.java b/src/com/android/contacts/ViewContactActivity.java
index ead6a4a..eeb0a0d 100644
--- a/src/com/android/contacts/ViewContactActivity.java
+++ b/src/com/android/contacts/ViewContactActivity.java
@@ -68,6 +68,7 @@
 import android.provider.ContactsContract.CommonDataKinds.Note;
 import android.provider.ContactsContract.CommonDataKinds.Organization;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
 import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
 import android.provider.ContactsContract.CommonDataKinds.Website;
 import android.telephony.PhoneNumberUtils;
@@ -112,6 +113,7 @@
     private static final int REQUEST_EDIT_CONTACT = 2;
 
     public static final int MENU_ITEM_MAKE_DEFAULT = 3;
+    public static final int MENU_ITEM_CALL = 4;
 
     protected Uri mLookupUri;
     private ContentResolver mResolver;
@@ -216,6 +218,7 @@
         mContactHeaderWidget.setExcludeMimes(new String[] {
             Contacts.CONTENT_ITEM_TYPE
         });
+        mContactHeaderWidget.setSelectedContactsAppTabIndex(StickyTabs.getTab(getIntent()));
 
         mHandler = new NotifyingAsyncQueryHandler(this, this);
 
@@ -567,7 +570,7 @@
         ViewEntry entry = ContactEntryAdapter.getEntry(mSections, info.position, SHOW_SEPARATORS);
         menu.setHeaderTitle(R.string.contactOptionsTitle);
         if (entry.mimetype.equals(CommonDataKinds.Phone.CONTENT_ITEM_TYPE)) {
-            menu.add(0, 0, 0, R.string.menu_call).setIntent(entry.intent);
+            menu.add(0, MENU_ITEM_CALL, 0, R.string.menu_call).setIntent(entry.intent);
             menu.add(0, 0, 0, R.string.menu_sendSMS).setIntent(entry.secondaryIntent);
             if (!entry.isPrimary) {
                 menu.add(0, MENU_ITEM_MAKE_DEFAULT, 0, R.string.menu_makeDefaultNumber);
@@ -650,14 +653,18 @@
     public boolean onContextItemSelected(MenuItem item) {
         switch (item.getItemId()) {
             case MENU_ITEM_MAKE_DEFAULT: {
-                if (makeItemDefault(item)) {
-                    return true;
-                }
-                break;
+                makeItemDefault(item);
+                return true;
+            }
+            case MENU_ITEM_CALL: {
+                StickyTabs.saveTab(this, getIntent());
+                startActivity(item.getIntent());
+                return true;
+            }
+            default: {
+                return super.onContextItemSelected(item);
             }
         }
-
-        return super.onContextItemSelected(item);
     }
 
     private boolean makeItemDefault(MenuItem item) {
@@ -782,9 +789,10 @@
                 int index = mListView.getSelectedItemPosition();
                 if (index != -1) {
                     ViewEntry entry = ViewAdapter.getEntry(mSections, index, SHOW_SEPARATORS);
-                    if (entry != null &&
+                    if (entry != null && entry.intent != null &&
                             entry.intent.getAction() == Intent.ACTION_CALL_PRIVILEGED) {
                         startActivity(entry.intent);
+                        StickyTabs.saveTab(this, getIntent());
                         return true;
                     }
                 } else if (mPrimaryPhoneUri != null) {
@@ -792,6 +800,7 @@
                     final Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
                             mPrimaryPhoneUri);
                     startActivity(intent);
+                    StickyTabs.saveTab(this, getIntent());
                     return true;
                 }
                 return false;
@@ -819,6 +828,9 @@
         if (entry != null) {
             Intent intent = entry.intent;
             if (intent != null) {
+                if (Intent.ACTION_CALL_PRIVILEGED.equals(intent.getAction())) {
+                    StickyTabs.saveTab(this, getIntent());
+                }
                 try {
                     startActivity(intent);
                 } catch (ActivityNotFoundException e) {
@@ -1004,7 +1016,7 @@
                         entry.maxLines = 100;
                         mOtherEntries.add(entry);
                     } else if (Website.CONTENT_ITEM_TYPE.equals(mimeType) && hasData) {
-                        // Build note entries
+                        // Build Website entries
                         entry.uri = null;
                         entry.maxLines = 10;
                         try {
@@ -1015,6 +1027,19 @@
                             Log.e(TAG, "Couldn't parse website: " + entry.data);
                         }
                         mOtherEntries.add(entry);
+                    } else if (SipAddress.CONTENT_ITEM_TYPE.equals(mimeType) && hasData) {
+                        // Build SipAddress entries
+                        entry.uri = null;
+                        entry.maxLines = 1;
+                        entry.intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
+                                Uri.fromParts(Constants.SCHEME_SIP, entry.data, null));
+                        mOtherEntries.add(entry);
+                        // TODO: Consider moving the SipAddress into its own
+                        // section (rather than lumping it in with mOtherEntries)
+                        // so that we can reposition it right under the phone number.
+                        // (Then, we'd also update FallbackSource.java to set
+                        // secondary=false for this field, and tweak the weight
+                        // of its DataKind.)
                     } else {
                         // Handle showing custom rows
                         entry.intent = new Intent(Intent.ACTION_VIEW, entry.uri);
diff --git a/src/com/android/contacts/model/FallbackSource.java b/src/com/android/contacts/model/FallbackSource.java
index 9cc855c..f36752a 100644
--- a/src/com/android/contacts/model/FallbackSource.java
+++ b/src/com/android/contacts/model/FallbackSource.java
@@ -32,6 +32,7 @@
 import android.provider.ContactsContract.CommonDataKinds.Organization;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
 import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
 import android.provider.ContactsContract.CommonDataKinds.Website;
@@ -56,6 +57,9 @@
     protected static final int FLAGS_POSTAL = EditorInfo.TYPE_CLASS_TEXT
             | EditorInfo.TYPE_TEXT_VARIATION_POSTAL_ADDRESS | EditorInfo.TYPE_TEXT_FLAG_CAP_WORDS
             | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE;
+    protected static final int FLAGS_SIP_ADDRESS = EditorInfo.TYPE_CLASS_TEXT
+            | EditorInfo.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;  // since SIP addresses have the same
+                                                             // basic format as email addresses
 
     public FallbackSource() {
         this.accountType = null;
@@ -77,6 +81,7 @@
         inflateNote(context, inflateLevel);
         inflateWebsite(context, inflateLevel);
         inflateEvent(context, inflateLevel);
+        inflateSipAddress(context, inflateLevel);
 
         setInflatedLevel(inflateLevel);
 
@@ -435,6 +440,36 @@
         return kind;
     }
 
+    protected DataKind inflateSipAddress(Context context, int inflateLevel) {
+        DataKind kind = getKindForMimetype(SipAddress.CONTENT_ITEM_TYPE);
+        if (kind == null) {
+            // The icon specified here is the one that gets displayed for
+            // "Internet call" items, in the "view contact" UI within the
+            // Contacts app.
+            //
+            // This is independent of the "SIP call" icon that gets
+            // displayed in the Quick Contacts widget, which comes from
+            // the android:icon attribute of the SIP-related
+            // intent-filters in the Phone app's manifest.
+
+            kind = addKind(new DataKind(SipAddress.CONTENT_ITEM_TYPE,
+                    R.string.label_sip_address, android.R.drawable.sym_action_call, 130, true));
+
+            kind.isList = false;
+            kind.secondary = true;
+            kind.actionHeader = new SimpleInflater(R.string.label_sip_address);
+            kind.actionBody = new SimpleInflater(SipAddress.SIP_ADDRESS);
+        }
+
+        if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) {
+            kind.fieldList = Lists.newArrayList();
+            kind.fieldList.add(new EditField(SipAddress.SIP_ADDRESS,
+                                             R.string.label_sip_address, FLAGS_SIP_ADDRESS));
+        }
+
+        return kind;
+    }
+
     /**
      * Simple inflater that assumes a string resource has a "%s" that will be
      * filled from the given column.
diff --git a/src/com/android/contacts/model/GoogleSource.java b/src/com/android/contacts/model/GoogleSource.java
index 90abc92..d6dfbb6 100644
--- a/src/com/android/contacts/model/GoogleSource.java
+++ b/src/com/android/contacts/model/GoogleSource.java
@@ -66,6 +66,7 @@
         inflateNote(context, inflateLevel);
         inflateWebsite(context, inflateLevel);
         inflateEvent(context, inflateLevel);
+        inflateSipAddress(context, inflateLevel);
 
         // TODO: GOOGLE: GROUPMEMBERSHIP
 
@@ -74,16 +75,6 @@
     }
 
     @Override
-    protected DataKind inflateStructuredName(Context context, int inflateLevel) {
-        return super.inflateStructuredName(context, inflateLevel);
-    }
-
-    @Override
-    protected DataKind inflateNickname(Context context, int inflateLevel) {
-        return super.inflateNickname(context, inflateLevel);
-    }
-
-    @Override
     protected DataKind inflatePhone(Context context, int inflateLevel) {
         final DataKind kind = super.inflatePhone(context, ContactsSource.LEVEL_MIMETYPES);
 
@@ -127,36 +118,6 @@
         return kind;
     }
 
-    @Override
-    protected DataKind inflateStructuredPostal(Context context, int inflateLevel) {
-        return super.inflateStructuredPostal(context, inflateLevel);
-    }
-
-    @Override
-    protected DataKind inflateIm(Context context, int inflateLevel) {
-        return super.inflateIm(context, inflateLevel);
-    }
-
-    @Override
-    protected DataKind inflateOrganization(Context context, int inflateLevel) {
-        return super.inflateOrganization(context, inflateLevel);
-    }
-
-    @Override
-    protected DataKind inflatePhoto(Context context, int inflateLevel) {
-        return super.inflatePhoto(context, inflateLevel);
-    }
-
-    @Override
-    protected DataKind inflateNote(Context context, int inflateLevel) {
-        return super.inflateNote(context, inflateLevel);
-    }
-
-    @Override
-    protected DataKind inflateWebsite(Context context, int inflateLevel) {
-        return super.inflateWebsite(context, inflateLevel);
-    }
-
     // TODO: this should come from resource in the future
     // Note that frameworks/base/core/java/android/pim/vcard/VCardEntry.java also wants
     // this String.
diff --git a/src/com/android/contacts/ui/ContactsPreferences.java b/src/com/android/contacts/ui/ContactsPreferences.java
index 49a49ef..14c6e05 100644
--- a/src/com/android/contacts/ui/ContactsPreferences.java
+++ b/src/com/android/contacts/ui/ContactsPreferences.java
@@ -21,6 +21,7 @@
 import android.content.ContentResolver;
 import android.content.Context;
 import android.database.ContentObserver;
+import android.os.Handler;
 import android.provider.ContactsContract;
 import android.provider.Settings;
 import android.provider.Settings.SettingNotFoundException;
@@ -28,20 +29,17 @@
 /**
  * Manages user preferences for contacts.
  */
-public final class ContactsPreferences  {
-
+public final class ContactsPreferences extends ContentObserver {
     private Context mContext;
-    private ContentResolver mContentResolver;
     private int mSortOrder = -1;
     private int mDisplayOrder = -1;
-    private SettingsObserver mSettingsObserver;
+    private ChangeListener mListener = null;
+    private Handler mHandler;
 
     public ContactsPreferences(Context context) {
+        super(null);
         mContext = context;
-        mContentResolver = context.getContentResolver();
-
-        mSettingsObserver = new SettingsObserver();
-        mSettingsObserver.register();
+        mHandler = new Handler();
     }
 
     public boolean isSortOrderUserChangeable() {
@@ -112,27 +110,45 @@
                 ContactsContract.Preferences.DISPLAY_ORDER, displayOrder);
     }
 
-    private class SettingsObserver extends ContentObserver {
+    public void registerChangeListener(ChangeListener listener) {
+        if (mListener != null) unregisterChangeListener();
 
-        public SettingsObserver() {
-            super(null);
+        // We didn't watch before, so ensure that we actually forget our cache here
+        mSortOrder = -1;
+        mDisplayOrder = -1;
+
+        mListener = listener;
+        final ContentResolver contentResolver = mContext.getContentResolver();
+        contentResolver.registerContentObserver(
+                Settings.System.getUriFor(
+                        ContactsContract.Preferences.SORT_ORDER), false, this);
+        contentResolver.registerContentObserver(
+                Settings.System.getUriFor(
+                        ContactsContract.Preferences.DISPLAY_ORDER), false, this);
+    }
+
+    public void unregisterChangeListener() {
+        if (mListener != null) {
+            mContext.getContentResolver().unregisterContentObserver(this);
+            mListener = null;
         }
+    }
 
-        public void register() {
-            mContentResolver.registerContentObserver(
-                    Settings.System.getUriFor(
-                            ContactsContract.Preferences.SORT_ORDER), false, this);
-            mContentResolver.registerContentObserver(
-                    Settings.System.getUriFor(
-                            ContactsContract.Preferences.DISPLAY_ORDER), false, this);
-        }
+    @Override
+    public void onChange(boolean selfChange) {
+        // This notification is not sent on the Ui thread. Use the previously created Handler
+        // to switch to the Ui thread
+        mHandler.post(new Runnable() {
+            @Override
+            public void run() {
+                mSortOrder = -1;
+                mDisplayOrder = -1;
+                if (mListener != null) mListener.onChange();
+            }
+        });
+    }
 
-        @Override
-        public void onChange(boolean selfChange) {
-            mSortOrder = -1;
-            mDisplayOrder = -1;
-
-            // TODO send a message to parent context to notify of the change
-        }
+    public interface ChangeListener {
+        void onChange();
     }
 }
diff --git a/src/com/android/contacts/ui/ContactsPreferencesActivity.java b/src/com/android/contacts/ui/ContactsPreferencesActivity.java
index 5a89745..6bc9be8 100644
--- a/src/com/android/contacts/ui/ContactsPreferencesActivity.java
+++ b/src/com/android/contacts/ui/ContactsPreferencesActivity.java
@@ -245,7 +245,6 @@
         };
 
         return new AlertDialog.Builder(this)
-            .setIcon(com.android.internal.R.drawable.ic_dialog_menu_generic)
             .setTitle(R.string.display_options_sort_list_by)
             .setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int whichButton) {
@@ -264,7 +263,6 @@
         };
 
         return new AlertDialog.Builder(this)
-            .setIcon(com.android.internal.R.drawable.ic_dialog_menu_generic)
             .setTitle(R.string.display_options_view_names_as)
             .setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int whichButton) {
@@ -845,7 +843,7 @@
 
         Editor editor = mPrefs.edit();
         editor.putBoolean(Prefs.DISPLAY_ONLY_PHONES, displayOnlyPhones);
-        editor.commit();
+        editor.apply();
 
         mAdapter.setChildDescripWithPhones(displayOnlyPhones);
         mAdapter.notifyDataSetChanged();
diff --git a/src/com/android/contacts/ui/EditContactActivity.java b/src/com/android/contacts/ui/EditContactActivity.java
index 3e248ea..e37aade 100644
--- a/src/com/android/contacts/ui/EditContactActivity.java
+++ b/src/com/android/contacts/ui/EditContactActivity.java
@@ -144,6 +144,7 @@
     private static final int STATUS_SAVING = 2;
 
     private int mStatus;
+    private boolean mActivityActive;  // true after onCreate/onResume, false at onPause
 
     EntitySet mState;
 
@@ -172,6 +173,8 @@
         // Handle initial actions only when existing state missing
         final boolean hasIncomingState = icicle != null && icicle.containsKey(KEY_EDIT_STATE);
 
+        mActivityActive = true;
+
         if (Intent.ACTION_EDIT.equals(action) && !hasIncomingState) {
             setTitle(R.string.editContact_title_edit);
             mStatus = STATUS_LOADING;
@@ -191,6 +194,18 @@
         }
     }
 
+    @Override
+    protected void onResume() {
+        super.onResume();
+        mActivityActive = true;
+    }
+
+    @Override
+    protected void onPause() {
+        super.onResume();
+        mActivityActive = false;
+    }
+
     private static class QueryEntitiesTask extends
             WeakAsyncTask<Intent, Void, EntitySet, EditContactActivity> {
 
@@ -1211,6 +1226,10 @@
 
         @Override
         protected void onPostExecute(final EditContactActivity target, ArrayList<Account> accounts) {
+            if (!target.mActivityActive) {
+                // A monkey or very fast user.
+                return;
+            }
             target.selectAccountAndCreateContact(accounts);
         }
     }
diff --git a/src/com/android/contacts/ui/QuickContactActivity.java b/src/com/android/contacts/ui/QuickContactActivity.java
index 7f6e39b..ec8f44d 100644
--- a/src/com/android/contacts/ui/QuickContactActivity.java
+++ b/src/com/android/contacts/ui/QuickContactActivity.java
@@ -16,6 +16,8 @@
 
 package com.android.contacts.ui;
 
+import com.android.contacts.StickyTabs;
+
 import android.app.Activity;
 import android.content.ContentUris;
 import android.content.Intent;
@@ -61,6 +63,7 @@
             if (LOGV) Log.d(TAG, "Preparing window");
             mQuickContact = new QuickContactWindow(this, this);
         }
+        mQuickContact.setLastSelectedContactsAppTab(StickyTabs.getTab(intent));
 
         // Use our local window token for now
         Uri lookupUri = intent.getData();
diff --git a/src/com/android/contacts/ui/QuickContactWindow.java b/src/com/android/contacts/ui/QuickContactWindow.java
index 20d5bfd..889749e 100644
--- a/src/com/android/contacts/ui/QuickContactWindow.java
+++ b/src/com/android/contacts/ui/QuickContactWindow.java
@@ -20,6 +20,7 @@
 import com.android.contacts.ContactPresenceIconUtil;
 import com.android.contacts.ContactsUtils;
 import com.android.contacts.R;
+import com.android.contacts.StickyTabs;
 import com.android.contacts.model.ContactsSource;
 import com.android.contacts.model.Sources;
 import com.android.contacts.model.ContactsSource.DataKind;
@@ -55,6 +56,7 @@
 import android.provider.ContactsContract.CommonDataKinds.Im;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
 import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
 import android.provider.ContactsContract.CommonDataKinds.Website;
 import android.text.TextUtils;
@@ -156,6 +158,9 @@
     private OnDismissListener mDismissListener;
     private ResolveCache mResolveCache;
 
+    /** Last selected tab of the Dialtacs-Activity. This is -1 if not called out of contacts app */
+    private int mLastSelectedContactsAppTab;
+
     private Uri mLookupUri;
     private Rect mAnchor;
 
@@ -217,6 +222,7 @@
      */
     private static final String[] PRECEDING_MIMETYPES = new String[] {
             Phone.CONTENT_ITEM_TYPE,
+            SipAddress.CONTENT_ITEM_TYPE,
             Contacts.CONTENT_ITEM_TYPE,
             Constants.MIME_SMS_ADDRESS,
             Email.CONTENT_ITEM_TYPE,
@@ -319,6 +325,10 @@
         mDismissListener = dismissListener;
     }
 
+    public void setLastSelectedContactsAppTab(int value) {
+        mLastSelectedContactsAppTab = value;
+    }
+
     private View getHeaderView(int mode) {
         View header = null;
         switch (mode) {
@@ -770,7 +780,18 @@
                     final Uri callUri = Uri.fromParts(Constants.SCHEME_TEL, number, null);
                     mIntent = new Intent(Intent.ACTION_CALL_PRIVILEGED, callUri);
                 }
-
+            } else if (SipAddress.CONTENT_ITEM_TYPE.equals(mimeType)) {
+                final String address = getAsString(cursor, SipAddress.SIP_ADDRESS);
+                if (!TextUtils.isEmpty(address)) {
+                    final Uri callUri = Uri.fromParts(Constants.SCHEME_SIP, address, null);
+                    mIntent = new Intent(Intent.ACTION_CALL_PRIVILEGED, callUri);
+                    // Note that this item will get a SIP-specific variant
+                    // of the "call phone" icon, rather than the standard
+                    // app icon for the Phone app (which we show for
+                    // regular phone numbers.)  That's because the phone
+                    // app explicitly specifies an android:icon attribute
+                    // for the SIP-related intent-filters in its manifest.
+                }
             } else if (Constants.MIME_SMS_ADDRESS.equals(mimeType)) {
                 final String number = getAsString(cursor, Phone.NUMBER);
                 if (!TextUtils.isEmpty(number)) {
@@ -1423,6 +1444,10 @@
             final Action action = (Action)tag;
             final boolean makePrimary = mMakePrimary;
 
+            if (Intent.ACTION_CALL_PRIVILEGED.equals(action.getIntent().getAction())) {
+                StickyTabs.saveTab(mContext, mLastSelectedContactsAppTab);
+            }
+
             try {
                 mContext.startActivity(action.getIntent());
             } catch (ActivityNotFoundException e) {
diff --git a/src/com/android/contacts/util/Constants.java b/src/com/android/contacts/util/Constants.java
index e0178ad..a94608b 100644
--- a/src/com/android/contacts/util/Constants.java
+++ b/src/com/android/contacts/util/Constants.java
@@ -35,5 +35,6 @@
     public static final String SCHEME_SMSTO = "smsto";
     public static final String SCHEME_MAILTO = "mailto";
     public static final String SCHEME_IMTO = "imto";
+    public static final String SCHEME_SIP = "sip";
 
 }