Update preference screen title.
- Add missing title to preference screen xml so that they will be used to
set the activity title when the fragment is launched.
- Also updated some incorrect preference screen titles.
- Overrides getTitle() in preference fragments that do not use the
preference screen xml.
Bug: 64564191
Test: blaze-bin/screenshots/android/i18nscreenshots/i18nscreenshots
Change-Id: Id72d5ddf18f0962bc484de8bbd847a2e55d6371e
diff --git a/src/com/android/settings/DeviceAdminSettings.java b/src/com/android/settings/DeviceAdminSettings.java
index 4ae900a..00f4d9c 100644
--- a/src/com/android/settings/DeviceAdminSettings.java
+++ b/src/com/android/settings/DeviceAdminSettings.java
@@ -49,6 +49,7 @@
import android.widget.TextView;
import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.instrumentation.Instrumentable;
import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
@@ -136,6 +137,9 @@
super.onActivityCreated(savedInstanceState);
setHasOptionsMenu(true);
Utils.forceCustomPadding(getListView(), true /* additive padding */);
+ if (InstrumentedPreferenceFragment.usePreferenceScreenTitle()) {
+ getActivity().setTitle(R.string.manage_device_admin);
+ }
}
@Override
diff --git a/src/com/android/settings/MasterClear.java b/src/com/android/settings/MasterClear.java
index 2c97018..bac0a61 100644
--- a/src/com/android/settings/MasterClear.java
+++ b/src/com/android/settings/MasterClear.java
@@ -21,6 +21,7 @@
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AuthenticatorDescription;
+import android.annotation.StringRes;
import android.app.Activity;
import android.content.ComponentName;
import android.content.ContentResolver;
@@ -91,6 +92,12 @@
}
};
+ @Override
+ @StringRes
+ protected int getTitle() {
+ return R.string.master_clear_title;
+ }
+
/**
* Keyguard validation is run using the standard {@link ConfirmLockPattern}
* component as a subactivity
diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java
index 1529e77..b5b8a18 100644
--- a/src/com/android/settings/ResetNetwork.java
+++ b/src/com/android/settings/ResetNetwork.java
@@ -16,6 +16,7 @@
package com.android.settings;
+import android.annotation.StringRes;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
@@ -63,6 +64,12 @@
private Spinner mSubscriptionSpinner;
private Button mInitiateButton;
+ @Override
+ @StringRes
+ protected int getTitle() {
+ return R.string.reset_network_title;
+ }
+
/**
* Keyguard validation is run using the standard {@link ConfirmLockPattern}
* component as a subactivity
diff --git a/src/com/android/settings/ScreenPinningSettings.java b/src/com/android/settings/ScreenPinningSettings.java
index 5209cc7..68050b1 100644
--- a/src/com/android/settings/ScreenPinningSettings.java
+++ b/src/com/android/settings/ScreenPinningSettings.java
@@ -65,6 +65,9 @@
super.onActivityCreated(savedInstanceState);
final SettingsActivity activity = (SettingsActivity) getActivity();
+ if (usePreferenceScreenTitle()) {
+ activity.setTitle(R.string.screen_pinning_title);
+ }
mLockPatternUtils = new LockPatternUtils(activity);
diff --git a/src/com/android/settings/TrustedCredentialsSettings.java b/src/com/android/settings/TrustedCredentialsSettings.java
index 587e814..12524b9 100644
--- a/src/com/android/settings/TrustedCredentialsSettings.java
+++ b/src/com/android/settings/TrustedCredentialsSettings.java
@@ -20,6 +20,7 @@
import static android.widget.LinearLayout.LayoutParams.WRAP_CONTENT;
import android.animation.LayoutTransition;
+import android.annotation.StringRes;
import android.annotation.UiThread;
import android.app.Activity;
import android.app.KeyguardManager;
@@ -91,6 +92,12 @@
private static final int REQUEST_CONFIRM_CREDENTIALS = 1;
@Override
+ @StringRes
+ protected int getTitle() {
+ return R.string.trusted_credentials;
+ }
+
+ @Override
public int getMetricsCategory() {
return MetricsEvent.TRUSTED_CREDENTIALS;
}
diff --git a/src/com/android/settings/UserCredentialsSettings.java b/src/com/android/settings/UserCredentialsSettings.java
index 6cf1ae0..f34b7a7 100644
--- a/src/com/android/settings/UserCredentialsSettings.java
+++ b/src/com/android/settings/UserCredentialsSettings.java
@@ -18,6 +18,7 @@
import android.annotation.LayoutRes;
import android.annotation.Nullable;
+import android.annotation.StringRes;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
@@ -84,6 +85,12 @@
}
}
+ @Override
+ @StringRes
+ protected int getTitle() {
+ return R.string.user_credentials;
+ }
+
protected void announceRemoval(String alias) {
if (!isAdded()) {
return;
diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java
index fd48c39..0fbf5fa 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -20,6 +20,7 @@
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
+import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
@@ -118,6 +119,7 @@
static final String EXTRA_PREFERENCE_KEY = "preference_key";
static final String EXTRA_CHECKED = "checked";
static final String EXTRA_TITLE = "title";
+ static final String EXTRA_RESOLVE_INFO = "resolve_info";
static final String EXTRA_SUMMARY = "summary";
static final String EXTRA_SETTINGS_TITLE = "settings_title";
static final String EXTRA_COMPONENT_NAME = "component_name";
@@ -464,23 +466,23 @@
}
for (int i = 0, count = installedServices.size(); i < count; ++i) {
- AccessibilityServiceInfo info = installedServices.get(i);
+ final AccessibilityServiceInfo info = installedServices.get(i);
+ final ResolveInfo resolveInfo = info.getResolveInfo();
RestrictedPreference preference =
new RestrictedPreference(downloadedServicesCategory.getContext());
- String title = info.getResolveInfo().loadLabel(getPackageManager()).toString();
+ final String title = resolveInfo.loadLabel(getPackageManager()).toString();
Drawable icon;
- if (info.getResolveInfo().getIconResource() == 0) {
+ if (resolveInfo.getIconResource() == 0) {
icon = ContextCompat.getDrawable(getContext(), R.mipmap.ic_accessibility_generic);
} else {
- icon = info.getResolveInfo().loadIcon(getPackageManager());
+ icon = resolveInfo.loadIcon(getPackageManager());
}
- ServiceInfo serviceInfo = info.getResolveInfo().serviceInfo;
+ ServiceInfo serviceInfo = resolveInfo.serviceInfo;
String packageName = serviceInfo.packageName;
ComponentName componentName = new ComponentName(packageName, serviceInfo.name);
- String componentNameKey = componentName.flattenToString();
preference.setKey(componentName.flattenToString());
@@ -520,6 +522,9 @@
extras.putString(EXTRA_PREFERENCE_KEY, preference.getKey());
extras.putBoolean(EXTRA_CHECKED, serviceEnabled);
extras.putString(EXTRA_TITLE, title);
+ if (usePreferenceScreenTitle()) {
+ extras.putParcelable(EXTRA_RESOLVE_INFO, resolveInfo);
+ }
String description = info.loadDescription(getPackageManager());
if (TextUtils.isEmpty(description)) {
diff --git a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
index 4e95cad..0f6bdd7 100644
--- a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
@@ -24,7 +24,6 @@
import android.provider.Settings;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
-import android.text.TextUtils;
import android.view.accessibility.AccessibilityManager;
import android.widget.Switch;
@@ -60,7 +59,9 @@
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.accessibility_shortcut_settings);
+ if (!usePreferenceScreenTitle()) {
+ addPreferencesFromResource(R.xml.accessibility_shortcut_settings);
+ }
mServicePreference = findPreference(SHORTCUT_SERVICE_KEY);
mOnLockScreenSwitchPreference = (SwitchPreference) findPreference(ON_LOCK_SCREEN_KEY);
mOnLockScreenSwitchPreference.setOnPreferenceChangeListener((Preference p, Object o) -> {
@@ -80,6 +81,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.accessibility_shortcut_settings;
+ }
+
+ @Override
protected void onInstallSwitchBarToggleSwitch() {
super.onInstallSwitchBarToggleSwitch();
mSwitchBar.addOnSwitchChangeListener((Switch switchView, boolean enabled) -> {
diff --git a/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java b/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java
index f66a5e2..5b0e76d 100644
--- a/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java
+++ b/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java
@@ -34,6 +34,7 @@
import android.view.accessibility.AccessibilityManager;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.R;
import com.android.settings.applications.defaultapps.DefaultAppInfo;
import com.android.settings.applications.defaultapps.DefaultAppPickerFragment;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
@@ -54,6 +55,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.accessibility_shortcut_service_settings;
+ }
+
+ @Override
protected List<? extends DefaultAppInfo> getCandidates() {
final Context context = getContext();
final AccessibilityManager accessibilityManager = context
diff --git a/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
index 16df03e..5fa38e1 100644
--- a/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
@@ -110,10 +110,17 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.accessibility_autoclick_settings;
+ }
+
+ @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.accessibility_autoclick_settings);
+ if (!usePreferenceScreenTitle()) {
+ addPreferencesFromResource(R.xml.accessibility_autoclick_settings);
+ }
int delay = Settings.Secure.getInt(
getContentResolver(), Settings.Secure.ACCESSIBILITY_AUTOCLICK_DELAY,
@@ -153,7 +160,9 @@
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- setTitle(getString(R.string.accessibility_autoclick_preference_title));
+ if (!usePreferenceScreenTitle()) {
+ setTitle(getString(R.string.accessibility_autoclick_preference_title));
+ }
}
@Override
diff --git a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
index 64d38af..6ee7217 100644
--- a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
@@ -50,7 +50,9 @@
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.accessibility_daltonizer_settings);
+ if (!usePreferenceScreenTitle()) {
+ addPreferencesFromResource(R.xml.accessibility_daltonizer_settings);
+ }
mType = (ListPreference) findPreference("type");
@@ -62,6 +64,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.accessibility_daltonizer_settings;
+ }
+
+ @Override
protected void onPreferenceToggled(String preferenceKey, boolean enabled) {
Settings.Secure.putInt(getContentResolver(), ENABLED, enabled ? 1 : 0);
}
@@ -80,7 +87,9 @@
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- setTitle(getString(R.string.accessibility_display_daltonizer_preference_title));
+ if (!usePreferenceScreenTitle()) {
+ setTitle(getString(R.string.accessibility_display_daltonizer_preference_title));
+ }
}
@Override
diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
index f66fb4d..213e585 100644
--- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
@@ -17,6 +17,7 @@
package com.android.settings.accessibility;
import android.content.Intent;
+import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
@@ -49,9 +50,14 @@
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- PreferenceScreen preferenceScreen = getPreferenceManager().createPreferenceScreen(
- getActivity());
- setPreferenceScreen(preferenceScreen);
+ final int resId = getPreferenceScreenResId();
+ if (usePreferenceScreenTitle() && resId > 0) {
+ addPreferencesFromResource(resId);
+ } else {
+ PreferenceScreen preferenceScreen = getPreferenceManager().createPreferenceScreen(
+ getActivity());
+ setPreferenceScreen(preferenceScreen);
+ }
}
@Override
@@ -98,6 +104,13 @@
// Implement this to reset a checked listener.
}
+ /**
+ * Get the res id for static preference xml for this fragment.
+ */
+ protected int getPreferenceScreenResId() {
+ return -1;
+ }
+
private void installActionBarToggleSwitch() {
mSwitchBar.show();
onInstallSwitchBarToggleSwitch();
@@ -124,7 +137,11 @@
}
// Title.
- if (arguments.containsKey(AccessibilitySettings.EXTRA_TITLE)) {
+ if (usePreferenceScreenTitle()
+ && arguments.containsKey(AccessibilitySettings.EXTRA_RESOLVE_INFO)) {
+ ResolveInfo info = arguments.getParcelable(AccessibilitySettings.EXTRA_RESOLVE_INFO);
+ getActivity().setTitle(info.loadLabel(getPackageManager()).toString());
+ } else if (arguments.containsKey(AccessibilitySettings.EXTRA_TITLE)) {
setTitle(arguments.getString(AccessibilitySettings.EXTRA_TITLE));
}
diff --git a/src/com/android/settings/accessibility/ToggleFontSizePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFontSizePreferenceFragment.java
index c200d17..dbd269a 100644
--- a/src/com/android/settings/accessibility/ToggleFontSizePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleFontSizePreferenceFragment.java
@@ -17,6 +17,7 @@
package com.android.settings.accessibility;
import android.annotation.Nullable;
+import android.annotation.StringRes;
import android.content.ContentResolver;
import android.content.res.Configuration;
import android.content.res.Resources;
@@ -55,6 +56,12 @@
}
@Override
+ @StringRes
+ protected int getTitle() {
+ return R.string.title_font_size;
+ }
+
+ @Override
protected Configuration createConfig(Configuration origConfig, int index) {
// Populate the sample layouts.
final Configuration config = new Configuration(origConfig);
diff --git a/src/com/android/settings/applications/BackgroundCheckSummary.java b/src/com/android/settings/applications/BackgroundCheckSummary.java
index dd5c89c..1b8a787 100644
--- a/src/com/android/settings/applications/BackgroundCheckSummary.java
+++ b/src/com/android/settings/applications/BackgroundCheckSummary.java
@@ -16,6 +16,7 @@
package com.android.settings.applications;
+import android.annotation.StringRes;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.preference.PreferenceFrameLayout;
@@ -57,4 +58,11 @@
return rootView;
}
+
+ @Override
+ @StringRes
+ protected int getTitle() {
+ return R.string.background_check_pref;
+ }
+
}
diff --git a/src/com/android/settings/applications/ConvertToFbe.java b/src/com/android/settings/applications/ConvertToFbe.java
index c5e6d77..192cd14 100644
--- a/src/com/android/settings/applications/ConvertToFbe.java
+++ b/src/com/android/settings/applications/ConvertToFbe.java
@@ -15,6 +15,7 @@
*/
package com.android.settings.applications;
+import android.annotation.Nullable;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
@@ -28,6 +29,7 @@
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.password.ChooseLockSettingsHelper;
/* Class to prompt for conversion of userdata to file based encryption
@@ -45,6 +47,14 @@
}
@Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (InstrumentedPreferenceFragment.usePreferenceScreenTitle()) {
+ getActivity().setTitle(R.string.convert_to_file_encryption);
+ }
+ }
+
+ @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.convert_fbe, null);
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index ccd91fd..1df3aef 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -930,11 +930,11 @@
}
}
- private void startAppInfoFragment(Class<?> fragment, CharSequence title) {
+ private void startAppInfoFragment(Class<?> fragment, int title) {
startAppInfoFragment(fragment, title, this, mAppEntry);
}
- public static void startAppInfoFragment(Class<?> fragment, CharSequence title,
+ public static void startAppInfoFragment(Class<?> fragment, int title,
SettingsPreferenceFragment caller, AppEntry appEntry) {
// start new fragment to display extended information
Bundle args = new Bundle();
@@ -942,7 +942,7 @@
args.putInt(ARG_PACKAGE_UID, appEntry.info.uid);
SettingsActivity sa = (SettingsActivity) caller.getActivity();
- sa.startPreferencePanel(caller, fragment.getName(), args, -1, title, caller,
+ sa.startPreferencePanel(caller, fragment.getName(), args, title, null, caller,
SUB_INFO_FRAGMENT);
}
@@ -1018,19 +1018,18 @@
@Override
public boolean onPreferenceClick(Preference preference) {
if (preference == mStoragePreference) {
- startAppInfoFragment(AppStorageSettings.class, mStoragePreference.getTitle());
+ startAppInfoFragment(AppStorageSettings.class, R.string.storage_settings);
} else if (preference == mNotificationPreference) {
- startAppInfoFragment(AppNotificationSettings.class,
- getString(R.string.app_notifications_title));
+ startAppInfoFragment(AppNotificationSettings.class, R.string.app_notifications_title);
} else if (preference == mPermissionsPreference) {
startManagePermissionsActivity();
} else if (preference == mLaunchPreference) {
- startAppInfoFragment(AppLaunchSettings.class, mLaunchPreference.getTitle());
+ startAppInfoFragment(AppLaunchSettings.class, R.string.launch_by_default);
} else if (preference == mMemoryPreference) {
ProcessStatsBase.launchMemoryDetail((SettingsActivity) getActivity(),
mStatsManager.getMemInfo(), mStats, false);
} else if (preference == mDataPreference) {
- startAppInfoFragment(AppDataUsage.class, getString(R.string.app_data_usage));
+ startAppInfoFragment(AppDataUsage.class, R.string.app_data_usage);
} else if (preference == mBatteryPreference) {
if (isBatteryStatsAvailable()) {
BatteryEntry entry = new BatteryEntry(getContext(), null, mUserManager, mSipper);
@@ -1109,8 +1108,7 @@
pref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
- startAppInfoFragment(DrawOverlayDetails.class,
- getString(R.string.draw_overlay));
+ startAppInfoFragment(DrawOverlayDetails.class, R.string.draw_overlay);
return true;
}
});
@@ -1123,8 +1121,7 @@
pref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
- startAppInfoFragment(WriteSettingsDetails.class,
- getString(R.string.write_settings));
+ startAppInfoFragment(WriteSettingsDetails.class, R.string.write_settings);
return true;
}
});
@@ -1154,7 +1151,7 @@
@Override
public boolean onPreferenceClick(Preference preference) {
startAppInfoFragment(ExternalSourcesDetails.class,
- getString(R.string.install_other_apps));
+ R.string.install_other_apps);
return true;
}
});
diff --git a/src/com/android/settings/applications/ManageDomainUrls.java b/src/com/android/settings/applications/ManageDomainUrls.java
index b9e251c..ce919e1 100644
--- a/src/com/android/settings/applications/ManageDomainUrls.java
+++ b/src/com/android/settings/applications/ManageDomainUrls.java
@@ -63,7 +63,11 @@
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setAnimationAllowed(true);
- setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getContext()));
+ if (usePreferenceScreenTitle()) {
+ addPreferencesFromResource(R.xml.manage_domain_url_settings);
+ } else {
+ setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getContext()));
+ }
mApplicationsState = ApplicationsState.getInstance(
(Application) getContext().getApplicationContext());
mSession = mApplicationsState.newSession(this, getLifecycle());
diff --git a/src/com/android/settings/applications/PictureInPictureSettings.java b/src/com/android/settings/applications/PictureInPictureSettings.java
index 5569a4e..9b8a897 100644
--- a/src/com/android/settings/applications/PictureInPictureSettings.java
+++ b/src/com/android/settings/applications/PictureInPictureSettings.java
@@ -147,7 +147,9 @@
mPackageManager = new PackageManagerWrapper(mContext.getPackageManager());
mUserManager = new UserManagerWrapper(mContext.getSystemService(UserManager.class));
mIconDrawableFactory = IconDrawableFactory.newInstance(mContext);
- setPreferenceScreen(getPreferenceManager().createPreferenceScreen(mContext));
+ if (!usePreferenceScreenTitle()) {
+ setPreferenceScreen(getPreferenceManager().createPreferenceScreen(mContext));
+ }
}
@Override
@@ -199,6 +201,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.picture_in_picture_settings;
+ }
+
+ @Override
public int getMetricsCategory() {
return MetricsEvent.SETTINGS_MANAGE_PICTURE_IN_PICTURE;
}
diff --git a/src/com/android/settings/applications/PremiumSmsAccess.java b/src/com/android/settings/applications/PremiumSmsAccess.java
index 70bc17c..94945a9 100644
--- a/src/com/android/settings/applications/PremiumSmsAccess.java
+++ b/src/com/android/settings/applications/PremiumSmsAccess.java
@@ -81,6 +81,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.premium_sms_settings;
+ }
+
+ @Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.PREMIUM_SMS_ACCESS;
}
@@ -119,8 +124,14 @@
if (apps == null) return;
setEmptyText(R.string.premium_sms_none);
setLoading(false, true);
- final PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(
- getPrefContext());
+ final PreferenceScreen screen;
+ if (usePreferenceScreenTitle()) {
+ screen = getPreferenceScreen();
+ screen.removeAll();
+ } else {
+ screen = getPreferenceManager().createPreferenceScreen(getPrefContext());
+ }
+
screen.setOrderingAsAdded(true);
for (int i = 0; i < apps.size(); i++) {
@@ -137,7 +148,9 @@
screen.addPreference(summary);
}
- setPreferenceScreen(screen);
+ if (!usePreferenceScreenTitle()) {
+ setPreferenceScreen(screen);
+ }
}
private void update() {
diff --git a/src/com/android/settings/applications/RunningServices.java b/src/com/android/settings/applications/RunningServices.java
index 634fefd..c79b704 100644
--- a/src/com/android/settings/applications/RunningServices.java
+++ b/src/com/android/settings/applications/RunningServices.java
@@ -15,6 +15,7 @@
*/
package com.android.settings.applications;
+import android.annotation.StringRes;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -109,6 +110,12 @@
}
@Override
+ @StringRes
+ protected int getTitle() {
+ return R.string.runningservices_settings_title;
+ }
+
+ @Override
public int getMetricsCategory() {
return MetricsEvent.RUNNING_SERVICES;
}
diff --git a/src/com/android/settings/applications/VrListenerSettings.java b/src/com/android/settings/applications/VrListenerSettings.java
index 99340b1..e40e3f9 100644
--- a/src/com/android/settings/applications/VrListenerSettings.java
+++ b/src/com/android/settings/applications/VrListenerSettings.java
@@ -58,6 +58,11 @@
return super.setEnabled(service, title, enable);
}
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.vr_listeners_settings;
+ }
+
@VisibleForTesting
void logSpecialPermissionChange(boolean enable, String packageName) {
int logCategory = enable ? MetricsEvent.APP_SPECIAL_PERMISSION_VRHELPER_ALLOW
diff --git a/src/com/android/settings/applications/assist/DefaultAssistPicker.java b/src/com/android/settings/applications/assist/DefaultAssistPicker.java
index 07bc809..01ca25a 100644
--- a/src/com/android/settings/applications/assist/DefaultAssistPicker.java
+++ b/src/com/android/settings/applications/assist/DefaultAssistPicker.java
@@ -65,6 +65,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.default_assist_settings;
+ }
+
+ @Override
protected List<DefaultAppInfo> getCandidates() {
mAvailableAssistants.clear();
addAssistServices();
diff --git a/src/com/android/settings/applications/assist/DefaultVoiceInputPicker.java b/src/com/android/settings/applications/assist/DefaultVoiceInputPicker.java
index 5adda23..7a5c13d 100644
--- a/src/com/android/settings/applications/assist/DefaultVoiceInputPicker.java
+++ b/src/com/android/settings/applications/assist/DefaultVoiceInputPicker.java
@@ -24,6 +24,7 @@
import com.android.internal.app.AssistUtils;
import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
import com.android.settings.applications.defaultapps.DefaultAppInfo;
import com.android.settings.applications.defaultapps.DefaultAppPickerFragment;
import com.android.settingslib.wrapper.PackageManagerWrapper;
@@ -55,6 +56,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.default_voice_settings;
+ }
+
+ @Override
protected List<VoiceInputDefaultAppInfo> getCandidates() {
final List<VoiceInputDefaultAppInfo> candidates = new ArrayList<>();
final Context context = getContext();
diff --git a/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java b/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java
index cc85f77..00dedf9 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java
@@ -18,9 +18,7 @@
import android.Manifest;
import android.app.Activity;
-import android.app.Dialog;
import android.content.ComponentName;
-import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -30,7 +28,6 @@
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
-import android.os.Looper;
import android.provider.Settings;
import android.service.autofill.AutofillService;
import android.service.autofill.AutofillServiceInfo;
@@ -106,6 +103,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.default_autofill_settings;
+ }
+
+ @Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.DEFAULT_AUTOFILL_PICKER;
}
diff --git a/src/com/android/settings/applications/defaultapps/DefaultBrowserPicker.java b/src/com/android/settings/applications/defaultapps/DefaultBrowserPicker.java
index fb9c3bf..2639c8d 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultBrowserPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultBrowserPicker.java
@@ -21,6 +21,7 @@
import android.content.pm.ResolveInfo;
import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
import java.util.ArrayList;
import java.util.List;
@@ -31,6 +32,11 @@
public class DefaultBrowserPicker extends DefaultAppPickerFragment {
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.default_browser_settings;
+ }
+
+ @Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.DEFAULT_BROWSER_PICKER;
}
diff --git a/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java b/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
index 8f8c64e..bafd56f 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
@@ -40,6 +40,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.default_emergency_settings;
+ }
+
+ @Override
protected List<DefaultAppInfo> getCandidates() {
final List<DefaultAppInfo> candidates = new ArrayList<>();
final List<ResolveInfo> infos = mPm.getPackageManager().queryIntentActivities(
diff --git a/src/com/android/settings/applications/defaultapps/DefaultHomePicker.java b/src/com/android/settings/applications/defaultapps/DefaultHomePicker.java
index 75f5292..63efc44 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultHomePicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultHomePicker.java
@@ -44,6 +44,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.default_home_settings;
+ }
+
+ @Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.DEFAULT_HOME_PICKER;
}
diff --git a/src/com/android/settings/applications/defaultapps/DefaultPhonePicker.java b/src/com/android/settings/applications/defaultapps/DefaultPhonePicker.java
index 9f6cc4d..6a1d919 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultPhonePicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultPhonePicker.java
@@ -23,6 +23,7 @@
import android.text.TextUtils;
import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
import java.util.ArrayList;
import java.util.List;
@@ -44,6 +45,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.default_phone_settings;
+ }
+
+ @Override
protected List<DefaultAppInfo> getCandidates() {
final List<DefaultAppInfo> candidates = new ArrayList<>();
final List<String> dialerPackages =
diff --git a/src/com/android/settings/applications/defaultapps/DefaultSmsPicker.java b/src/com/android/settings/applications/defaultapps/DefaultSmsPicker.java
index 57159b3..4c6c9ce 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultSmsPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultSmsPicker.java
@@ -40,6 +40,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.default_sms_settings;
+ }
+
+ @Override
protected List<DefaultAppInfo> getCandidates() {
final Context context = getContext();
final Collection<SmsApplication.SmsApplicationData> smsApplications =
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index 3caa8ab..33762e4 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -223,10 +223,13 @@
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
- mApplicationsState = ApplicationsState.getInstance(getActivity().getApplication());
+ final Activity activity = getActivity();
+ mApplicationsState = ApplicationsState.getInstance(activity.getApplication());
- Intent intent = getActivity().getIntent();
+ Intent intent = activity.getIntent();
Bundle args = getArguments();
+ int screenTitle = intent.getIntExtra(
+ SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, R.string.notifications_label);
String className = args != null ? args.getString(EXTRA_CLASSNAME) : null;
if (className == null) {
className = intent.getComponent().getClassName();
@@ -235,6 +238,7 @@
|| this instanceof NotificationApps) {
mListType = LIST_TYPE_NOTIFICATION;
mNotifBackend = new NotificationBackend();
+ screenTitle = R.string.app_notifications_title;
} else if (className.equals(StorageUseActivity.class.getName())) {
if (args != null && args.containsKey(EXTRA_VOLUME_UUID)) {
mVolumeUuid = args.getString(EXTRA_VOLUME_UUID);
@@ -247,16 +251,21 @@
mSortOrder = R.id.sort_order_size;
} else if (className.equals(UsageAccessSettingsActivity.class.getName())) {
mListType = LIST_TYPE_USAGE_ACCESS;
+ screenTitle = R.string.usage_access;
} else if (className.equals(HighPowerApplicationsActivity.class.getName())) {
mListType = LIST_TYPE_HIGH_POWER;
// Default to showing system.
mShowSystem = true;
+ screenTitle = R.string.high_power_apps;
} else if (className.equals(OverlaySettingsActivity.class.getName())) {
mListType = LIST_TYPE_OVERLAY;
+ screenTitle = R.string.system_alert_window_settings;
} else if (className.equals(WriteSettingsActivity.class.getName())) {
mListType = LIST_TYPE_WRITE_SETTINGS;
+ screenTitle = R.string.write_settings;
} else if (className.equals(ManageExternalSourcesActivity.class.getName())) {
mListType = LIST_TYPE_MANAGE_SOURCES;
+ screenTitle = R.string.install_other_apps;
} else if (className.equals(GamesStorageActivity.class.getName())) {
mListType = LIST_TYPE_GAMES;
mSortOrder = R.id.sort_order_size;
@@ -280,9 +289,13 @@
mShowSystem = savedInstanceState.getBoolean(EXTRA_SHOW_SYSTEM, mShowSystem);
}
- mInvalidSizeStr = getActivity().getText(R.string.invalid_size_value);
+ mInvalidSizeStr = activity.getText(R.string.invalid_size_value);
- mResetAppsHelper = new ResetAppsHelper(getActivity());
+ mResetAppsHelper = new ResetAppsHelper(activity);
+
+ if (usePreferenceScreenTitle() && screenTitle > 0) {
+ activity.setTitle(screenTitle);
+ }
}
@Override
diff --git a/src/com/android/settings/datausage/DataUsagePreference.java b/src/com/android/settings/datausage/DataUsagePreference.java
index 63f6054..35cfbbc 100644
--- a/src/com/android/settings/datausage/DataUsagePreference.java
+++ b/src/com/android/settings/datausage/DataUsagePreference.java
@@ -16,23 +16,36 @@
import android.content.Context;
import android.content.Intent;
+import android.content.res.TypedArray;
import android.net.NetworkTemplate;
import android.os.Bundle;
+import android.support.v4.content.res.TypedArrayUtils;
import android.support.v7.preference.Preference;
import android.text.format.Formatter;
import android.util.AttributeSet;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.Utils;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settingslib.net.DataUsageController;
public class DataUsagePreference extends Preference implements TemplatePreference {
private NetworkTemplate mTemplate;
private int mSubId;
+ private int mTitleRes;
public DataUsagePreference(Context context, AttributeSet attrs) {
super(context, attrs);
+ if (InstrumentedPreferenceFragment.usePreferenceScreenTitle()) {
+ final TypedArray a = context.obtainStyledAttributes(
+ attrs, new int[] { com.android.internal.R.attr.title },
+ TypedArrayUtils.getAttr(
+ context, android.support.v7.preference.R.attr.preferenceStyle,
+ android.R.attr.preferenceStyle), 0);
+ mTitleRes = a.getResourceId(0, 0);
+ a.recycle();
+ }
}
@Override
@@ -52,6 +65,11 @@
Bundle args = new Bundle();
args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
args.putInt(DataUsageList.EXTRA_SUB_ID, mSubId);
+ if (mTitleRes > 0) {
+ return Utils.onBuildStartFragmentIntent(getContext(), DataUsageList.class.getName(),
+ args, getContext().getPackageName(), mTitleRes, null, false,
+ MetricsProto.MetricsEvent.VIEW_UNKNOWN);
+ }
return Utils.onBuildStartFragmentIntent(getContext(), DataUsageList.class.getName(), args,
getContext().getPackageName(), 0, getTitle(), false,
MetricsProto.MetricsEvent.VIEW_UNKNOWN);
diff --git a/src/com/android/settings/datausage/UnrestrictedDataAccess.java b/src/com/android/settings/datausage/UnrestrictedDataAccess.java
index c60b841..8fad986 100644
--- a/src/com/android/settings/datausage/UnrestrictedDataAccess.java
+++ b/src/com/android/settings/datausage/UnrestrictedDataAccess.java
@@ -59,7 +59,11 @@
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setAnimationAllowed(true);
- setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getContext()));
+ if (usePreferenceScreenTitle()) {
+ addPreferencesFromResource(R.xml.unrestricted_data_access_settings);
+ } else {
+ setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getContext()));
+ }
mApplicationsState = ApplicationsState.getInstance(
(Application) getContext().getApplicationContext());
mDataSaverBackend = new DataSaverBackend(getContext());
@@ -267,7 +271,7 @@
if (mState.isDataSaverBlacklisted) {
// app is blacklisted, launch App Data Usage screen
InstalledAppDetails.startAppInfoFragment(AppDataUsage.class,
- getContext().getString(R.string.app_data_usage),
+ R.string.app_data_usage,
UnrestrictedDataAccess.this,
mEntry);
} else {
diff --git a/src/com/android/settings/datetime/ZonePicker.java b/src/com/android/settings/datetime/ZonePicker.java
index 2d58dd8..00a77df 100644
--- a/src/com/android/settings/datetime/ZonePicker.java
+++ b/src/com/android/settings/datetime/ZonePicker.java
@@ -34,6 +34,7 @@
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.instrumentation.Instrumentable;
import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
import com.android.settingslib.datetime.ZoneGetter;
@@ -164,6 +165,9 @@
// Sets the adapter
setSorting(true);
setHasOptionsMenu(true);
+ if (InstrumentedPreferenceFragment.usePreferenceScreenTitle()) {
+ activity.setTitle(R.string.date_time_set_timezone);
+ }
}
@Override
diff --git a/src/com/android/settings/development/featureflags/FeatureFlagsDashboard.java b/src/com/android/settings/development/featureflags/FeatureFlagsDashboard.java
index 998e431..c482d87 100644
--- a/src/com/android/settings/development/featureflags/FeatureFlagsDashboard.java
+++ b/src/com/android/settings/development/featureflags/FeatureFlagsDashboard.java
@@ -42,7 +42,7 @@
@Override
protected int getPreferenceScreenResId() {
- return R.xml.placeholder_prefs;
+ return R.xml.feature_flags_settings;
}
@Override
diff --git a/src/com/android/settings/development/qstile/DevelopmentTileConfigFragment.java b/src/com/android/settings/development/qstile/DevelopmentTileConfigFragment.java
index c822de0..ca4181e 100644
--- a/src/com/android/settings/development/qstile/DevelopmentTileConfigFragment.java
+++ b/src/com/android/settings/development/qstile/DevelopmentTileConfigFragment.java
@@ -29,7 +29,6 @@
public class DevelopmentTileConfigFragment extends DashboardFragment {
private static final String TAG = "DevelopmentTileConfig";
-
@Override
protected String getLogTag() {
return TAG;
@@ -37,7 +36,7 @@
@Override
protected int getPreferenceScreenResId() {
- return R.xml.placeholder_prefs;
+ return R.xml.development_tile_settings;
}
@Override
diff --git a/src/com/android/settings/display/ScreenZoomSettings.java b/src/com/android/settings/display/ScreenZoomSettings.java
index ec3999b..ab92155 100644
--- a/src/com/android/settings/display/ScreenZoomSettings.java
+++ b/src/com/android/settings/display/ScreenZoomSettings.java
@@ -17,6 +17,7 @@
package com.android.settings.display;
import android.annotation.Nullable;
+import android.annotation.StringRes;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
@@ -99,6 +100,12 @@
}
@Override
+ @StringRes
+ protected int getTitle() {
+ return R.string.screen_zoom_title;
+ }
+
+ @Override
public int getMetricsCategory() {
return MetricsEvent.DISPLAY_SCREEN_ZOOM;
}
diff --git a/src/com/android/settings/display/VrDisplayPreferencePicker.java b/src/com/android/settings/display/VrDisplayPreferencePicker.java
index bccdaa5..5487c46 100644
--- a/src/com/android/settings/display/VrDisplayPreferencePicker.java
+++ b/src/com/android/settings/display/VrDisplayPreferencePicker.java
@@ -33,6 +33,11 @@
static final String PREF_KEY_PREFIX = "vr_display_pref_";
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.vr_display_settings;
+ }
+
+ @Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.VR_DISPLAY_PREFERENCE;
}
diff --git a/src/com/android/settings/dream/CurrentDreamPicker.java b/src/com/android/settings/dream/CurrentDreamPicker.java
index da9bf9e..f0d520c 100644
--- a/src/com/android/settings/dream/CurrentDreamPicker.java
+++ b/src/com/android/settings/dream/CurrentDreamPicker.java
@@ -16,11 +16,11 @@
package com.android.settings.dream;
-
import android.content.ComponentName;
import android.content.Context;
import android.graphics.drawable.Drawable;
import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
import com.android.settings.widget.RadioButtonPickerFragment;
import com.android.settingslib.dream.DreamBackend;
import com.android.settingslib.dream.DreamBackend.DreamInfo;
@@ -41,6 +41,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.current_dream_settings;
+ }
+
+ @Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.DREAM;
}
diff --git a/src/com/android/settings/dream/WhenToDreamPicker.java b/src/com/android/settings/dream/WhenToDreamPicker.java
index a55064d..7031bdf 100644
--- a/src/com/android/settings/dream/WhenToDreamPicker.java
+++ b/src/com/android/settings/dream/WhenToDreamPicker.java
@@ -38,6 +38,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.when_to_dream_settings;
+ }
+
+ @Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.DREAM;
}
diff --git a/src/com/android/settings/nfc/AndroidBeam.java b/src/com/android/settings/nfc/AndroidBeam.java
index fe264f3..e40fc21 100644
--- a/src/com/android/settings/nfc/AndroidBeam.java
+++ b/src/com/android/settings/nfc/AndroidBeam.java
@@ -16,6 +16,7 @@
package com.android.settings.nfc;
+import android.annotation.StringRes;
import android.nfc.NfcAdapter;
import android.os.Bundle;
import android.os.UserHandle;
@@ -130,4 +131,10 @@
public int getMetricsCategory() {
return MetricsEvent.NFC_BEAM;
}
+
+ @Override
+ @StringRes
+ protected int getTitle() {
+ return R.string.android_beam_settings_title;
+ }
}
diff --git a/src/com/android/settings/nfc/PaymentSettings.java b/src/com/android/settings/nfc/PaymentSettings.java
index 10f1154..66d1103 100644
--- a/src/com/android/settings/nfc/PaymentSettings.java
+++ b/src/com/android/settings/nfc/PaymentSettings.java
@@ -58,8 +58,14 @@
mPaymentBackend = new PaymentBackend(getActivity());
setHasOptionsMenu(true);
- PreferenceManager manager = getPreferenceManager();
- PreferenceScreen screen = manager.createPreferenceScreen(getActivity());
+ final PreferenceScreen screen;
+ if (usePreferenceScreenTitle()) {
+ addPreferencesFromResource(R.xml.nfc_payment_settings);
+ screen = getPreferenceScreen();
+ } else {
+ PreferenceManager manager = getPreferenceManager();
+ screen = manager.createPreferenceScreen(getActivity());
+ }
List<PaymentBackend.PaymentAppInfo> appInfos = mPaymentBackend.getPaymentAppInfos();
if (appInfos != null && appInfos.size() > 0) {
@@ -71,7 +77,9 @@
mPaymentBackend);
screen.addPreference(foreground);
}
- setPreferenceScreen(screen);
+ if (!usePreferenceScreenTitle()) {
+ setPreferenceScreen(screen);
+ }
}
@Override
diff --git a/src/com/android/settings/notification/EmptyTextSettings.java b/src/com/android/settings/notification/EmptyTextSettings.java
index 3f8ccc6..2b5998e 100644
--- a/src/com/android/settings/notification/EmptyTextSettings.java
+++ b/src/com/android/settings/notification/EmptyTextSettings.java
@@ -32,6 +32,17 @@
private TextView mEmpty;
@Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ super.onCreatePreferences(savedInstanceState, rootKey);
+ if (usePreferenceScreenTitle()) {
+ final int resId = getPreferenceScreenResId();
+ if (resId > 0) {
+ addPreferencesFromResource(resId);
+ }
+ }
+ }
+
+ @Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mEmpty = new TextView(getContext());
@@ -47,4 +58,9 @@
protected void setEmptyText(int text) {
mEmpty.setText(text);
}
+
+ /**
+ * Get the res id for static preference xml for this fragment.
+ */
+ protected abstract int getPreferenceScreenResId();
}
diff --git a/src/com/android/settings/notification/NotificationAccessSettings.java b/src/com/android/settings/notification/NotificationAccessSettings.java
index 858482c..af89f49 100644
--- a/src/com/android/settings/notification/NotificationAccessSettings.java
+++ b/src/com/android/settings/notification/NotificationAccessSettings.java
@@ -16,7 +16,6 @@
package com.android.settings.notification;
-import android.app.ActivityManager;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.Fragment;
@@ -38,11 +37,6 @@
private static final String TAG = NotificationAccessSettings.class.getSimpleName();
private static final Config CONFIG = getNotificationListenerConfig();
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- }
-
private static Config getNotificationListenerConfig() {
final Config c = new Config();
c.tag = TAG;
@@ -100,6 +94,11 @@
mNm.setNotificationListenerAccessGranted(service, true);
}
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.notification_access_settings;
+ }
+
@VisibleForTesting
void logSpecialPermissionChange(boolean enable, String packageName) {
int logCategory = enable ? MetricsEvent.APP_SPECIAL_PERMISSION_NOTIVIEW_ALLOW
diff --git a/src/com/android/settings/notification/ZenAccessSettings.java b/src/com/android/settings/notification/ZenAccessSettings.java
index 238c11e..44052b1 100644
--- a/src/com/android/settings/notification/ZenAccessSettings.java
+++ b/src/com/android/settings/notification/ZenAccessSettings.java
@@ -21,9 +21,7 @@
import android.app.AlertDialog;
import android.app.AppGlobals;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.app.NotificationManager;
-import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.ApplicationInfo;
@@ -38,7 +36,6 @@
import android.os.Handler;
import android.os.Looper;
import android.os.RemoteException;
-import android.provider.Settings;
import android.provider.Settings.Secure;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
@@ -48,7 +45,6 @@
import android.util.ArraySet;
import android.util.Log;
import android.view.View;
-import android.widget.Toast;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -80,7 +76,9 @@
mContext = getActivity();
mPkgMan = mContext.getPackageManager();
mNoMan = mContext.getSystemService(NotificationManager.class);
- setPreferenceScreen(getPreferenceManager().createPreferenceScreen(mContext));
+ if (!usePreferenceScreenTitle()) {
+ setPreferenceScreen(getPreferenceManager().createPreferenceScreen(mContext));
+ }
}
@Override
@@ -90,6 +88,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.zen_access_settings;
+ }
+
+ @Override
public void onResume() {
super.onResume();
if (!ActivityManager.isLowRamDeviceStatic()) {
diff --git a/src/com/android/settings/webview/WebViewAppPicker.java b/src/com/android/settings/webview/WebViewAppPicker.java
index 536cd8b..0e9fc39 100644
--- a/src/com/android/settings/webview/WebViewAppPicker.java
+++ b/src/com/android/settings/webview/WebViewAppPicker.java
@@ -58,6 +58,11 @@
}
@Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.webview_app_settings;
+ }
+
+ @Override
protected List<DefaultAppInfo> getCandidates() {
final List<DefaultAppInfo> packageInfoList = new ArrayList<DefaultAppInfo>();
final Context context = getContext();
diff --git a/src/com/android/settings/widget/RadioButtonPickerFragment.java b/src/com/android/settings/widget/RadioButtonPickerFragment.java
index d736319..f1df0a5 100644
--- a/src/com/android/settings/widget/RadioButtonPickerFragment.java
+++ b/src/com/android/settings/widget/RadioButtonPickerFragment.java
@@ -17,9 +17,6 @@
package com.android.settings.widget;
import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.UserHandle;
@@ -70,7 +67,12 @@
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
super.onCreatePreferences(savedInstanceState, rootKey);
- addPreferencesFromResource(R.xml.placeholder_prefs);
+ final int resId = getPreferenceScreenResId();
+ if (usePreferenceScreenTitle() && resId > 0) {
+ addPreferencesFromResource(resId);
+ } else {
+ addPreferencesFromResource(R.xml.placeholder_prefs);
+ }
updateCandidates();
}
@@ -114,6 +116,13 @@
}
/**
+ * Get the res id for static preference xml for this fragment.
+ */
+ protected int getPreferenceScreenResId() {
+ return -1;
+ }
+
+ /**
* A chance for subclasses to bind additional things to the preference.
*/
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)