Merge "Allow overriding of strings referenced in XML files."

This commit is contained in:
Jonathan Scott
2022-02-09 10:48:09 +00:00
committed by Android (Google) Code Review
23 changed files with 300 additions and 1 deletions

View File

@@ -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

View File

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

View File

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

View File

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

View File

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