Merge "Let the framework handle long clicks"
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 953ea45..e1d7969 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -1618,7 +1618,7 @@
     <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Aquesta funció és experimental i pot afectar el rendiment."</string>
     <string name="accessibility_autoclick_preference_title" msgid="7014499339068449623">"Clic quan el punter deixi de moure\'s"</string>
     <string name="accessibility_autoclick_delay_preference_title" msgid="3962261178385106006">"Retard abans de fer clic"</string>
-    <string name="enable_quick_setting" msgid="2366999897816894536">"Mostra a la configuració ràpida"</string>
+    <string name="enable_quick_setting" msgid="2366999897816894536">"Mostra a Configuració ràpida"</string>
     <string name="daltonizer_type" msgid="1124178250809091080">"Mode de correcció"</string>
     <string name="daltonizer_type_overridden" msgid="3116947244410245916">"S\'ha substituït per <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="daltonizer_mode_disabled" msgid="7482661936053801862">"Desactivat"</string>
@@ -2823,7 +2823,7 @@
     <string name="process_format" msgid="77905604092541454">"<xliff:g id="APP_NAME">%1$s</xliff:g> (<xliff:g id="COUNT">%2$d</xliff:g>)"</string>
     <string name="high_power_apps" msgid="3459065925679828230">"Optimització de la bateria"</string>
     <string name="high_power_filter_on" msgid="3222265297576680099">"No optimitzen la bateria"</string>
-    <string name="high_power_on" msgid="6216293998227583810">"No optimitzada"</string>
+    <string name="high_power_on" msgid="6216293998227583810">"No optimitzen la bateria"</string>
     <string name="high_power_off" msgid="3393904131961263278">"Optimitza l\'ús de la bateria"</string>
     <string name="high_power_system" msgid="7362862974428225301">"L\'optimització de la bateria no està disponible"</string>
     <string name="high_power_desc" msgid="6283926163708585760">"No s\'aplica l\'optimització de la bateria. És possible que es consumeixi més ràpidament."</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index ac2097f..c958ec4 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -2537,7 +2537,7 @@
     <string name="keywords_all_apps" msgid="5377153522551809915">"App-System für App-Download"</string>
     <string name="keywords_app_permissions" msgid="8677901415217188314">"App-Berechtigungen – Sicherheit"</string>
     <string name="keywords_default_apps" msgid="3581727483175522599">"Apps-Standardeinstellung"</string>
-    <string name="keywords_ignore_optimizations" msgid="946516741848647905">"Ignorieren Optimierungen Stromsparmodus App Standby"</string>
+    <string name="keywords_ignore_optimizations" msgid="946516741848647905">"Ignorieren Optimierungen Stromsparmodus App-Standby"</string>
     <string name="keywords_color_mode" msgid="4670570451841540200">"brillant rgb srgb farbe natürlich standard"</string>
     <string name="keywords_lockscreen" msgid="4806191868723291541">"ziehen passwort muster pin slide password pattern"</string>
     <string name="setup_wifi_nfc_tag" msgid="9028353016222911016">"WLAN-NFC-Tag einrichten"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index d74abee..2c1bb2b 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -2676,7 +2676,7 @@
     <string name="zen_mode_summary_always" msgid="6172985102689237703">"Cambiar a interrumpir siempre"</string>
     <string name="notification_settings_apps_title" msgid="1125354590652967250">"Notif. aplicaciones"</string>
     <string name="notification_app_settings_button" msgid="6685640230371477485">"Ajustes de notificaciones"</string>
-    <string name="device_feedback" msgid="3238056036766293294">"Dar tu opinión sobre el dispositivo"</string>
+    <string name="device_feedback" msgid="3238056036766293294">"Enviar sugerencias sobre el dispositivo"</string>
     <string name="restr_pin_enter_admin_pin" msgid="2451187374960131018">"Introduce el PIN del administrador"</string>
     <string name="switch_on_text" msgid="1124106706920572386">"Sí"</string>
     <string name="switch_off_text" msgid="1139356348100829659">"No"</string>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index d70f134..9989d20 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -28,7 +28,7 @@
       <item quantity="other">अहिले तपाईँ विकासकर्ता हुनका लागि <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> चरण टाढा हुनुहुन्छ।</item>
       <item quantity="one">अहिले तपाईँ विकासकर्ता हुनका लागि <xliff:g id="STEP_COUNT_0">%1$d</xliff:g> चरण टाढा हुनुहुन्छ।</item>
     </plurals>
-    <string name="show_dev_on" msgid="1110711554982716293">"तपाईं अब एउटा विकासकर्ता हुनुहुन्छ!"</string>
+    <string name="show_dev_on" msgid="1110711554982716293">"तपाईँ अब एउटा विकासकर्ता हुनुहुन्छ!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"आवश्यक छैन, तपाईँ आफैँ नै एउटा विकासकर्ता हुनुहुन्छ।"</string>
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"ताररहित र सञ्जालहरू"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"जडानहरू"</string>
@@ -126,7 +126,7 @@
     <string name="bluetooth_ask_discovery" product="tablet" msgid="786921566047356213">"एक अनुप्रयोगले तपाईँको ट्याब्लेटलाई अन्य ब्लुटुथ उपकरणहरूले हेर्न मिल्ने बनाउन चाहन्छ<xliff:g id="TIMEOUT">%1$d</xliff:g> सेकेन्डका लागि।"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="5510358858113713272">"एउटा अनुप्रयोगले तपाईंको फोन अन्य ब्लुटुथ उपकरणहरूमा <xliff:g id="TIMEOUT">%1$d</xliff:g> सेकेन्डको लागि प्रदर्शन गर्न चाहन्छ।"</string>
     <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="8863617309580598607">"एउटा अनुप्रयोगले तपाईँको ट्याब्लेटलाई अन्य ब्लुटुथ उपकरणहरूमा लागि देखिने बनाउन खोजिरहेको छ। तपाईँले यसलाई पछि ब्लुटुथ सेटिङहरूमा परिवर्तन गर्न सक्नु हुन्छ।"</string>
-    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="6487606808683607975">"एउटा अनुप्रयोगले तपाईंको फोनलाई अन्य ब्लुटुथ उपकरणहरूमा प्रदर्शन गर्न चाहन्छ। तपाईं यसलाई पछि ब्लुटुथ सेटिङहरूमा परिवर्तन गर्न सक्नुहुने छ।"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="6487606808683607975">"एउटा अनुप्रयोगले तपाईँको फोनलाई अन्य ब्लुटुथ उपकरणहरूमा प्रदर्शन गर्न चाहन्छ। तपाईँ यसलाई पछि ब्लुटुथ सेटिङहरूमा परिवर्तन गर्न सक्नुहुने छ।"</string>
     <string name="bluetooth_ask_start_broadcast" product="default" msgid="3535628155254187911">"नजिकको अरू उपकरणहरू सँग कुराकानी गर्न <xliff:g id="APP_NAME">%1$s</xliff:g> ले ब्लूटूथ प्रसारण खोल्न चाहन्छ। तपाईँले पछि यसलाई ब्लूटूथ सेटिङ्हरूमा बदल्न सक्नुहुन्छ।"</string>
     <string name="bluetooth_ask_enablement_and_start_broadcast" product="default" msgid="8810858601242763295">"<xliff:g id="APP_NAME">%1$s</xliff:g> नजिकैको अन्य उपकरणको साथ कुराकानी गर्न ब्लूटूथ वा ब्लूटूथ प्रसारण खोल्न चाहन्छ। तपाईँले पछि यसलाई ब्लूटूथ सेटिङ्हरूमा बदल्न सक्नुहुन्छ।"</string>
     <string name="bluetooth_broadcasting_explaination" product="default" msgid="4249322115655011799">"जब यो विशेषता सक्रिय हुन्छ, तपाईँको फोनले नजिकको अरू उपकरणहरू सँग कुराकानी गर्न सक्छ। \n\nप्रसारणलेे कम उर्जा लाग्ने ब्लुटुथ संकेतहरु प्रयोग गर्छ।"</string>
