Merge "Update swisscomm 144/118 emergency number routing" into udc-dev
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 34cf960..520c0de 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -599,7 +599,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Hovor, během něhož můžete posílat zprávy (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Povolit posílání zpráv během hlasového hovoru"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Funkce Okamžitý text (RTT) pomáhá volajícím, kteří neslyší, jsou nedoslýchaví, mají řečovou vadu, případně potřebují víc než jen hlas z jiného důvodu.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Další informace&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – Text poslaný během hovoru se uloží jako přepis zpráv\n       &lt;br&gt; – Tato funkce není dostupná při videohovorech"</string>
-    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Použít: Funkce SMS během hovoru není dostupná při roamingu"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Použít: Funkce Okamžitý text není dostupná při roamingu"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY vypnuto"</item>
     <item msgid="1449091874731375214">"Úplný režim TTY"</item>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 5eb0da3..b582c63 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -661,7 +661,7 @@
     <string name="description_dial_button" msgid="8614631902795087259">"شماره گیری"</string>
     <string name="description_dialpad_button" msgid="7395114120463883623">"نمایش صفحه شماره گیری"</string>
     <string name="pane_title_emergency_dialpad" msgid="3627372514638694401">"صفحه شماره‌گیری اضطراری"</string>
-    <string name="voicemail_visual_voicemail_switch_title" msgid="6610414098912832120">"پست صوتی تصویری"</string>
+    <string name="voicemail_visual_voicemail_switch_title" msgid="6610414098912832120">"پست صوتی دیداری"</string>
     <string name="voicemail_set_pin_dialog_title" msgid="7005128605986960003">"تنظیم پین"</string>
     <string name="voicemail_change_pin_dialog_title" msgid="4633077715231764435">"تغییر پین"</string>
     <string name="preference_category_ringtone" msgid="8787281191375434976">"آهنگ‌ زنگ و لرزش"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 472317f..a10c8f2 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -561,7 +561,7 @@
     <string name="emergency_information_hint" msgid="9208897544917793012">"Төтенше жағдайға арналған ақпарат"</string>
     <string name="emergency_information_owner_hint" msgid="6256909888049185316">"Иесі"</string>
     <string name="emergency_information_confirm_hint" msgid="5109017615894918914">"Ақпаратты көру үшін қайта түртіңіз"</string>
-    <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"Төтенше қоңырау"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"Құтқару қызметіне қоңырау шалу"</string>
     <string name="single_emergency_number_title" msgid="8413371079579067196">"Төтенше жағдай қызметі"</string>
     <string name="numerous_emergency_numbers_title" msgid="8972398932506755510">"Төтенше жағдай қызметтері"</string>
     <string name="emergency_call_shortcut_hint" msgid="1290485125107779500">"<xliff:g id="EMERGENCY_NUMBER">%s</xliff:g> нөміріне қоңырау шалу үшін, түймені қайта түртіңіз"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 9272c31..3777d6d 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -835,7 +835,7 @@
     <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Жарандык радио кызматынын дайындары"</string>
     <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS\'ти иштетүү"</string>
     <string name="dsds_dialog_title" msgid="8494569893941847575">"Түзмөк өчүп күйсүнбү?"</string>
-    <string name="dsds_dialog_message" msgid="4047480385678538850">"Бул жөндөөнү өзгөртүү үчүн түзмөгүңүздү өчүрүп күйгүзүңүз."</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Бул параметрди өзгөртүү үчүн түзмөгүңүздү өчүрүп күйгүзүңүз."</string>
     <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Өчүрүп-күйгүзүү"</string>
     <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Жокко чыгаруу"</string>
     <string name="removable_esim_string" msgid="7931369811671787649">"Чыгарылуучу eSIM-картаны демейки катары коюу"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 3ee9043..8ef3956 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -511,7 +511,7 @@
     <string name="invalidPin2" msgid="6467957903056379343">"4 देखि 8 नम्बरको एक PIN2 प्रविष्टि गर्नुहोस्।"</string>
     <string name="invalidPuk2" msgid="713729511903849544">"8 नम्बरको एक PUK2 प्रविष्टि गर्नुहोस्।"</string>
     <string name="pin2_changed" msgid="5710551850481287821">"PIN2 अद्यावधिक गरियो"</string>
-    <string name="label_puk2_code" msgid="2852217004288085562">"PUK2 कोड प्रविष्टि गर्नुहोस्"</string>
+    <string name="label_puk2_code" msgid="2852217004288085562">"PUK2 कोड हाल्नुहोस्"</string>
     <string name="fdn_enable_puk2_requested" msgid="5793652792131588041">"पासवर्ड गलत छ। PIN2 अहिले ब्लक गरिएको छ। पिन 2 परिवर्तन, फेरि प्रयास गर्नुहोस्।"</string>
     <string name="puk2_requested" msgid="6992374450720307514">"पासवर्ड गलत छ। सिम अब ब्लक गरिएको छ। PUK2 प्रविष्टि गर्नुहोस्।"</string>
     <string name="puk2_blocked" msgid="3131139031779319911">"PUK2 स्थायी रूपमा रोक्का गरियो।"</string>
@@ -620,7 +620,7 @@
     <string name="ota_hfa_activation_dialog_message" msgid="7921718445773342996">"फोनले तपाईँको मोबाइल डेटा सेवा सक्रिय पार्दै छ। \n\nयसले ५ मिनेटसम्म समय लिन सक्छ।"</string>
     <string name="ota_skip_activation_dialog_title" msgid="7666611236789203797">"सक्रिया गर्ने काम छोड्ने हो?"</string>
     <string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"यदि तपाईं सक्रियता छोड्नुहुन्छ भने तपाईं कल वा मोबाइल डेटा नेटवर्क (तपाईं Wi-Fi नेटवर्क जडान गर्न सक्नु हुन्छ) बाट जडान गर्न सक्नु हुन्छ। तपाईंले आफ्नो फोनलाई सक्रिय गर्ने बेलासम्म तपाईं यसलाई हरेक पटक खोल्ने गर्नुहोस्।"</string>
-    <string name="ota_skip_activation_dialog_skip_label" msgid="5908029466817825633">"छोड्नुहोस्"</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="5908029466817825633">"स्किप गर्नुहोस्"</string>
     <string name="ota_activate" msgid="7939695753665438357">"सक्रिय बनाउनुहोस्"</string>
     <string name="ota_title_activate_success" msgid="1272135024761004889">"फोन सक्रिय भएको छ।"</string>
     <string name="ota_title_problem_with_activation" msgid="7019745985413368726">"सक्रिय पार्दा समस्या"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 7376d37..d02c1f1 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -928,9 +928,7 @@
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Beëindigde SIP-accounts"</string>
     <string name="send_from_work_profile_title" msgid="7044759579507604732">"Kan geen berichten sturen vanuit een app voor persoonlijke doeleinden"</string>
     <string name="send_from_work_profile_description" msgid="2174402508727161974">"Je organisatie staat je alleen toe om berichten te sturen vanuit werk-apps"</string>
-    <!-- no translation found for send_from_work_profile_cancel (177746511030381711) -->
-    <skip />
-    <!-- no translation found for send_from_work_profile_action_str (6892775562934243337) -->
-    <skip />
+    <string name="send_from_work_profile_cancel" msgid="177746511030381711">"Annuleren"</string>
+    <string name="send_from_work_profile_action_str" msgid="6892775562934243337">"Overschakelen naar werkprofiel"</string>
     <string name="install_messages_on_work_profile_action_str" msgid="3773440996395152903">"Werk-app voor berichten installeren"</string>
 </resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 39f5ce3..f0f50bb 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -40,7 +40,7 @@
     <string name="audio_mode_bluetooth" msgid="25732183428018809">"బ్లూటూత్"</string>
     <string name="wait_prompt_str" msgid="5136209532150094910">"కింది టోన్‌లు పంపాలా?\n"</string>
     <string name="pause_prompt_str" msgid="2308897950360272213">"టోన్‌లు పంపుతోంది\n"</string>
-    <string name="send_button" msgid="5070379600779031932">"పంపు"</string>
+    <string name="send_button" msgid="5070379600779031932">"పంపండి"</string>
     <string name="pause_prompt_yes" msgid="8184132073048369575">"అవును"</string>
     <string name="pause_prompt_no" msgid="2145264674774138579">"లేదు"</string>
     <string name="wild_prompt_str" msgid="5858910969703305375">"దీనితో వైల్డ్ అక్షరాన్ని భర్తీ చేయండి"</string>
@@ -561,7 +561,7 @@
     <string name="emergency_information_hint" msgid="9208897544917793012">"అత్యవసర సమాచారం"</string>
     <string name="emergency_information_owner_hint" msgid="6256909888049185316">"యజమాని"</string>
     <string name="emergency_information_confirm_hint" msgid="5109017615894918914">"సమాచారాన్ని చూడడానికి మళ్లీ నొక్కండి"</string>
-    <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"అత్యవసర కాల్"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"ఎమర్జెన్సీ కాల్"</string>
     <string name="single_emergency_number_title" msgid="8413371079579067196">"అత్యవసర నంబర్"</string>
     <string name="numerous_emergency_numbers_title" msgid="8972398932506755510">"అత్యవసర నంబర్‌లు"</string>
     <string name="emergency_call_shortcut_hint" msgid="1290485125107779500">"<xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>కు కాల్ చేయడానికి మళ్లీ నొక్కండి"</string>
diff --git a/src/com/android/phone/CdmaCallForwardOptions.java b/src/com/android/phone/CdmaCallForwardOptions.java
index a8d2e93..d70e709 100644
--- a/src/com/android/phone/CdmaCallForwardOptions.java
+++ b/src/com/android/phone/CdmaCallForwardOptions.java
@@ -17,10 +17,13 @@
 package com.android.phone;
 
 import android.app.ActionBar;
+import android.content.ContentProvider;
 import android.content.Intent;
 import android.database.Cursor;
 import android.os.Bundle;
 import android.os.PersistableBundle;
+import android.os.Process;
+import android.os.UserHandle;
 import android.preference.Preference;
 import android.preference.PreferenceScreen;
 import android.telephony.CarrierConfigManager;
@@ -212,6 +215,15 @@
         }
         Cursor cursor = null;
         try {
+            // check if the URI returned by the user belongs to the user
+            final int currentUser = UserHandle.getUserId(Process.myUid());
+            if (currentUser
+                    != ContentProvider.getUserIdFromUri(data.getData(), currentUser)) {
+
+                Log.w(LOG_TAG, "onActivityResult: Contact data of different user, "
+                        + "cannot access");
+                return;
+            }
             cursor = getContentResolver().query(data.getData(),
                 NUM_PROJECTION, null, null, null);
             if ((cursor == null) || (!cursor.moveToFirst())) {
diff --git a/src/com/android/phone/GsmUmtsCallForwardOptions.java b/src/com/android/phone/GsmUmtsCallForwardOptions.java
index fda0ea5..db830de 100644
--- a/src/com/android/phone/GsmUmtsCallForwardOptions.java
+++ b/src/com/android/phone/GsmUmtsCallForwardOptions.java
@@ -1,10 +1,13 @@
 package com.android.phone;
 
 import android.app.ActionBar;
+import android.content.ContentProvider;
 import android.content.Intent;
 import android.database.Cursor;
 import android.os.Bundle;
 import android.os.PersistableBundle;
+import android.os.Process;
+import android.os.UserHandle;
 import android.preference.Preference;
 import android.preference.PreferenceScreen;
 import android.telephony.CarrierConfigManager;
@@ -203,6 +206,15 @@
         }
         Cursor cursor = null;
         try {
+            // check if the URI returned by the user belongs to the user
+            final int currentUser = UserHandle.getUserId(Process.myUid());
+            if (currentUser
+                    != ContentProvider.getUserIdFromUri(data.getData(), currentUser)) {
+
+                Log.w(LOG_TAG, "onActivityResult: Contact data of different user, "
+                        + "cannot access");
+                return;
+            }
             cursor = getContentResolver().query(data.getData(),
                 NUM_PROJECTION, null, null, null);
             if ((cursor == null) || (!cursor.moveToFirst())) {
diff --git a/src/com/android/phone/settings/VoicemailSettingsActivity.java b/src/com/android/phone/settings/VoicemailSettingsActivity.java
index 02bf4b2..c940748 100644
--- a/src/com/android/phone/settings/VoicemailSettingsActivity.java
+++ b/src/com/android/phone/settings/VoicemailSettingsActivity.java
@@ -17,6 +17,7 @@
 package com.android.phone.settings;
 
 import android.app.Dialog;
+import android.content.ContentProvider;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.database.Cursor;
@@ -25,6 +26,8 @@
 import android.os.Handler;
 import android.os.Message;
 import android.os.PersistableBundle;
+import android.os.Process;
+import android.os.UserHandle;
 import android.os.UserManager;
 import android.preference.Preference;
 import android.preference.PreferenceActivity;
@@ -520,6 +523,17 @@
 
             Cursor cursor = null;
             try {
+                // check if the URI returned by the user belongs to the user
+                final int currentUser = UserHandle.getUserId(Process.myUid());
+                if (currentUser
+                        != ContentProvider.getUserIdFromUri(data.getData(), currentUser)) {
+
+                    if (DBG) {
+                        log("onActivityResult: Contact data of different user, "
+                                + "cannot access");
+                    }
+                    return;
+                }
                 cursor = getContentResolver().query(data.getData(),
                     new String[] { CommonDataKinds.Phone.NUMBER }, null, null, null);
                 if ((cursor == null) || (!cursor.moveToFirst())) {
diff --git a/src/com/android/phone/settings/fdn/EditFdnContactScreen.java b/src/com/android/phone/settings/fdn/EditFdnContactScreen.java
index 468d38f..0884e12 100644
--- a/src/com/android/phone/settings/fdn/EditFdnContactScreen.java
+++ b/src/com/android/phone/settings/fdn/EditFdnContactScreen.java
@@ -19,6 +19,7 @@
 
 import static android.app.Activity.RESULT_OK;
 
+import android.content.ContentProvider;
 import android.content.ContentValues;
 import android.content.Intent;
 import android.content.res.Resources;
@@ -26,6 +27,8 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.PersistableBundle;
+import android.os.Process;
+import android.os.UserHandle;
 import android.provider.ContactsContract.CommonDataKinds;
 import android.telephony.CarrierConfigManager;
 import android.telephony.PhoneNumberUtils;
@@ -137,6 +140,14 @@
                 }
                 Cursor cursor = null;
                 try {
+                    // check if the URI returned by the user belongs to the user
+                    final int currentUser = UserHandle.getUserId(Process.myUid());
+                    if (currentUser
+                            != ContentProvider.getUserIdFromUri(intent.getData(), currentUser)) {
+                        Log.w(LOG_TAG, "onActivityResult: Contact data of different user, "
+                                + "cannot access");
+                        return;
+                    }
                     cursor = getContentResolver().query(intent.getData(),
                         NUM_PROJECTION, null, null, null);
                     if ((cursor == null) || (!cursor.moveToFirst())) {