Update text for User & accounts page.

- Add the user name to the Account preference group title.
- Add the summary text to Emergency information.

Bug: 34976320
Test: make RunSettingsRoboTests
Change-Id: I771e355ce3b313ffa50feb5c5e7907b1f3857592
This commit is contained in:
Doris Ling
2017-02-03 15:06:56 -08:00
parent ebccf8d093
commit 829d3aaa7a
5 changed files with 57 additions and 2 deletions

View File

@@ -5624,6 +5624,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>
@@ -8036,7 +8038,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>

View File

@@ -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()) {

View File

@@ -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())) {

View File

@@ -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<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() {

View File

@@ -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<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();