@@ -344,14 +344,14 @@
     <string name="security_settings_fingerprint_enroll_repeat_title" msgid="4327640138658832625">"अति उत्तम! अब दोहोर्‍याउनुहोस्।"</string>
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4232813847507193627">"तपाईंको फिंगरप्रिन्टको सबै फरक भागहरु थप्न आफ्नो औंला बिस्तारै सार्नुहोस्"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="4798692662828257300">"औँठाछाप थपियो!"</string>
-    <string name="security_settings_fingerprint_enroll_finish_message" msgid="835496875787664316">"तपाईं यस आइकन जहिले देख्नुहुन्छ, तपाईं पहिचानको लागि वा एक खरीद अधिकारको निम्ति आफ्नो औठाछाप प्रयोग गर्न सक्नुहुन्छ।"</string>
+    <string name="security_settings_fingerprint_enroll_finish_message" msgid="835496875787664316">"तपाईँ यस आइकन जहिले देख्नुहुन्छ, तपाईँ पहिचानको लागि वा एक खरीद अधिकारको निम्ति आफ्नो औठाछाप प्रयोग गर्न सक्नुहुन्छ।"</string>
     <string name="setup_fingerprint_enroll_finish_message" msgid="7234264291957984004">"जगाउन र तपाईँको यन्त्रलाई अनलक गर्न फिंगरप्रिन्ट सेन्सरमा छुनुहोस्।"</string>
     <string name="setup_fingerprint_enroll_finish_message_secondary" msgid="7280546429133276374">"तपाईँले यो आइकन देखेको बेला तपाईँ आफ्नो फिंगरप्रिन्ट प्रयोग गर्न सक्नुहुन्छ।"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"फिंगरप्रिन्ट सेटअप छोड्न चाहनुहुन्छ?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"तपाईँले आफ्नो फोन अनलक गर्ने एक तरिका रूपमा फिंगरप्रिन्ट छान्‍नुभएको छ। यदि तपाईँले अहिले छोड्नु भएमा पछि पुन: सेटअप गर्न पर्नेछ। सेटअप गर्न मात्र केहि मिनेट लाग्‍नेछ।"</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"स्क्रिन लक सेटअप गर्नुहोस्"</string>
     <string name="security_settings_fingerprint_enroll_done" msgid="4014607378328187567">"सम्पन्न भयो"</string>
-    <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="1863561601428695160">"आच्यौं, त्यो सेन्सर होईन नि त"</string>
+    <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="1863561601428695160">"आच्यौं, त्यो सेन्सर होइन नि त"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="5053971232594165142">"तपाईँको यन्त्रमा फिंगरप्रिन्ट सेन्सर प्रयोग गर्नुहोस्।"</string>
     <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="3618021988442639280">"दर्ता पूर्ण भएको थिएन"</string>
     <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="2942551158278899627">"फिंगरप्रिन्ट दर्ताको समय सीमा पुग्यो। पुन: प्रयास गर्नुहोस्।"</string>
@@ -883,11 +883,11 @@
     <string name="sim_change_data_title" msgid="294357201685244532">"डेटा सिम परिवर्तन गर्नुहुन्छ?"</string>
     <string name="sim_change_data_message" msgid="1313940695939674633">"सेलुलर डेटाको लागि <xliff:g id="OLD_SIM">%2$s</xliff:g> को सट्टा <xliff:g id="NEW_SIM">%1$s</xliff:g> प्रयोग गर्नुहुन्छ?"</string>
     <string name="sim_preferred_title" msgid="5567909634636045268">"प्रमुख SIM कार्ड अपडेट गर्ने?"</string>
-    <string name="sim_preferred_message" msgid="301251431163650167">"तपाईंको उपकरणमा <xliff:g id="NEW_SIM">%1$s</xliff:g> SIM मात्र छ। के तपाईं सेलुलर डाटा, कल, र SMS सन्देशहरूका लागि यो SIM प्रयोग गर्न चाहनुहुन्छ?"</string>
+    <string name="sim_preferred_message" msgid="301251431163650167">"तपाईँको उपकरणमा <xliff:g id="NEW_SIM">%1$s</xliff:g> SIM मात्र छ। के तपाईँ सेलुलर डाटा, कल, र SMS सन्देशहरूका लागि यो SIM प्रयोग गर्न चाहनुहुन्छ?"</string>
     <string name="wrong_pin_code_pukked" msgid="4003655226832658066">"SIM PIN कोड गलत छ तपाईंले अाफ्नो उपकरण खोल्नलाई तपाईंको वाहकसँग सम्पर्क गर्नै पर्दर्छ।"</string>
     <plurals name="wrong_pin_code" formatted="false" msgid="1582398808893048097">
-      <item quantity="other"> गलत SIM PIN कोड, तपाईं सँग <xliff:g id="NUMBER_1">%d</xliff:g> पटक प्रयास बाँकी छ।</item>
-      <item quantity="one">SIM PIN कोड गलत छ, तपाईंले अाफ्नो यन्त्र खोल्नलाई तपाईंको वाहकसँग सम्पर्क गर्नै पर्न अघि तपाईंसँग <xliff:g id="NUMBER_0">%d</xliff:g> पटक प्रयास बाँकी छ।</item>
+      <item quantity="other"> गलत SIM PIN कोड, तपाईँ सँग <xliff:g id="NUMBER_1">%d</xliff:g> पटक प्रयास बाँकी छ।</item>
+      <item quantity="one">SIM PIN कोड गलत छ, तपाईँले अाफ्नो यन्त्र खोल्नलाई तपाईँको वाहकसँग सम्पर्क गर्नै पर्न अघि तपाईँसँग <xliff:g id="NUMBER_0">%d</xliff:g> पटक प्रयास बाँकी छ।</item>
     </plurals>
     <string name="pin_failed" msgid="1848423634948587645">"SIM PIN कार्य बिफल भयो!"</string>
     <string name="device_info_settings" product="tablet" msgid="1119755927536987178">"ट्याब्लेट वस्तुस्थिति"</string>
