Merge "Update text for User & accounts page."
diff --git a/res/values/strings.xml b/res/values/strings.xml
index cd9da3b..5bfe608 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5620,6 +5620,8 @@
     <string name="user_enable_calling_and_sms_confirm_message">Call and SMS history will be shared with this user.</string>
     <!-- Title for the emergency info preference [CHAR LIMIT=40] -->
     <string name="emergency_info_title">Emergency information</string>
+    <!-- Summary for the emergency info preference [CHAR LIMIT=40] -->
+    <string name="emergency_info_summary">Information about <xliff:g id="user_name" example="Jason">%1$s</xliff:g></string>
 
     <!-- Application Restrictions screen title [CHAR LIMIT=45] -->
     <string name="application_restrictions">Allow apps and content</string>
@@ -8032,7 +8034,7 @@
     <string name="automatic_storage_manager_activation_warning">Your storage is now being managed by the storage manager</string>
 
     <!-- Accounts for section header [CHAR LIMIT=30] -->
-    <string name="account_for_section_header">Accounts</string>
+    <string name="account_for_section_header">Accounts for <xliff:g id="user_name" example="Jason">%1$s</xliff:g></string>
 
     <!-- Configure section header [CHAR LIMIT=30] -->
     <string name="configure_section_header">Configure</string>
diff --git a/src/com/android/settings/accounts/AccountPreferenceController.java b/src/com/android/settings/accounts/AccountPreferenceController.java
index 38f6b1a..c08c924 100644
--- a/src/com/android/settings/accounts/AccountPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountPreferenceController.java
@@ -295,7 +295,8 @@
             mHelper.createAccessiblePreferenceCategory(mParent.getPreferenceManager().getContext());
         preferenceGroup.setOrder(mAccountProfileOrder++);
         if (isSingleProfile()) {
-            preferenceGroup.setTitle(R.string.account_for_section_header);
+            preferenceGroup.setTitle(context.getString(R.string.account_for_section_header,
+                userInfo.name));
             preferenceGroup.setContentDescription(
                 mContext.getString(R.string.account_settings));
         } else if (userInfo.isManagedProfile()) {
diff --git a/src/com/android/settings/accounts/EmergencyInfoPreferenceController.java b/src/com/android/settings/accounts/EmergencyInfoPreferenceController.java
index 0568d83..1221947 100644
--- a/src/com/android/settings/accounts/EmergencyInfoPreferenceController.java
+++ b/src/com/android/settings/accounts/EmergencyInfoPreferenceController.java
@@ -18,10 +18,14 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ResolveInfo;
+import android.content.pm.UserInfo;
 import android.content.res.Resources;
+import android.os.UserHandle;
+import android.os.UserManager;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceScreen;
 
+import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.search.SearchIndexableRaw;
 
@@ -48,6 +52,12 @@
         }
     }
 
+    public void updateState(Preference preference) {
+        UserInfo info = mContext.getSystemService(UserManager.class).getUserInfo(
+            UserHandle.myUserId());
+        preference.setSummary(mContext.getString(R.string.emergency_info_summary, info.name));
+    }
+
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
         if (KEY_EMERGENCY_INFO.equals(preference.getKey())) {
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
index 87be756..e5c4a66 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
@@ -192,6 +192,25 @@
 
     @Test
     @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
+    public void onResume_oneProfile_shouldSetAccountTitleWithUserName() {
+        final List<UserInfo> infos = new ArrayList<>();
+        infos.add(new UserInfo(1, "user 1", UserInfo.FLAG_MANAGED_PROFILE));
+        when(mUserManager.isManagedProfile()).thenReturn(false);
+        when(mUserManager.isLinkedUser()).thenReturn(false);
+        when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
+        AccessiblePreferenceCategory preferenceGroup = mock(AccessiblePreferenceCategory.class);
+        when(mAccountHelper.createAccessiblePreferenceCategory(any(Context.class))).thenReturn(
+            preferenceGroup);
+
+        mController.onResume();
+
+        verify(preferenceGroup).setTitle(
+            mContext.getString(R.string.account_for_section_header, "user 1"));
+
+    }
+
+    @Test
+    @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
     public void onResume_noPreferenceScreen_shouldNotCrash() {
         final List<UserInfo> infos = new ArrayList<>();
         infos.add(new UserInfo(1, "user 1", 0));
diff --git a/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java
index 128c211..d31c0f6 100644
--- a/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java
@@ -18,11 +18,17 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ResolveInfo;
+import android.content.pm.UserInfo;
+import android.os.UserManager;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.search.SearchIndexableRaw;
+import com.android.settings.testutils.shadow.ShadowAccountManager;
+import com.android.settings.testutils.shadow.ShadowContentResolver;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -51,6 +57,8 @@
     private Context mContext;
     @Mock(answer = RETURNS_DEEP_STUBS)
     private PreferenceScreen mScreen;
+    @Mock(answer = RETURNS_DEEP_STUBS)
+    private UserManager mUserManager;
 
     private EmergencyInfoPreferenceController mController;
 
@@ -112,6 +120,21 @@
     }
 
     @Test
+    @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
+    public void updateState_shouldSetSummary() {
+        final List<UserInfo> infos = new ArrayList<>();
+        infos.add(new UserInfo(1, "user 1", UserInfo.FLAG_MANAGED_PROFILE));
+        when((Object) mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
+        when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
+        final Preference preference = mock(Preference.class);
+
+        mController.updateState(preference);
+
+        verify(preference).setSummary(
+            mContext.getString(R.string.emergency_info_summary, "user 1"));
+    }
+
+    @Test
     public void handlePreferenceTreeClick_shouldStartActivity() {
         final ShadowApplication application = ShadowApplication.getInstance();
         final Context context = application.getApplicationContext();