diff --git a/res/values/strings.xml b/res/values/strings.xml index cd9da3b97e2..5bfe608c1dc 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -5620,6 +5620,8 @@ Call and SMS history will be shared with this user. Emergency information + + Information about %1$s Allow apps and content @@ -8032,7 +8034,7 @@ Your storage is now being managed by the storage manager - Accounts + Accounts for %1$s Configure diff --git a/src/com/android/settings/accounts/AccountPreferenceController.java b/src/com/android/settings/accounts/AccountPreferenceController.java index 38f6b1a660d..c08c924cbdd 100644 --- a/src/com/android/settings/accounts/AccountPreferenceController.java +++ b/src/com/android/settings/accounts/AccountPreferenceController.java @@ -295,7 +295,8 @@ public class AccountPreferenceController extends PreferenceController 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 0568d83920d..12219472d79 100644 --- a/src/com/android/settings/accounts/EmergencyInfoPreferenceController.java +++ b/src/com/android/settings/accounts/EmergencyInfoPreferenceController.java @@ -18,10 +18,14 @@ package com.android.settings.accounts; 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 class EmergencyInfoPreferenceController extends PreferenceController { } } + 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 87be7561e2e..e5c4a66d870 100644 --- a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java @@ -190,6 +190,25 @@ public class AccountPreferenceControllerTest { verify(mScreen, times(2)).removePreference(preferenceGroup); } + @Test + @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class}) + public void onResume_oneProfile_shouldSetAccountTitleWithUserName() { + final List 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() { diff --git a/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java index 128c211612c..d31c0f63bec 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 @@ package com.android.settings.accounts; 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 @@ public class EmergencyInfoPreferenceControllerTest { private Context mContext; @Mock(answer = RETURNS_DEEP_STUBS) private PreferenceScreen mScreen; + @Mock(answer = RETURNS_DEEP_STUBS) + private UserManager mUserManager; private EmergencyInfoPreferenceController mController; @@ -111,6 +119,21 @@ public class EmergencyInfoPreferenceControllerTest { verify(mScreen, never()).removePreference(any(Preference.class)); } + @Test + @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class}) + public void updateState_shouldSetSummary() { + final List 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();