@@ -1055,7 +1055,7 @@
     <string name="storage_wizard_move_progress_title" msgid="4443920302548035674">"सार्दै <xliff:g id="APP">^1</xliff:g>..."</string>
     <string name="storage_wizard_move_progress_body" msgid="7802577486578105609">"सार्ने क्रममा <xliff:g id="NAME">^1</xliff:g> नहटाउनुहोस्। \n\nसार्ने क्रम पूरा नहुन्जेल सम्म यो यन्त्रको<xliff:g id="APP">^2</xliff:g> अनुप्रयोग उपलब्ध हुने छैन।"</string>
     <string name="storage_wizard_move_progress_cancel" msgid="542047237524588792">"सार्ने कार्य रद्द गर्नुहोस्"</string>
-    <string name="storage_wizard_slow_body" msgid="8010127667184768025">"यो <xliff:g id="NAME_0">^1</xliff:g> सुस्त जस्तो देखिन्छ। \n\n तपाईं जारी राख्न सक्नुहुन्छ, तर यस स्थानमा सारिएका अनुप्रयोगहरू अड्किन सक्छ र डेटा स्थानान्तरणले लामो समय लिन सक्छ। \n\nराम्रो प्रदर्शनको लागि थप छिटो <xliff:g id="NAME_1">^1</xliff:g> प्रयोग गर्ने विचार गर्नुहोस्।"</string>
+    <string name="storage_wizard_slow_body" msgid="8010127667184768025">"यो <xliff:g id="NAME_0">^1</xliff:g> सुस्त जस्तो देखिन्छ। \n\n तपाईँ जारी राख्न सक्नुहुन्छ, तर यस स्थानमा सारिएका अनुप्रयोगहरू अड्किन सक्छ र डेटा स्थानान्तरणले लामो समय लिन सक्छ। \n\nराम्रो प्रदर्शनको लागि थप छिटो <xliff:g id="NAME_1">^1</xliff:g> प्रयोग गर्ने विचार गर्नुहोस्।"</string>
     <string name="battery_status_title" msgid="9159414319574976203">"ब्याट्रि स्थिति"</string>
     <string name="battery_level_title" msgid="2965679202786873272">"ब्याट्रि स्तर"</string>
     <string name="apn_settings" msgid="3743170484827528406">"APNs"</string>
@@ -1218,7 +1218,7 @@
     <string name="regulatory_information" msgid="5695464367088752150">"नियमित जानकारी"</string>
     <string name="copyright_title" msgid="865906688917260647">"प्रतिलिपि अधिकार"</string>
     <string name="license_title" msgid="1990487604356037871">"इजाजतपत्र"</string>
-    <string name="terms_title" msgid="7697580845616764642">"सेवाका सर्तहरू"</string>
+    <string name="terms_title" msgid="7697580845616764642">"सेवा सर्तहरू"</string>
     <string name="webview_license_title" msgid="2813507464175738967">"प्रणाली वेबभ्यु लाइसेन्स"</string>
     <string name="wallpaper_attributions" msgid="3645880512943433928">"वालपेपरहरु"</string>
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"स्याटलाइट कल्पना प्रदायकहरू:\n©२०१४ CNES / Astrium, DigitalGlobe, Bluesky"</string>
@@ -1394,7 +1394,7 @@
     <string name="app_special_disable_dlg_title" msgid="2690148680327142674">"डेटा हटाएर अनुप्रयोग असक्षम पार्ने हो?"</string>
     <string name="app_special_disable_dlg_text" msgid="1007112763234313018">"तपाईँले यो अनुप्रयोग असक्षम गर्नुभयो भने अन्य अनुप्रयोगहरू अब चाहेजस्तो कार्य नगर्न सक्छ। तपाईँको डेटा पनि मेटाइने छ।"</string>
     <string name="app_disable_notifications_dlg_title" msgid="7669264654851761857">"सूचनाहरू बन्द गर्नुहोस्?"</string>
-    <string name="app_disable_notifications_dlg_text" msgid="5088484670924769845">"यदि तपाईं यस अनुप्रयोगको लागि सूचनाहरू बन्द गर्नुहुन्छ, तपाईंले महत्त्वपूर्ण अलर्ट र अपडेटहरू गुमाउन सक्नुहुने छ।"</string>
+    <string name="app_disable_notifications_dlg_text" msgid="5088484670924769845">"यदि तपाईँ यस अनुप्रयोगको लागि सूचनाहरू बन्द गर्नुहुन्छ, तपाईँले महत्त्वपूर्ण अलर्ट र अपडेटहरू गुमाउन सक्नुहुने छ।"</string>
     <string name="app_ops_settings" msgid="5108481883575527511">"अनुप्रयोग संचालन"</string>
     <string name="app_ops_running" msgid="7706949900637284122">"चालु भइरहेको"</string>
     <string name="app_ops_never_used" msgid="9114608022906887802">"(कहिल्यै प्रयोग नभएको)"</string>
@@ -1442,7 +1442,7 @@
     <string name="process_service_in_use_description" msgid="8993335064403217080">"सेवा <xliff:g id="COMP_NAME">%1$s</xliff:g> प्रयोगमा छ।"</string>
     <string name="process_provider_in_use_description" msgid="5586603325677678940">"प्रदायक <xliff:g id="COMP_NAME">%1$s</xliff:g> प्रयोगमा छ।"</string>
     <string name="runningservicedetails_stop_dlg_title" msgid="4253292537154337233">"प्रणाली सेवा रोक्नुहोस्?"</string>
-    <string name="runningservicedetails_stop_dlg_text" product="tablet" msgid="3371302398335665793">"यदि तपाईं यो सेवा रोक्नुहुन्छ भने तपाईंको ट्याब्लेटका केही सुविधाहरूले तपाईंले पावर बन्द गरेर फेरि नखोलेसम्म काम नगर्न सक्दछ।"</string>
+    <string name="runningservicedetails_stop_dlg_text" product="tablet" msgid="3371302398335665793">"यदि तपाईँ यो सेवा रोक्नुहुन्छ भने तपाईँको ट्याब्लेटका केही सुविधाहरूले तपाईँले पावर बन्द गरेर फेरि नखोलेसम्म काम नगर्न सक्दछ।"</string>
     <string name="runningservicedetails_stop_dlg_text" product="default" msgid="3920243762189484756">"यदि तपाईँले यस सेवालाई बन्द गर्नु भएको खण्डमा तपाईँको फोनका केही सुविधाहरू सही तवरले काम गर्न बन्द गर्न सक्छन् तबसम्म तपाईँले फेरि यसलाई पावर बन्द गरी फेरि सुरु गर्नु हुन्न।"</string>
     <string name="language_settings" msgid="5292716747264442359">"भाषा र इनपुट"</string>
     <string name="language_keyboard_settings_title" msgid="243220021717425813">"भाषा र इनपुट"</string>
