diff --git a/res/layout/forgot_password_activity.xml b/res/layout/forgot_password_activity.xml index ed1e2d2f8c3..7973251a938 100644 --- a/res/layout/forgot_password_activity.xml +++ b/res/layout/forgot_password_activity.xml @@ -32,6 +32,7 @@ diff --git a/src/com/android/settings/accounts/ManagedProfileSettings.java b/src/com/android/settings/accounts/ManagedProfileSettings.java index a6fa15a85d1..001a2cd7dbb 100644 --- a/src/com/android/settings/accounts/ManagedProfileSettings.java +++ b/src/com/android/settings/accounts/ManagedProfileSettings.java @@ -16,6 +16,12 @@ package com.android.settings.accounts; +import static android.app.admin.DevicePolicyResources.Strings.Settings.CROSS_PROFILE_CALENDAR_SUMMARY; +import static android.app.admin.DevicePolicyResources.Strings.Settings.CROSS_PROFILE_CALENDAR_TITLE; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONTACT_SEARCH_SUMMARY; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONTACT_SEARCH_TITLE; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_SETTING; + import android.app.settings.SettingsEnums; import android.content.BroadcastReceiver; import android.content.Context; @@ -78,6 +84,17 @@ public class ManagedProfileSettings extends DashboardFragment { super.onCreate(icicle); mManagedProfileBroadcastReceiver = new ManagedProfileBroadcastReceiver(); mManagedProfileBroadcastReceiver.register(getActivity()); + replaceEnterpriseStringTitle("work_mode", + WORK_PROFILE_SETTING, R.string.work_mode_label); + replaceEnterpriseStringTitle("contacts_search", + WORK_PROFILE_CONTACT_SEARCH_TITLE, R.string.managed_profile_contact_search_title); + replaceEnterpriseStringSummary("contacts_search", + WORK_PROFILE_CONTACT_SEARCH_SUMMARY, + R.string.managed_profile_contact_search_summary); + replaceEnterpriseStringTitle("cross_profile_calendar", + CROSS_PROFILE_CALENDAR_TITLE, R.string.cross_profile_calendar_title); + replaceEnterpriseStringSummary("cross_profile_calendar", + CROSS_PROFILE_CALENDAR_SUMMARY, R.string.cross_profile_calendar_summary); } @Override diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java index a38ed1158ca..5bc4118bfef 100755 --- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java +++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java @@ -16,6 +16,8 @@ package com.android.settings.applications.appinfo; +import static android.app.admin.DevicePolicyResources.Strings.Settings.CONNECTED_WORK_AND_PERSONAL_APPS_TITLE; + import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import android.app.Activity; @@ -238,6 +240,8 @@ public class AppInfoDashboardFragment extends DashboardFragment startListeningToPackageRemove(); setHasOptionsMenu(true); + replaceEnterpriseStringTitle("interact_across_profiles", + CONNECTED_WORK_AND_PERSONAL_APPS_TITLE, R.string.interact_across_profiles_title); } @Override diff --git a/src/com/android/settings/applications/specialaccess/SpecialAccessSettings.java b/src/com/android/settings/applications/specialaccess/SpecialAccessSettings.java index f96ff63eef1..2cbc30422fc 100644 --- a/src/com/android/settings/applications/specialaccess/SpecialAccessSettings.java +++ b/src/com/android/settings/applications/specialaccess/SpecialAccessSettings.java @@ -16,7 +16,11 @@ package com.android.settings.applications.specialaccess; +import static android.app.admin.DevicePolicyResources.Strings.Settings.CONNECTED_WORK_AND_PERSONAL_APPS_TITLE; +import static android.app.admin.DevicePolicyResources.Strings.Settings.MANAGE_DEVICE_ADMIN_APPS; + import android.app.settings.SettingsEnums; +import android.os.Bundle; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; @@ -33,6 +37,15 @@ public class SpecialAccessSettings extends DashboardFragment { return TAG; } + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + replaceEnterpriseStringTitle("interact_across_profiles", + CONNECTED_WORK_AND_PERSONAL_APPS_TITLE, R.string.interact_across_profiles_title); + replaceEnterpriseStringTitle("device_administrators", + MANAGE_DEVICE_ADMIN_APPS, R.string.manage_device_admin); + } + @Override protected int getPreferenceScreenResId() { return R.xml.special_access; diff --git a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java index e133c62e14e..b6a297080eb 100644 --- a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java +++ b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java @@ -27,6 +27,8 @@ import static android.app.admin.DevicePolicyResources.Strings.Settings.REMOVE_AN import static android.app.admin.DevicePolicyResources.Strings.Settings.REMOVE_DEVICE_ADMIN; import static android.app.admin.DevicePolicyResources.Strings.Settings.REMOVE_WORK_PROFILE; import static android.app.admin.DevicePolicyResources.Strings.Settings.SET_PROFILE_OWNER_DIALOG_TITLE; +import static android.app.admin.DevicePolicyResources.Strings.Settings.SET_PROFILE_OWNER_POSTSETUP_WARNING; +import static android.app.admin.DevicePolicyResources.Strings.Settings.UNINSTALL_DEVICE_ADMIN; import static android.app.admin.DevicePolicyResources.Strings.Settings.USER_ADMIN_POLICIES_WARNING; import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_ADMIN_POLICIES_WARNING; @@ -365,6 +367,10 @@ public class DeviceAdminAdd extends CollapsingToolbarBaseActivity { mAdminDescription = (TextView)findViewById(R.id.admin_description); mProfileOwnerWarning = (TextView) findViewById(R.id.profile_owner_warning); + mProfileOwnerWarning.setText( + mDPM.getString(SET_PROFILE_OWNER_POSTSETUP_WARNING, + () -> getString(R.string.adding_profile_owner_warning))); + mAddMsg = (TextView)findViewById(R.id.add_msg); mAddMsgExpander = (ImageView) findViewById(R.id.add_msg_expander); final View.OnClickListener onClickListener = new View.OnClickListener() { @@ -410,6 +416,8 @@ public class DeviceAdminAdd extends CollapsingToolbarBaseActivity { }); mUninstallButton = (Button) findViewById(R.id.uninstall_button); + mUninstallButton.setText(mDPM.getString(UNINSTALL_DEVICE_ADMIN, + () -> getString(R.string.uninstall_device_admin))); mUninstallButton.setFilterTouchesWhenObscured(true); mUninstallButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { diff --git a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminSettings.java b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminSettings.java index 4a990734bfa..38191242c78 100644 --- a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminSettings.java +++ b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminSettings.java @@ -16,7 +16,10 @@ package com.android.settings.applications.specialaccess.deviceadmin; +import static android.app.admin.DevicePolicyResources.Strings.Settings.NO_DEVICE_ADMINS; + import android.app.settings.SettingsEnums; +import android.os.Bundle; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; @@ -31,6 +34,14 @@ public class DeviceAdminSettings extends DashboardFragment { return SettingsEnums.DEVICE_ADMIN_SETTINGS; } + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + // TODO: Replace PreferenceScreen title manage_device_admin/MANAGE_DEVICE_ADMIN_APPS + replaceEnterpriseStringTitle("device_admin_footer", + NO_DEVICE_ADMINS, R.string.no_device_admins); + } + @Override protected int getPreferenceScreenResId() { return R.xml.device_admin_settings; diff --git a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java index 4e96aa3086d..e85a513f6be 100644 --- a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java +++ b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java @@ -17,9 +17,13 @@ package com.android.settings.applications.specialaccess.interactacrossprofiles; import static android.app.admin.DevicePolicyResources.Strings.Settings.APP_CAN_ACCESS_PERSONAL_DATA; import static android.app.admin.DevicePolicyResources.Strings.Settings.APP_CAN_ACCESS_PERSONAL_PERMISSIONS; +import static android.app.admin.DevicePolicyResources.Strings.Settings.CONNECTED_APPS_SHARE_PERMISSIONS_AND_DATA; +import static android.app.admin.DevicePolicyResources.Strings.Settings.CONNECT_APPS_DIALOG_SUMMARY; import static android.app.admin.DevicePolicyResources.Strings.Settings.CONNECT_APPS_DIALOG_TITLE; +import static android.app.admin.DevicePolicyResources.Strings.Settings.HOW_TO_DISCONNECT_APPS; import static android.app.admin.DevicePolicyResources.Strings.Settings.INSTALL_IN_PERSONAL_PROFILE_TO_CONNECT_PROMPT; import static android.app.admin.DevicePolicyResources.Strings.Settings.INSTALL_IN_WORK_PROFILE_TO_CONNECT_PROMPT; +import static android.app.admin.DevicePolicyResources.Strings.Settings.ONLY_CONNECT_TRUSTED_APPS; import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE; import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_UNAWARE; import static android.provider.Settings.ACTION_MANAGE_CROSS_PROFILE_ACCESS; @@ -46,6 +50,7 @@ import android.os.UserHandle; import android.os.UserManager; import android.stats.devicepolicy.DevicePolicyEnums; import android.util.IconDrawableFactory; +import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.TextView; @@ -72,9 +77,11 @@ public class InteractAcrossProfilesDetails extends AppInfoBase "interact_across_profiles_extra_summary"; public static final String EXTRA_SHOW_FRAGMENT_ARGS = ":settings:show_fragment_args"; public static final String INTENT_KEY = "intent"; + private static final String TAG = "InteractAcrossProfilesDetails"; private Context mContext; private CrossProfileApps mCrossProfileApps; + private DevicePolicyManager mDevicePolicyManager; private UserManager mUserManager; private RestrictedSwitchPreference mSwitchPref; private LayoutPreference mHeader; @@ -94,6 +101,7 @@ public class InteractAcrossProfilesDetails extends AppInfoBase mContext = getContext(); mCrossProfileApps = mContext.getSystemService(CrossProfileApps.class); + mDevicePolicyManager = mContext.getSystemService(DevicePolicyManager.class); mUserManager = mContext.getSystemService(UserManager.class); mPackageManager = mContext.getPackageManager(); @@ -106,6 +114,18 @@ public class InteractAcrossProfilesDetails extends AppInfoBase mInstallAppIntent = AppStoreUtil.getAppStoreLink(mContext, mPackageName); addPreferencesFromResource(R.xml.interact_across_profiles_permissions_details); + + replaceEnterpriseStringSummary("interact_across_profiles_summary_1", + CONNECTED_APPS_SHARE_PERMISSIONS_AND_DATA, + R.string.interact_across_profiles_summary_1); + replaceEnterpriseStringSummary("interact_across_profiles_summary_2", + ONLY_CONNECT_TRUSTED_APPS, + R.string.interact_across_profiles_summary_2); + replaceEnterpriseStringSummary("interact_across_profiles_extra_summary", + HOW_TO_DISCONNECT_APPS, + R.string.interact_across_profiles_summary_3); + + mSwitchPref = findPreference(INTERACT_ACROSS_PROFILES_SETTINGS_SWITCH); mSwitchPref.setOnPreferenceClickListener(this); @@ -127,6 +147,19 @@ public class InteractAcrossProfilesDetails extends AppInfoBase logPageLaunchMetrics(); } + private void replaceEnterpriseStringSummary( + String preferenceKey, String overrideKey, int resource) { + Preference preference = findPreference(preferenceKey); + if (preference == null) { + Log.d(TAG, "Could not find enterprise preference " + preferenceKey); + return; + } + + preference.setSummary( + mDevicePolicyManager.getString(overrideKey, + () -> getString(resource))); + } + private void maybeShowExtraSummary() { Preference extraSummary = findPreference(INTERACT_ACROSS_PROFILE_EXTRA_SUMMARY_KEY); if (extraSummary == null) { @@ -264,7 +297,8 @@ public class InteractAcrossProfilesDetails extends AppInfoBase final TextView dialogTitle = dialogView.findViewById( R.id.interact_across_profiles_consent_dialog_title); dialogTitle.setText(mDpm.getString(CONNECT_APPS_DIALOG_TITLE, () -> - getString(R.string.interact_across_profiles_consent_dialog_title, mAppLabel))); + getString(R.string.interact_across_profiles_consent_dialog_title, mAppLabel), + mAppLabel)); final TextView appDataSummary = dialogView.findViewById(R.id.app_data_summary); appDataSummary.setText( @@ -280,6 +314,12 @@ public class InteractAcrossProfilesDetails extends AppInfoBase mAppLabel), mAppLabel)); + final TextView dialogSummary = + dialogView.findViewById(R.id.interact_across_profiles_consent_dialog_summary); + dialogSummary.setText(mDpm.getString(CONNECT_APPS_DIALOG_SUMMARY, + () -> getString( + R.string.interact_across_profiles_consent_dialog_summary))); + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setView(dialogView) .setPositiveButton(R.string.allow, new DialogInterface.OnClickListener() { diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java index e38d8430014..cfdfdaaeb0a 100644 --- a/src/com/android/settings/dashboard/DashboardFragment.java +++ b/src/com/android/settings/dashboard/DashboardFragment.java @@ -16,6 +16,7 @@ package com.android.settings.dashboard; import android.app.Activity; +import android.app.admin.DevicePolicyManager; import android.app.settings.SettingsEnums; import android.content.ContentResolver; import android.content.Context; @@ -79,6 +80,7 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment private DashboardTilePlaceholderPreferenceController mPlaceholderPreferenceController; private boolean mListeningToCategoryChange; private List mSuppressInjectedTileKeys; + private DevicePolicyManager mDevicePolicyManager; @Override public void onAttach(Context context) { @@ -148,6 +150,7 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); + mDevicePolicyManager = getSystemService(DevicePolicyManager.class); // Set ComparisonCallback so we get better animation when list changes. getPreferenceManager().setPreferenceComparisonCallback( new PreferenceManager.SimplePreferenceComparisonCallback()); @@ -566,4 +569,30 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment resolver.unregisterContentObserver(observer); }); } + + protected void replaceEnterpriseStringTitle( + String preferenceKey, String overrideKey, int resource) { + Preference preference = findPreference(preferenceKey); + if (preference == null) { + Log.d(TAG, "Could not find enterprise preference " + preferenceKey); + return; + } + + preference.setTitle( + mDevicePolicyManager.getString(overrideKey, + () -> getString(resource))); + } + + protected void replaceEnterpriseStringSummary( + String preferenceKey, String overrideKey, int resource) { + Preference preference = findPreference(preferenceKey); + if (preference == null) { + Log.d(TAG, "Could not find enterprise preference " + preferenceKey); + return; + } + + preference.setSummary( + mDevicePolicyManager.getString(overrideKey, + () -> getString(resource))); + } } diff --git a/src/com/android/settings/display/TimeoutListPreference.java b/src/com/android/settings/display/TimeoutListPreference.java index f9a731d32eb..0b2d18fdee5 100644 --- a/src/com/android/settings/display/TimeoutListPreference.java +++ b/src/com/android/settings/display/TimeoutListPreference.java @@ -53,6 +53,7 @@ public class TimeoutListPreference extends RestrictedListPreference { super.onPrepareDialogBuilder(builder, listener); if (mAdmin != null) { builder.setView(R.layout.admin_disabled_other_options_footer); + // TODO: replace Text on textview with admin_disabled_other_options } else { builder.setView(null); } diff --git a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java index fe02fdaae80..055e86833ff 100644 --- a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java +++ b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java @@ -16,6 +16,8 @@ package com.android.settings.enterprise; +import static android.app.admin.DevicePolicyResources.Strings.Settings.DISABLED_BY_IT_ADMIN_TITLE; + import android.annotation.NonNull; import android.annotation.UserIdInt; import android.app.Activity; @@ -67,6 +69,13 @@ public final class ActionDisabledByAdminDialogHelper { .createInstance(mActivity, restriction, new DeviceAdminStringProviderImpl(mActivity), UserHandle.SYSTEM); + DevicePolicyManager devicePolicyManager = + mActivity.getSystemService(DevicePolicyManager.class); + + TextView title = mDialogView.findViewById(R.id.admin_support_dialog_title); + title.setText(devicePolicyManager.getString(DISABLED_BY_IT_ADMIN_TITLE, + () -> mActivity.getString(R.string.disabled_by_policy_title))); + } private @UserIdInt int getEnforcementAdminUserId(@NonNull EnforcedAdmin admin) { diff --git a/src/com/android/settings/enterprise/ApplicationListFragment.java b/src/com/android/settings/enterprise/ApplicationListFragment.java index 17de9f892a2..a82789b02f2 100644 --- a/src/com/android/settings/enterprise/ApplicationListFragment.java +++ b/src/com/android/settings/enterprise/ApplicationListFragment.java @@ -19,6 +19,7 @@ package com.android.settings.enterprise; import android.Manifest; import android.app.settings.SettingsEnums; import android.content.Context; +import android.os.Bundle; import com.android.settings.R; import com.android.settings.applications.ApplicationFeatureProvider; @@ -43,6 +44,11 @@ public abstract class ApplicationListFragment extends DashboardFragment return TAG; } + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + } + @Override protected int getPreferenceScreenResId() { return R.xml.app_list_disclosure_settings; diff --git a/src/com/android/settings/language/LanguageAndInputSettings.java b/src/com/android/settings/language/LanguageAndInputSettings.java index c8966297a26..58c082b8c02 100644 --- a/src/com/android/settings/language/LanguageAndInputSettings.java +++ b/src/com/android/settings/language/LanguageAndInputSettings.java @@ -16,9 +16,12 @@ package com.android.settings.language; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_KEYBOARDS_AND_TOOLS; + import android.app.Activity; import android.app.settings.SettingsEnums; import android.content.Context; +import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -70,6 +73,14 @@ public class LanguageAndInputSettings extends DashboardFragment { activity.setTitle(R.string.language_settings); } + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + replaceEnterpriseStringTitle("language_and_input_for_work_category", + WORK_PROFILE_KEYBOARDS_AND_TOOLS, + R.string.language_and_input_for_work_category_title); + } + @Override protected int getPreferenceScreenResId() { return R.xml.language_and_input; diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java index 8f9787b08a5..85bb0ea4bdf 100644 --- a/src/com/android/settings/location/LocationSettings.java +++ b/src/com/android/settings/location/LocationSettings.java @@ -16,6 +16,8 @@ package com.android.settings.location; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_LOCATION_SWITCH_TITLE; + import android.app.settings.SettingsEnums; import android.content.Context; import android.location.SettingInjectorService; @@ -97,6 +99,14 @@ public class LocationSettings extends DashboardFragment implements return R.xml.location_settings; } + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + + replaceEnterpriseStringTitle("managed_profile_location_switch", + WORK_PROFILE_LOCATION_SWITCH_TITLE, R.string.managed_profile_location_switch_title); + } + @Override protected String getLogTag() { return TAG; diff --git a/src/com/android/settings/location/LocationWorkProfileSettings.java b/src/com/android/settings/location/LocationWorkProfileSettings.java index 24c44f3dd4e..d8db33da119 100644 --- a/src/com/android/settings/location/LocationWorkProfileSettings.java +++ b/src/com/android/settings/location/LocationWorkProfileSettings.java @@ -16,8 +16,11 @@ package com.android.settings.location; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_LOCATION_SWITCH_TITLE; + import android.app.settings.SettingsEnums; import android.content.Context; +import android.os.Bundle; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; @@ -40,6 +43,13 @@ public class LocationWorkProfileSettings extends DashboardFragment { return R.xml.location_settings_workprofile; } + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + replaceEnterpriseStringTitle("managed_profile_location_switch", + WORK_PROFILE_LOCATION_SWITCH_TITLE, R.string.managed_profile_location_switch_title); + } + @Override protected String getLogTag() { return TAG; diff --git a/src/com/android/settings/notification/ConfigureNotificationSettings.java b/src/com/android/settings/notification/ConfigureNotificationSettings.java index 5f78acc1ccc..f888ea7c8e0 100644 --- a/src/com/android/settings/notification/ConfigureNotificationSettings.java +++ b/src/com/android/settings/notification/ConfigureNotificationSettings.java @@ -16,6 +16,9 @@ package com.android.settings.notification; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_LOCK_SCREEN_REDACT_NOTIFICATION_SUMMARY; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_LOCK_SCREEN_REDACT_NOTIFICATION_TITLE; + import android.app.Activity; import android.app.Application; import android.app.settings.SettingsEnums; @@ -69,6 +72,17 @@ public class ConfigureNotificationSettings extends DashboardFragment implements return TAG; } + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + replaceEnterpriseStringTitle("lock_screen_work_redact", + WORK_PROFILE_LOCK_SCREEN_REDACT_NOTIFICATION_TITLE, + R.string.lock_screen_notifs_redact_work); + replaceEnterpriseStringSummary("lock_screen_work_redact", + WORK_PROFILE_LOCK_SCREEN_REDACT_NOTIFICATION_SUMMARY, + R.string.lock_screen_notifs_redact_work_summary); + } + @Override protected int getPreferenceScreenResId() { return R.xml.configure_notification_settings; diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java index ab53a3ffada..971937c73f5 100644 --- a/src/com/android/settings/notification/SoundSettings.java +++ b/src/com/android/settings/notification/SoundSettings.java @@ -16,6 +16,8 @@ package com.android.settings.notification; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_SOUND_SETTINGS_SECTION_HEADER; + import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; @@ -97,6 +99,9 @@ public class SoundSettings extends DashboardFragment implements OnActivityResult .findFragmentByTag(TAG); mDialogFragment = dialogFragment; } + replaceEnterpriseStringTitle("sound_work_settings", + WORK_PROFILE_SOUND_SETTINGS_SECTION_HEADER, + R.string.sound_work_settings); } @Override diff --git a/src/com/android/settings/notification/SoundWorkSettings.java b/src/com/android/settings/notification/SoundWorkSettings.java index d30c04f26ff..eb7f05ed8ca 100644 --- a/src/com/android/settings/notification/SoundWorkSettings.java +++ b/src/com/android/settings/notification/SoundWorkSettings.java @@ -16,6 +16,12 @@ package com.android.settings.notification; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_ALARM_RINGTONE_TITLE; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_NOTIFICATION_RINGTONE_TITLE; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_RINGTONE_TITLE; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_USE_PERSONAL_SOUNDS_SUMMARY; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_USE_PERSONAL_SOUNDS_TITLE; + import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; @@ -64,6 +70,18 @@ public class SoundWorkSettings extends DashboardFragment implements OnActivityRe mRequestPreference = findPreference(selectedPreference); } } + replaceEnterpriseStringTitle("work_use_personal_sounds", + WORK_PROFILE_USE_PERSONAL_SOUNDS_TITLE, R.string.work_use_personal_sounds_title); + replaceEnterpriseStringSummary("work_use_personal_sounds", + WORK_PROFILE_USE_PERSONAL_SOUNDS_SUMMARY, + R.string.work_use_personal_sounds_summary); + replaceEnterpriseStringTitle("work_ringtone", + WORK_PROFILE_RINGTONE_TITLE, R.string.work_ringtone_title); + replaceEnterpriseStringTitle("work_alarm_ringtone", + WORK_PROFILE_ALARM_RINGTONE_TITLE, R.string.work_alarm_ringtone_title); + replaceEnterpriseStringTitle("work_notification", + WORK_PROFILE_NOTIFICATION_RINGTONE_TITLE, + R.string.work_notification_ringtone_title); } @Override diff --git a/src/com/android/settings/password/ForgotPasswordActivity.java b/src/com/android/settings/password/ForgotPasswordActivity.java index 1f1df1896cb..d963a05ccd9 100644 --- a/src/com/android/settings/password/ForgotPasswordActivity.java +++ b/src/com/android/settings/password/ForgotPasswordActivity.java @@ -16,12 +16,16 @@ package com.android.settings.password; +import static android.app.admin.DevicePolicyResources.Strings.Settings.FORGOT_PASSWORD_TEXT; + import android.app.Activity; +import android.app.admin.DevicePolicyManager; import android.content.Intent; import android.os.Bundle; import android.os.UserHandle; import android.os.UserManager; import android.util.Log; +import android.widget.TextView; import com.android.settings.R; @@ -45,6 +49,11 @@ public class ForgotPasswordActivity extends Activity { } setContentView(R.layout.forgot_password_activity); + DevicePolicyManager devicePolicyManager = getSystemService(DevicePolicyManager.class); + TextView forgotPasswordText = (TextView) findViewById(R.id.forgot_password_text); + forgotPasswordText.setText(devicePolicyManager.getString( + FORGOT_PASSWORD_TEXT, () -> getString(R.string.forgot_password_text))); + final GlifLayout layout = findViewById(R.id.setup_wizard_layout); layout.getMixin(FooterBarMixin.class).setPrimaryButton( new FooterButton.Builder(this) diff --git a/src/com/android/settings/privacy/PrivacyDashboardFragment.java b/src/com/android/settings/privacy/PrivacyDashboardFragment.java index 7aa65b711c9..0638c60c94c 100644 --- a/src/com/android/settings/privacy/PrivacyDashboardFragment.java +++ b/src/com/android/settings/privacy/PrivacyDashboardFragment.java @@ -16,8 +16,15 @@ package com.android.settings.privacy; +import static android.app.admin.DevicePolicyResources.Strings.Settings.CONNECTED_WORK_AND_PERSONAL_APPS_TITLE; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_LOCKED_NOTIFICATION_TITLE; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_NOTIFICATIONS_SECTION_HEADER; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_PRIVACY_POLICY_INFO; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_PRIVACY_POLICY_INFO_SUMMARY; + import android.app.settings.SettingsEnums; import android.content.Context; +import android.os.Bundle; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; @@ -50,6 +57,24 @@ public class PrivacyDashboardFragment extends DashboardFragment { return TAG; } + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + replaceEnterpriseStringTitle("privacy_lock_screen_work_profile_notifications", + WORK_PROFILE_LOCKED_NOTIFICATION_TITLE, + R.string.locked_work_profile_notification_title); + replaceEnterpriseStringTitle("interact_across_profiles_privacy", + CONNECTED_WORK_AND_PERSONAL_APPS_TITLE, R.string.interact_across_profiles_title); + replaceEnterpriseStringTitle("privacy_work_profile_notifications_category", + WORK_PROFILE_NOTIFICATIONS_SECTION_HEADER, R.string.profile_section_header); + replaceEnterpriseStringTitle("work_policy_info", + WORK_PROFILE_PRIVACY_POLICY_INFO, R.string.work_policy_privacy_settings); + replaceEnterpriseStringSummary("work_policy_info", + WORK_PROFILE_PRIVACY_POLICY_INFO_SUMMARY, + R.string.work_policy_privacy_settings_summary); + + } + @Override protected int getPreferenceScreenResId() { return R.xml.privacy_dashboard_settings; diff --git a/src/com/android/settings/security/LockscreenDashboardFragment.java b/src/com/android/settings/security/LockscreenDashboardFragment.java index 39355f381a9..b3351ac1579 100644 --- a/src/com/android/settings/security/LockscreenDashboardFragment.java +++ b/src/com/android/settings/security/LockscreenDashboardFragment.java @@ -16,9 +16,13 @@ package com.android.settings.security; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_LOCKED_NOTIFICATION_TITLE; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_NOTIFICATIONS_SECTION_HEADER; + import android.app.settings.SettingsEnums; import android.content.Context; import android.hardware.display.AmbientDisplayConfiguration; +import android.os.Bundle; import androidx.annotation.VisibleForTesting; @@ -75,6 +79,16 @@ public class LockscreenDashboardFragment extends DashboardFragment return TAG; } + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + replaceEnterpriseStringTitle("security_setting_lock_screen_notif_work", + WORK_PROFILE_LOCKED_NOTIFICATION_TITLE, + R.string.locked_work_profile_notification_title); + replaceEnterpriseStringTitle("security_setting_lock_screen_notif_work_header", + WORK_PROFILE_NOTIFICATIONS_SECTION_HEADER, R.string.profile_section_header); + } + @Override protected int getPreferenceScreenResId() { return R.xml.security_lockscreen_settings; diff --git a/src/com/android/settings/security/SecurityAdvancedSettings.java b/src/com/android/settings/security/SecurityAdvancedSettings.java index ce4a59c50b2..e5f494507a0 100644 --- a/src/com/android/settings/security/SecurityAdvancedSettings.java +++ b/src/com/android/settings/security/SecurityAdvancedSettings.java @@ -16,9 +16,17 @@ package com.android.settings.security; +import static android.app.admin.DevicePolicyResources.Strings.Settings.FINGERPRINT_FOR_WORK; +import static android.app.admin.DevicePolicyResources.Strings.Settings.MANAGED_DEVICE_INFO; +import static android.app.admin.DevicePolicyResources.Strings.Settings.MANAGE_DEVICE_ADMIN_APPS; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_SECURITY_TITLE; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_SET_UNLOCK_LAUNCH_PICKER_TITLE; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_UNIFY_LOCKS_SUMMARY; + import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; +import android.os.Bundle; import com.android.settings.R; import com.android.settings.biometrics.combination.CombinedBiometricProfileStatusPreferenceController; @@ -53,6 +61,27 @@ public class SecurityAdvancedSettings extends DashboardFragment { private static final String CATEGORY_SECURITY_LEGACY_ADVANCED_SETTINGS = "com.android.settings.category.ia.legacy_advanced_security"; + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + replaceEnterpriseStringTitle("unlock_set_or_change_profile", + WORK_PROFILE_SET_UNLOCK_LAUNCH_PICKER_TITLE, + R.string.unlock_set_unlock_launch_picker_title_profile); + replaceEnterpriseStringSummary("unification", + WORK_PROFILE_UNIFY_LOCKS_SUMMARY, + R.string.lock_settings_profile_unification_summary); + replaceEnterpriseStringTitle("fingerprint_settings_profile", + FINGERPRINT_FOR_WORK, + R.string.security_settings_work_fingerprint_preference_title); + replaceEnterpriseStringTitle("manage_device_admin", + MANAGE_DEVICE_ADMIN_APPS, R.string.manage_device_admin); + replaceEnterpriseStringTitle("security_category_profile", + WORK_PROFILE_SECURITY_TITLE, R.string.lock_settings_profile_title); + replaceEnterpriseStringTitle("enterprise_privacy", MANAGED_DEVICE_INFO, + R.string.enterprise_privacy_settings); + + } + @Override public int getMetricsCategory() { return SettingsEnums.SECURITY_ADVANCED; diff --git a/src/com/android/settings/users/UserDialogs.java b/src/com/android/settings/users/UserDialogs.java index 3c19d7e0e62..4dcec4d2b56 100644 --- a/src/com/android/settings/users/UserDialogs.java +++ b/src/com/android/settings/users/UserDialogs.java @@ -18,6 +18,7 @@ package com.android.settings.users; import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_REMOVE_MESSAGE; import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_REMOVE_TITLE; +import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_MANAGED_BY; import android.app.Dialog; import android.app.admin.DevicePolicyManager; @@ -89,6 +90,8 @@ public final class UserDialogs { */ private static View createRemoveManagedUserDialogView(Context context, int userId) { PackageManager packageManager = context.getPackageManager(); + DevicePolicyManager devicePolicyManager = + context.getSystemService(DevicePolicyManager.class); ApplicationInfo mdmApplicationInfo = Utils.getAdminApplicationInfo(context, userId); if (mdmApplicationInfo == null) { return null; @@ -102,6 +105,16 @@ public final class UserDialogs { Drawable badgedApplicationIcon = packageManager.getApplicationIcon(mdmApplicationInfo); imageView.setImageDrawable(badgedApplicationIcon); + TextView openingParagraph = (TextView) + view.findViewById(R.id.delete_managed_profile_opening_paragraph); + openingParagraph.setText(devicePolicyManager.getString(WORK_PROFILE_MANAGED_BY, + () -> context.getString( + R.string.opening_paragraph_delete_profile_unknown_company))); + TextView closingParagraph = (TextView) + view.findViewById(R.id.delete_managed_profile_closing_paragraph); + closingParagraph.setText(devicePolicyManager.getString(WORK_PROFILE_CONFIRM_REMOVE_MESSAGE, + () -> context.getString(R.string.work_profile_confirm_remove_message))); + CharSequence appLabel = packageManager.getApplicationLabel(mdmApplicationInfo); CharSequence badgedAppLabel = packageManager.getUserBadgedLabel(appLabel, new UserHandle(userId));