Allow overriding of strings referenced in XML files.

Test: manual
Bug: 188414370
Change-Id: Ice45b1808530c14c4efff16795cac7b2cb81516e
This commit is contained in:
Jonathan Scott
2022-01-25 17:58:55 +00:00
parent 15a0b54d60
commit 269f97d960
23 changed files with 300 additions and 1 deletions

View File

@@ -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<String> 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)));
}
}