@@ -1686,8 +1686,8 @@
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"यदि तपाईंले <xliff:g id="SERVICE">%1$s</xliff:g> खोल्नुभयो भने, आफ्नो उपकरणले डेटा गुप्तिकरण अभिवृद्धि गर्न स्क्रिन लक प्रयोग गर्ने छैन।"</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"आफ्नो उपकरणले डेटा गुप्तिकरण अभिवृद्धि गर्न स्क्रिन लक प्रयोग गर्ने छैन, किनभने तपाईंले पहुँच सेवा खोल्नुभएको छ।"</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"किनभने <xliff:g id="SERVICE">%1$s</xliff:g> सेवा प्रयोग गर्दा डेटा गुप्तिकरणमा असर गर्छ, तपाईंले आफ्नो प्याटर्न पुष्टि गर्न आवश्यक छ।"</string>
-    <string name="enable_service_pin_reason" msgid="7882035264853248228">"किनभने <xliff:g id="SERVICE">%1$s</xliff:g> सेवा प्रयोग गर्दा डेटा गुप्तिकरणमा असर गर्छ, तपाईं आफ्नो PIN पुष्टि गर्न आवश्यक छ।"</string>
-    <string name="enable_service_password_reason" msgid="1224075277603097951">"किनभने <xliff:g id="SERVICE">%1$s</xliff:g> सेबा प्रयोग गर्दा डेटा गुप्तिकरणमा असर गर्छ, तपाईं आफ्नो पासवर्ड पुष्टि गर्न आवश्यक छ।"</string>
+    <string name="enable_service_pin_reason" msgid="7882035264853248228">"किनभने <xliff:g id="SERVICE">%1$s</xliff:g> सेवा प्रयोग गर्दा डेटा गुप्तिकरणमा असर गर्छ, तपाईँ आफ्नो PIN पुष्टि गर्न आवश्यक छ।"</string>
+    <string name="enable_service_password_reason" msgid="1224075277603097951">"किनभने <xliff:g id="SERVICE">%1$s</xliff:g> सेबा प्रयोग गर्दा डेटा गुप्तिकरणमा असर गर्छ, तपाईँ आफ्नो पासवर्ड पुष्टि गर्न आवश्यक छ।"</string>
     <string name="capability_title_receiveAccessibilityEvents" msgid="1869032063969970755">"तपाईँका कार्यहरूको अवलोकन गर्नुहोस्"</string>
     <string name="capability_desc_receiveAccessibilityEvents" msgid="6640333613848713883">"कुनै अनुप्रयोगसँग अन्तरक्रिया गर्दा सूचना प्राप्त गर्नुहोस्।"</string>
     <string name="disable_service_title" msgid="3624005212728512896">"<xliff:g id="SERVICE">%1$s</xliff:g>बन्द गर्नुहुन्छ?"</string>
@@ -2362,7 +2362,7 @@
     <string name="user_confirm_remove_title" msgid="1163721647646152032">"यो प्रयोगकर्ता हटाउने?"</string>
     <string name="user_profile_confirm_remove_title" msgid="5573161550669867342">"यो प्रोफाइल हटाउने?"</string>
     <string name="work_profile_confirm_remove_title" msgid="2017323555783522213">"कार्य प्रोफाइल हटाउने?"</string>
-    <string name="user_confirm_remove_self_message" product="tablet" msgid="2391372805233812410">"तपाईं यस ट्याब्लेटमा आफ्नो ठाउँ र डेटा हराउनु हुने छ। तपाईं यो कार्यलाई अन्डु गर्न सक्नुहुन्न।"</string>
+    <string name="user_confirm_remove_self_message" product="tablet" msgid="2391372805233812410">"तपाईँ यस ट्याब्लेटमा आफ्नो ठाउँ र डेटा हराउनु हुने छ। तपाईँ यो कार्यलाई अन्डु गर्न सक्नुहुन्न।"</string>
     <string name="user_confirm_remove_self_message" product="default" msgid="7943645442479360048">"तपाईँ यस फोनमा तपाईँको ठाउँ र डेटा गुमाउनु हुने छ। तपाईँ यो कार्य पूर्ववत बनाउन सक्नु हुन्न।"</string>
     <string name="user_confirm_remove_message" msgid="1020629390993095037">"सबै अनुप्रयोगहरू र डेटा मेटाइनेछन्।"</string>
     <string name="work_profile_confirm_remove_message" msgid="323856589749078140">"यदि तपाईँले जारी राख्नुभयो भने यो प्रोफाइलका सबै अनुप्रयोगहरू र डेटा मेटाइने छन्।"</string>
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index d571fac..65f0ba6 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -48,6 +48,7 @@
 
 public class ChooseLockGeneric extends SettingsActivity {
     public static final String CONFIRM_CREDENTIALS = "confirm_credentials";
+    public static final String KEY_USER_ID = "user_id";
 
     @Override
     public Intent getIntent() {
@@ -103,6 +104,7 @@
         private String mUserPassword;
         private LockPatternUtils mLockPatternUtils;
         private FingerprintManager mFingerprintManager;
+        private int mUserId;
         private RemovalCallback mRemovalCallback = new RemovalCallback() {
 
             @Override
@@ -161,13 +163,16 @@
                         ENCRYPT_REQUESTED_DISABLED);
             }
 
+            // Only take this argument into account if it belongs to the current profile.
+            mUserId = Utils.getSameOwnerUserId(getContext(), getArguments());
+
             if (mPasswordConfirmed) {
                 updatePreferencesOrFinish();
             } else if (!mWaitingForConfirmation) {
                 ChooseLockSettingsHelper helper =
                         new ChooseLockSettingsHelper(this.getActivity(), this);
                 if (!helper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST,
-                        getString(R.string.unlock_set_unlock_launch_picker_title), true)) {
+                        getString(R.string.unlock_set_unlock_launch_picker_title), true, mUserId)) {
                     mPasswordConfirmed = true; // no password set, so no need to confirm
                     updatePreferencesOrFinish();
                 } else {
@@ -188,7 +193,7 @@
         public boolean onPreferenceTreeClick(Preference preference) {
             final String key = preference.getKey();
 
-            if (!isUnlockMethodSecure(key) && mLockPatternUtils.isSecure(UserHandle.myUserId())) {
+            if (!isUnlockMethodSecure(key) && mLockPatternUtils.isSecure(mUserId)) {
                 // Show the disabling FRP warning only when the user is switching from a secure
                 // unlock method to an insecure one
                 showFactoryResetProtectionWarningDialog(key);
@@ -210,6 +215,7 @@
         private void maybeEnableEncryption(int quality, boolean disabled) {
             DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
             if (UserManager.get(getActivity()).isAdminUser()
+                    && mUserId == UserHandle.myUserId()
                     && LockPatternUtils.isDeviceEncryptionEnabled()
                     && !dpm.getDoNotAskCredentialsOnBoot()) {
                 mEncryptionRequestQuality = quality;
@@ -293,10 +299,10 @@
         }
 
         private String getKeyForCurrent() {
-            if (mLockPatternUtils.isLockScreenDisabled(UserHandle.myUserId())) {
+            if (mLockPatternUtils.isLockScreenDisabled(mUserId)) {
                 return KEY_UNLOCK_SET_OFF;
             }
-            switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId())) {
+            switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(mUserId)) {
                 case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
                     return KEY_UNLOCK_SET_PATTERN;
                 case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
@@ -410,38 +416,38 @@
 
         protected Intent getLockPasswordIntent(Context context, int quality,
                 int minLength, final int maxLength,
-                boolean requirePasswordToDecrypt, boolean confirmCredentials) {
+                boolean requirePasswordToDecrypt, boolean confirmCredentials, int userId) {
             return ChooseLockPassword.createIntent(context, quality, minLength,
-                    maxLength, requirePasswordToDecrypt, confirmCredentials);
+                    maxLength, requirePasswordToDecrypt, confirmCredentials, userId);
         }
 
         protected Intent getLockPasswordIntent(Context context, int quality,
                 int minLength, final int maxLength,
-                boolean requirePasswordToDecrypt, long challenge) {
+                boolean requirePasswordToDecrypt, long challenge, int userId) {
             return ChooseLockPassword.createIntent(context, quality, minLength,
-                    maxLength, requirePasswordToDecrypt, challenge);
+                    maxLength, requirePasswordToDecrypt, challenge, userId);
         }
 
         protected Intent getLockPasswordIntent(Context context, int quality, int minLength,
-                final int maxLength, boolean requirePasswordToDecrypt, String password) {
+                int maxLength, boolean requirePasswordToDecrypt, String password, int userId) {
             return ChooseLockPassword.createIntent(context, quality, minLength, maxLength,
-                    requirePasswordToDecrypt, password);
+                    requirePasswordToDecrypt, password, userId);
         }
 
         protected Intent getLockPatternIntent(Context context, final boolean requirePassword,
-                final boolean confirmCredentials) {
+                final boolean confirmCredentials, int userId) {
             return ChooseLockPattern.createIntent(context, requirePassword,
-                    confirmCredentials);
+                    confirmCredentials, userId);
         }
 
         protected Intent getLockPatternIntent(Context context, final boolean requirePassword,
-               long challenge) {
-            return ChooseLockPattern.createIntent(context, requirePassword, challenge);
+               long challenge, int userId) {
+            return ChooseLockPattern.createIntent(context, requirePassword, challenge, userId);
         }
 
         protected Intent getLockPatternIntent(Context context, final boolean requirePassword,
-                final String pattern) {
-            return ChooseLockPattern.createIntent(context, requirePassword, pattern);
+                final String pattern, int userId) {
+            return ChooseLockPattern.createIntent(context, requirePassword, pattern, userId);
         }
 
         protected Intent getEncryptionInterstitialIntent(Context context, int quality,
@@ -476,26 +482,25 @@
                 Intent intent;
                 if (mHasChallenge) {
                     intent = getLockPasswordIntent(context, quality, minLength,
-                            maxLength, mRequirePassword, mChallenge);
+                            maxLength, mRequirePassword, mChallenge, mUserId);
                 } else {
                     intent = getLockPasswordIntent(context, quality, minLength,
-                        maxLength, mRequirePassword, mUserPassword);
+                        maxLength, mRequirePassword, mUserPassword, mUserId);
                 }
                 startActivityForResult(intent, CHOOSE_LOCK_REQUEST);
             } else if (quality == DevicePolicyManager.PASSWORD_QUALITY_SOMETHING) {
                 Intent intent;
                 if (mHasChallenge) {
                     intent = getLockPatternIntent(context, mRequirePassword,
-                        mChallenge);
+                        mChallenge, mUserId);
                 } else {
                     intent = getLockPatternIntent(context, mRequirePassword,
-                        mUserPassword);
+                        mUserPassword, mUserId);
                 }
                 startActivityForResult(intent, CHOOSE_LOCK_REQUEST);
             } else if (quality == DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) {
-                mChooseLockSettingsHelper.utils().clearLock(UserHandle.myUserId());
-                mChooseLockSettingsHelper.utils().setLockScreenDisabled(disabled,
-                        UserHandle.myUserId());
+                mChooseLockSettingsHelper.utils().clearLock(mUserId);
+                mChooseLockSettingsHelper.utils().setLockScreenDisabled(disabled, mUserId);
                 removeAllFingerprintTemplatesAndFinish();
                 getActivity().setResult(Activity.RESULT_OK);
             } else {
@@ -524,7 +529,7 @@
 
         private int getResIdForFactoryResetProtectionWarningMessage() {
             boolean hasFingerprints = mFingerprintManager.hasEnrolledFingerprints();
-            switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId())) {
+            switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(mUserId)) {
                 case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
                     return hasFingerprints
                             ? R.string.unlock_disable_frp_warning_content_pattern_fingerprint
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
index 3760ef7..cf330ad 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/ChooseLockPassword.java
@@ -83,6 +83,15 @@
     }
 
     public static Intent createIntent(Context context, int quality,
+            int minLength, final int maxLength, boolean requirePasswordToDecrypt,
+            boolean confirmCredentials, int userId) {
+        Intent intent = createIntent(context, quality, minLength, maxLength,
+                requirePasswordToDecrypt, confirmCredentials);
+        intent.putExtra(ChooseLockGeneric.KEY_USER_ID, userId);
+        return intent;
+    }
+
+    public static Intent createIntent(Context context, int quality,
             int minLength, final int maxLength, boolean requirePasswordToDecrypt, String password) {
         Intent intent = createIntent(context, quality, minLength, maxLength,
                 requirePasswordToDecrypt, false);
@@ -90,6 +99,14 @@
         return intent;
     }
 
+    public static Intent createIntent(Context context, int quality, int minLength,
+            int maxLength, boolean requirePasswordToDecrypt, String password, int userId) {
+        Intent intent = createIntent(context, quality, minLength, maxLength,
+                requirePasswordToDecrypt, password);
+        intent.putExtra(ChooseLockGeneric.KEY_USER_ID, userId);
+        return intent;
+    }
+
     public static Intent createIntent(Context context, int quality,
             int minLength, final int maxLength, boolean requirePasswordToDecrypt, long challenge) {
         Intent intent = createIntent(context, quality, minLength, maxLength,
@@ -99,6 +116,14 @@
         return intent;
     }
 
+    public static Intent createIntent(Context context, int quality, int minLength,
+            int maxLength, boolean requirePasswordToDecrypt, long challenge, int userId) {
+        Intent intent = createIntent(context, quality, minLength, maxLength,
+                requirePasswordToDecrypt, challenge);
+        intent.putExtra(ChooseLockGeneric.KEY_USER_ID, userId);
+        return intent;
+    }
+
     @Override
     protected boolean isValidFragment(String fragmentName) {
         if (ChooseLockPasswordFragment.class.getName().equals(fragmentName)) return true;
@@ -160,6 +185,8 @@
         private static final long ERROR_MESSAGE_TIMEOUT = 3000;
         private static final int MSG_SHOW_ERROR = 1;
 
+        private int mUserId;
+
         private Handler mHandler = new Handler() {
             @Override
             public void handleMessage(Message msg) {
@@ -210,32 +237,34 @@
             if (!(getActivity() instanceof ChooseLockPassword)) {
                 throw new SecurityException("Fragment contained in wrong activity");
             }
+            // Only take this argument into account if it belongs to the current profile.
+            mUserId = Utils.getSameOwnerUserId(getActivity(), intent.getExtras());
             mRequestedQuality = Math.max(intent.getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY,
                     mRequestedQuality), mLockPatternUtils.getRequestedPasswordQuality(
-                    UserHandle.myUserId()));
+                    mUserId));
             mPasswordMinLength = Math.max(Math.max(
                     LockPatternUtils.MIN_LOCK_PASSWORD_SIZE,
                     intent.getIntExtra(PASSWORD_MIN_KEY, mPasswordMinLength)),
-                    mLockPatternUtils.getRequestedMinimumPasswordLength(UserHandle.myUserId()));
+                    mLockPatternUtils.getRequestedMinimumPasswordLength(mUserId));
             mPasswordMaxLength = intent.getIntExtra(PASSWORD_MAX_KEY, mPasswordMaxLength);
             mPasswordMinLetters = Math.max(intent.getIntExtra(PASSWORD_MIN_LETTERS_KEY,
                     mPasswordMinLetters), mLockPatternUtils.getRequestedPasswordMinimumLetters(
-                    UserHandle.myUserId()));
+                    mUserId));
             mPasswordMinUpperCase = Math.max(intent.getIntExtra(PASSWORD_MIN_UPPERCASE_KEY,
                     mPasswordMinUpperCase), mLockPatternUtils.getRequestedPasswordMinimumUpperCase(
-                    UserHandle.myUserId()));
+                    mUserId));
             mPasswordMinLowerCase = Math.max(intent.getIntExtra(PASSWORD_MIN_LOWERCASE_KEY,
                     mPasswordMinLowerCase), mLockPatternUtils.getRequestedPasswordMinimumLowerCase(
-                    UserHandle.myUserId()));
+                    mUserId));
             mPasswordMinNumeric = Math.max(intent.getIntExtra(PASSWORD_MIN_NUMERIC_KEY,
                     mPasswordMinNumeric), mLockPatternUtils.getRequestedPasswordMinimumNumeric(
-                    UserHandle.myUserId()));
+                    mUserId));
             mPasswordMinSymbols = Math.max(intent.getIntExtra(PASSWORD_MIN_SYMBOLS_KEY,
                     mPasswordMinSymbols), mLockPatternUtils.getRequestedPasswordMinimumSymbols(
-                    UserHandle.myUserId()));
+                    mUserId));
             mPasswordMinNonLetter = Math.max(intent.getIntExtra(PASSWORD_MIN_NONLETTER_KEY,
                     mPasswordMinNonLetter), mLockPatternUtils.getRequestedPasswordMinimumNonLetter(
-                    UserHandle.myUserId()));
+                    mUserId));
 
             mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity());
         }
@@ -289,7 +318,8 @@
                 updateStage(Stage.Introduction);
                 if (confirmCredentials) {
                     mChooseLockSettingsHelper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST,
-                            getString(R.string.unlock_set_unlock_launch_picker_title), true);
+                            getString(R.string.unlock_set_unlock_launch_picker_title), true,
+                            mUserId);
                 }
             } else {
                 // restore from previous state
@@ -477,7 +507,7 @@
                     return getString(R.string.lockpassword_password_requires_digit);
                 }
             }
-            if(mLockPatternUtils.checkPasswordHistory(password, UserHandle.myUserId())) {
+            if(mLockPatternUtils.checkPasswordHistory(password, mUserId)) {
                 return getString(mIsAlphaMode ? R.string.lockpassword_password_recently_used
                         : R.string.lockpassword_pin_recently_used);
             }
@@ -618,7 +648,7 @@
             final boolean required = getActivity().getIntent().getBooleanExtra(
                     EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, true);
             mSaveAndFinishWorker.start(mLockPatternUtils, required, mHasChallenge, mChallenge,
-                    mChosenPassword, mCurrentPassword, mRequestedQuality);
+                    mChosenPassword, mCurrentPassword, mRequestedQuality, mUserId);
         }
 
         @Override
@@ -640,15 +670,17 @@
         private String mChosenPassword;
         private String mCurrentPassword;
         private int mRequestedQuality;
+        private int mUserId;
 
         public void start(LockPatternUtils utils, boolean required,
                 boolean hasChallenge, long challenge,
-                String chosenPassword, String currentPassword, int requestedQuality) {
+                String chosenPassword, String currentPassword, int requestedQuality, int userId) {
             prepare(utils, required, hasChallenge, challenge);
 
             mChosenPassword = chosenPassword;
             mCurrentPassword = currentPassword;
             mRequestedQuality = requestedQuality;
+            mUserId = userId;
 
             start();
         }
@@ -656,14 +688,13 @@
         @Override
         protected Intent saveAndVerifyInBackground() {
             Intent result = null;
-            final int userId = UserHandle.myUserId();
             mUtils.saveLockPassword(mChosenPassword, mCurrentPassword, mRequestedQuality,
-                    userId);
+                    mUserId);
 
             if (mHasChallenge) {
                 byte[] token;
                 try {
-                    token = mUtils.verifyPassword(mChosenPassword, mChallenge, userId);
+                    token = mUtils.verifyPassword(mChosenPassword, mChallenge, mUserId);
                 } catch (RequestThrottledException e) {
                     token = null;
                 }
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java
index 99cd033..4a6008c 100644
--- a/src/com/android/settings/ChooseLockPattern.java
+++ b/src/com/android/settings/ChooseLockPattern.java
@@ -73,25 +73,25 @@
     }
 
     public static Intent createIntent(Context context,
-            boolean requirePassword, boolean confirmCredentials) {
+            boolean requirePassword, boolean confirmCredentials, int userId) {
         Intent intent = new Intent(context, ChooseLockPattern.class);
         intent.putExtra("key_lock_method", "pattern");
         intent.putExtra(ChooseLockGeneric.CONFIRM_CREDENTIALS, confirmCredentials);
         intent.putExtra(EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, requirePassword);
+        intent.putExtra(ChooseLockGeneric.KEY_USER_ID, userId);
         return intent;
     }
 
     public static Intent createIntent(Context context,
-            boolean requirePassword, String pattern) {
-        Intent intent = createIntent(context, requirePassword, false);
+            boolean requirePassword, String pattern, int userId) {
+        Intent intent = createIntent(context, requirePassword, false, userId);
         intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, pattern);
         return intent;
     }
 
-
     public static Intent createIntent(Context context,
-            boolean requirePassword, long challenge) {
-        Intent intent = createIntent(context, requirePassword, false);
+            boolean requirePassword, long challenge, int userId) {
+        Intent intent = createIntent(context, requirePassword, false, userId);
         intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, true);
         intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, challenge);
         return intent;
@@ -355,6 +355,7 @@
 
         private ChooseLockSettingsHelper mChooseLockSettingsHelper;
         private SaveAndFinishWorker mSaveAndFinishWorker;
+        private int mUserId;
 
         private static final String KEY_UI_STAGE = "uiStage";
         private static final String KEY_PATTERN_CHOICE = "chosenPattern";
@@ -367,6 +368,9 @@
             if (!(getActivity() instanceof ChooseLockPattern)) {
                 throw new SecurityException("Fragment contained in wrong activity");
             }
+            Intent intent = getActivity().getIntent();
+            // Only take this argument into account if it belongs to the current profile.
+            mUserId = Utils.getSameOwnerUserId(getActivity(), intent.getExtras());
         }
 
         @Override
@@ -415,7 +419,8 @@
                     boolean launchedConfirmationActivity =
                         mChooseLockSettingsHelper.launchConfirmationActivity(
                                 CONFIRM_EXISTING_REQUEST,
-                                getString(R.string.unlock_set_unlock_launch_picker_title), true);
+                                getString(R.string.unlock_set_unlock_launch_picker_title), true,
+                                mUserId);
                     if (!launchedConfirmationActivity) {
                         updateStage(Stage.Introduction);
                     }
@@ -644,7 +649,7 @@
             final boolean required = getActivity().getIntent().getBooleanExtra(
                     EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, true);
             mSaveAndFinishWorker.start(mChooseLockSettingsHelper.utils(), required,
-                    mHasChallenge, mChallenge, mChosenPattern, mCurrentPattern);
+                    mHasChallenge, mChallenge, mChosenPattern, mCurrentPattern, mUserId);
         }
 
         @Override
@@ -666,16 +671,18 @@
         private List<LockPatternView.Cell> mChosenPattern;
         private String mCurrentPattern;
         private boolean mLockVirgin;
+        private int mUserId;
 
         public void start(LockPatternUtils utils, boolean credentialRequired,
                 boolean hasChallenge, long challenge,
-                List<LockPatternView.Cell> chosenPattern, String currentPattern) {
+                List<LockPatternView.Cell> chosenPattern, String currentPattern, int userId) {
             prepare(utils, credentialRequired, hasChallenge, challenge);
 
             mCurrentPattern = currentPattern;
             mChosenPattern = chosenPattern;
+            mUserId = userId;
 
-            mLockVirgin = !mUtils.isPatternEverChosen(UserHandle.myUserId());
+            mLockVirgin = !mUtils.isPatternEverChosen(mUserId);
 
             start();
         }
@@ -683,7 +690,7 @@
         @Override
         protected Intent saveAndVerifyInBackground() {
             Intent result = null;
-            final int userId = UserHandle.myUserId();
+            final int userId = mUserId;
             mUtils.saveLockPattern(mChosenPattern, mCurrentPattern, userId);
 
             if (mHasChallenge) {
@@ -708,7 +715,7 @@
         @Override
         protected void finish(Intent resultData) {
             if (mLockVirgin) {
-                mUtils.setVisiblePatternEnabled(true, UserHandle.myUserId());
+                mUtils.setVisiblePatternEnabled(true, mUserId);
             }
 
             super.finish(resultData);
diff --git a/src/com/android/settings/ChooseLockSettingsHelper.java b/src/com/android/settings/ChooseLockSettingsHelper.java
index 56a3f67..3304fd7 100644
--- a/src/com/android/settings/ChooseLockSettingsHelper.java
+++ b/src/com/android/settings/ChooseLockSettingsHelper.java
@@ -80,6 +80,22 @@
      * If a pattern, password or PIN exists, prompt the user before allowing them to change it.
      *
      * @param title title of the confirmation screen; shown in the action bar
+     * @param returnCredentials if true, put credentials into intent. Note that if this is true,
+     *                          this can only be called internally.
+     * @param userId The userId for whom the lock should be confirmed.
+     * @return true if one exists and we launched an activity to confirm it
+     * @see Activity#onActivityResult(int, int, android.content.Intent)
+     */
+    boolean launchConfirmationActivity(int request, CharSequence title, boolean returnCredentials,
+            int userId) {
+        return launchConfirmationActivity(request, title, null, null,
+                returnCredentials, false, false, 0, Utils.getSameOwnerUserId(mActivity, userId));
+    }
+
+    /**
+     * If a pattern, password or PIN exists, prompt the user before allowing them to change it.
+     *
+     * @param title title of the confirmation screen; shown in the action bar
      * @param header header of the confirmation screen; shown as large text
      * @param description description of the confirmation screen
      * @param returnCredentials if true, put credentials into intent. Note that if this is true,
@@ -93,7 +109,7 @@
             @Nullable CharSequence header, @Nullable CharSequence description,
             boolean returnCredentials, boolean external) {
         return launchConfirmationActivity(request, title, header, description,
-                returnCredentials, external, false, 0);
+                returnCredentials, external, false, 0, Utils.getEffectiveUserId(mActivity));
     }
 
     /**
@@ -109,24 +125,22 @@
             @Nullable CharSequence header, @Nullable CharSequence description,
             long challenge) {
         return launchConfirmationActivity(request, title, header, description,
-                false, false, true, challenge);
+                false, false, true, challenge, Utils.getEffectiveUserId(mActivity));
     }
 
     private boolean launchConfirmationActivity(int request, @Nullable CharSequence title,
             @Nullable CharSequence header, @Nullable CharSequence description,
             boolean returnCredentials, boolean external, boolean hasChallenge,
-            long challenge) {
+            long challenge, int effectiveUserId) {
         boolean launched = false;
 
-        int effectiveUserId = Utils.getEffectiveUserId(mActivity);
-
         switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(effectiveUserId)) {
             case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
                 launched = launchConfirmationActivity(request, title, header, description,
                         returnCredentials || hasChallenge
                                 ? ConfirmLockPattern.InternalActivity.class
                                 : ConfirmLockPattern.class, external,
-                                hasChallenge, challenge);
+                                hasChallenge, challenge, effectiveUserId);
                 break;
             case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
             case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
@@ -137,7 +151,7 @@
                         returnCredentials || hasChallenge
                                 ? ConfirmLockPassword.InternalActivity.class
                                 : ConfirmLockPassword.class, external,
-                                hasChallenge, challenge);
+                                hasChallenge, challenge, effectiveUserId);
                 break;
         }
         return launched;
@@ -145,7 +159,7 @@
 
     private boolean launchConfirmationActivity(int request, CharSequence title, CharSequence header,
             CharSequence message, Class<?> activityClass, boolean external, boolean hasChallenge,
-            long challenge) {
+            long challenge, int userId) {
         final Intent intent = new Intent();
         intent.putExtra(ConfirmDeviceCredentialBaseFragment.TITLE_TEXT, title);
         intent.putExtra(ConfirmDeviceCredentialBaseFragment.HEADER_TEXT, header);
@@ -156,6 +170,7 @@
         intent.putExtra(ConfirmDeviceCredentialBaseFragment.SHOW_WHEN_LOCKED, external);
         intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, hasChallenge);
         intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, challenge);
+        intent.putExtra(ChooseLockGeneric.KEY_USER_ID, userId);
         intent.setClassName(ConfirmDeviceCredentialBaseFragment.PACKAGE, activityClass.getName());
         if (external) {
             intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
diff --git a/src/com/android/settings/ConfirmLockPassword.java b/src/com/android/settings/ConfirmLockPassword.java
index 25fb671..7ef6a57 100644
--- a/src/com/android/settings/ConfirmLockPassword.java
+++ b/src/com/android/settings/ConfirmLockPassword.java
@@ -108,7 +108,9 @@
         public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             mLockPatternUtils = new LockPatternUtils(getActivity());
-            mEffectiveUserId = Utils.getEffectiveUserId(getActivity());
+            Intent intent = getActivity().getIntent();
+            // Only take this argument into account if it belongs to the current profile.
+            mEffectiveUserId = Utils.getSameOwnerUserId(getActivity(), intent.getExtras());
         }
 
         @Override
diff --git a/src/com/android/settings/ConfirmLockPattern.java b/src/com/android/settings/ConfirmLockPattern.java
index d375a52..44e74c9 100644
--- a/src/com/android/settings/ConfirmLockPattern.java
+++ b/src/com/android/settings/ConfirmLockPattern.java
@@ -113,7 +113,9 @@
         public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             mLockPatternUtils = new LockPatternUtils(getActivity());
-            mEffectiveUserId = Utils.getEffectiveUserId(getActivity());
+            Intent intent = getActivity().getIntent();
+            // Only take this argument into account if it belongs to the current profile.
+            mEffectiveUserId = Utils.getSameOwnerUserId(getActivity(), intent.getExtras());
         }
 
         @Override
diff --git a/src/com/android/settings/SetupChooseLockGeneric.java b/src/com/android/settings/SetupChooseLockGeneric.java
index 206c15e..0b0333b 100644
--- a/src/com/android/settings/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/SetupChooseLockGeneric.java
@@ -115,7 +115,7 @@
         @Override
         protected Intent getLockPasswordIntent(Context context, int quality,
                 int minLength, final int maxLength,
-                boolean requirePasswordToDecrypt, boolean confirmCredentials) {
+                boolean requirePasswordToDecrypt, boolean confirmCredentials, int userId) {
             final Intent intent = SetupChooseLockPassword.createIntent(context, quality, minLength,
                     maxLength, requirePasswordToDecrypt, confirmCredentials);
             SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
@@ -125,7 +125,7 @@
         @Override
         protected Intent getLockPasswordIntent(Context context, int quality,
                 int minLength, final int maxLength,
-                boolean requirePasswordToDecrypt, long challenge) {
+                boolean requirePasswordToDecrypt, long challenge, int userId) {
             final Intent intent = SetupChooseLockPassword.createIntent(context, quality, minLength,
                     maxLength, requirePasswordToDecrypt, challenge);
             SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
@@ -134,7 +134,7 @@
 
         @Override
         protected Intent getLockPasswordIntent(Context context, int quality, int minLength,
-                final int maxLength, boolean requirePasswordToDecrypt, String password) {
+                int maxLength, boolean requirePasswordToDecrypt, String password, int userId) {
             final Intent intent = SetupChooseLockPassword.createIntent(context, quality, minLength,
                     maxLength, requirePasswordToDecrypt, password);
             SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
@@ -143,7 +143,7 @@
 
         @Override
         protected Intent getLockPatternIntent(Context context, final boolean requirePassword,
-                final boolean confirmCredentials) {
+                final boolean confirmCredentials, int userId) {
             final Intent intent = SetupChooseLockPattern.createIntent(context, requirePassword,
                     confirmCredentials);
             SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
@@ -152,7 +152,7 @@
 
         @Override
         protected Intent getLockPatternIntent(Context context, final boolean requirePassword,
-                long challenge) {
+                long challenge, int userId) {
             final Intent intent = SetupChooseLockPattern.createIntent(context, requirePassword,
                     challenge);
             SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
@@ -161,7 +161,7 @@
 
         @Override
         protected Intent getLockPatternIntent(Context context, final boolean requirePassword,
-                final String pattern) {
+                final String pattern, int userId) {
             final Intent intent = SetupChooseLockPattern.createIntent(context, requirePassword,
                     pattern);
             SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
diff --git a/src/com/android/settings/SetupChooseLockPattern.java b/src/com/android/settings/SetupChooseLockPattern.java
index e6b1c47..69e60be 100644
--- a/src/com/android/settings/SetupChooseLockPattern.java
+++ b/src/com/android/settings/SetupChooseLockPattern.java
@@ -22,6 +22,7 @@
 import android.content.Intent;
 import android.content.res.Resources;
 import android.os.Bundle;
+import android.os.UserHandle;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -42,19 +43,21 @@
     public static Intent createIntent(Context context, boolean requirePassword,
             boolean confirmCredentials) {
         Intent intent = ChooseLockPattern.createIntent(context, requirePassword,
-                confirmCredentials);
+                confirmCredentials, UserHandle.myUserId());
         intent.setClass(context, SetupChooseLockPattern.class);
         return intent;
     }
 
     public static Intent createIntent(Context context, boolean requirePassword, String pattern) {
-        Intent intent = ChooseLockPattern.createIntent(context, requirePassword, pattern);
+        Intent intent = ChooseLockPattern.createIntent(
+                context, requirePassword, pattern, UserHandle.myUserId());
         intent.setClass(context, SetupChooseLockPattern.class);
         return intent;
     }
 
     public static Intent createIntent(Context context, boolean requirePassword, long challenge) {
-        Intent intent = ChooseLockPattern.createIntent(context, requirePassword, challenge);
+        Intent intent = ChooseLockPattern.createIntent(
+                context, requirePassword, challenge, UserHandle.myUserId());
         intent.setClass(context, SetupChooseLockPattern.class);
         return intent;
     }
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index ed67ee4..468d568 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -1165,6 +1165,38 @@
         return str;
     }
 
+    /**
+     * Returns the user id present in the bundle with {@link ChooseLockGeneric#KEY_USER_ID} if it
+     * belongs to the current user.
+     *
+     * @throws SecurityException if the given userId does not belong to the current user group.
+     */
+    public static int getSameOwnerUserId(Context context, Bundle bundle) {
+        if (bundle == null) {
+            return getEffectiveUserId(context);
+        }
+        int userId = bundle.getInt(ChooseLockGeneric.KEY_USER_ID, UserHandle.myUserId());
+        return getSameOwnerUserId(context, userId);
+    }
+
+    /**
+     * Returns the given user id if it belongs to the current user.
+     *
+     * @throws SecurityException if the given userId does not belong to the current user group.
+     */
+    public static int getSameOwnerUserId(Context context, int userId) {
+        UserManager um = UserManager.get(context);
+        if (um != null) {
+            if (um.getUserProfiles().contains(new UserHandle(userId))) {
+                return userId;
+            } else {
+                throw new SecurityException("Given user id " + userId + " does not belong to user "
+                        + UserHandle.myUserId());
+            }
+        }
+        return getEffectiveUserId(context);
+    }
+
     public static int getEffectiveUserId(Context context) {
         UserManager um = UserManager.get(context);
         if (um != null) {
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index 094d86c..feb47cd 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -705,6 +705,10 @@
      * @see android.view.View.OnClickListener#onClick(android.view.View)
      */
     public void onClick(View v) {
+        if (mAppEntry == null) {
+            setIntentAndFinish(true, true);
+            return;
+        }
         String packageName = mAppEntry.info.packageName;
         if(v == mUninstallButton) {
             if ((mAppEntry.info.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
diff --git a/src/com/android/settings/wifi/WifiDialogActivity.java b/src/com/android/settings/wifi/WifiDialogActivity.java
index 6f9e3d3..9eea98a 100644
--- a/src/com/android/settings/wifi/WifiDialogActivity.java
+++ b/src/com/android/settings/wifi/WifiDialogActivity.java
@@ -43,7 +43,10 @@
 
         final Intent intent = getIntent();
         final Bundle accessPointState = intent.getBundleExtra(KEY_ACCESS_POINT_STATE);
-        final AccessPoint accessPoint = new AccessPoint(this, accessPointState);
+        AccessPoint accessPoint = null;
+        if (accessPointState != null) {
+            accessPoint = new AccessPoint(this, accessPointState);
+        }
 
         WifiDialog dialog = new WifiDialog(this, this, accessPoint, WifiConfigUiBase.MODE_CONNECT);
         dialog.show();