diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index e1d22257e43..3362a43222b 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1325,6 +1325,7 @@
diff --git a/res/xml/accessibility_shortcut_service_settings.xml b/res/xml/accessibility_shortcut_service_settings.xml
new file mode 100644
index 00000000000..573939a21b2
--- /dev/null
+++ b/res/xml/accessibility_shortcut_service_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/app_data_usage.xml b/res/xml/app_data_usage.xml
index 26a339a1921..3e94135fb4b 100644
--- a/res/xml/app_data_usage.xml
+++ b/res/xml/app_data_usage.xml
@@ -14,8 +14,9 @@
limitations under the License.
-->
-
+
diff --git a/res/xml/app_storage_settings.xml b/res/xml/app_storage_settings.xml
index f3f2f757eec..ba18b1ff564 100644
--- a/res/xml/app_storage_settings.xml
+++ b/res/xml/app_storage_settings.xml
@@ -14,9 +14,10 @@
limitations under the License.
-->
-
+
diff --git a/res/xml/billing_cycle.xml b/res/xml/billing_cycle.xml
index 8c77ad624ee..7b619792be3 100644
--- a/res/xml/billing_cycle.xml
+++ b/res/xml/billing_cycle.xml
@@ -14,8 +14,9 @@
limitations under the License.
-->
-
+
+ android:title="@string/device_details_title">
+ android:title="@string/bluetooth_pairing_pref_title">
diff --git a/res/xml/current_dream_settings.xml b/res/xml/current_dream_settings.xml
new file mode 100644
index 00000000000..d95e830f523
--- /dev/null
+++ b/res/xml/current_dream_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/data_usage_list.xml b/res/xml/data_usage_list.xml
index 64df9c3dba4..41fbff89439 100644
--- a/res/xml/data_usage_list.xml
+++ b/res/xml/data_usage_list.xml
@@ -14,8 +14,7 @@
limitations under the License.
-->
-
+
diff --git a/res/xml/data_usage_metered_prefs.xml b/res/xml/data_usage_metered_prefs.xml
index aca87fb6571..ef0faf225bb 100644
--- a/res/xml/data_usage_metered_prefs.xml
+++ b/res/xml/data_usage_metered_prefs.xml
@@ -15,7 +15,7 @@
-->
+ android:title="@string/network_restrictions">
+
+
+
diff --git a/res/xml/default_autofill_settings.xml b/res/xml/default_autofill_settings.xml
new file mode 100644
index 00000000000..ecf0877788b
--- /dev/null
+++ b/res/xml/default_autofill_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/default_browser_settings.xml b/res/xml/default_browser_settings.xml
new file mode 100644
index 00000000000..a319a7cc4a7
--- /dev/null
+++ b/res/xml/default_browser_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/default_emergency_settings.xml b/res/xml/default_emergency_settings.xml
new file mode 100644
index 00000000000..db418ebb786
--- /dev/null
+++ b/res/xml/default_emergency_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/default_home_settings.xml b/res/xml/default_home_settings.xml
new file mode 100644
index 00000000000..136f8cc77b4
--- /dev/null
+++ b/res/xml/default_home_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/default_phone_settings.xml b/res/xml/default_phone_settings.xml
new file mode 100644
index 00000000000..1ae3ab12b54
--- /dev/null
+++ b/res/xml/default_phone_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/default_sms_settings.xml b/res/xml/default_sms_settings.xml
new file mode 100644
index 00000000000..0a8bcc3231b
--- /dev/null
+++ b/res/xml/default_sms_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/default_voice_settings.xml b/res/xml/default_voice_settings.xml
new file mode 100644
index 00000000000..f75b5ed4271
--- /dev/null
+++ b/res/xml/default_voice_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/development_tile_settings.xml b/res/xml/development_tile_settings.xml
new file mode 100644
index 00000000000..f0f71c0e6f3
--- /dev/null
+++ b/res/xml/development_tile_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/feature_flags_settings.xml b/res/xml/feature_flags_settings.xml
new file mode 100644
index 00000000000..db652ff8100
--- /dev/null
+++ b/res/xml/feature_flags_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/inactive_apps.xml b/res/xml/inactive_apps.xml
index 27fda55497f..6f93bdb7128 100644
--- a/res/xml/inactive_apps.xml
+++ b/res/xml/inactive_apps.xml
@@ -4,9 +4,9 @@
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
-
+
http://www.apache.org/licenses/LICENSE-2.0
-
+
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -14,7 +14,9 @@
limitations under the License.
-->
-
+
diff --git a/res/xml/installed_app_launch_settings.xml b/res/xml/installed_app_launch_settings.xml
index ac77be14831..a2a0ca4bde5 100644
--- a/res/xml/installed_app_launch_settings.xml
+++ b/res/xml/installed_app_launch_settings.xml
@@ -14,8 +14,9 @@
limitations under the License.
-->
-
+
diff --git a/res/xml/manage_domain_url_settings.xml b/res/xml/manage_domain_url_settings.xml
new file mode 100644
index 00000000000..e4e4e474eaa
--- /dev/null
+++ b/res/xml/manage_domain_url_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/nfc_payment_settings.xml b/res/xml/nfc_payment_settings.xml
index 9b47dda1c08..9a5185c4839 100644
--- a/res/xml/nfc_payment_settings.xml
+++ b/res/xml/nfc_payment_settings.xml
@@ -14,5 +14,7 @@
limitations under the License.
-->
-
+
diff --git a/res/xml/notification_access_settings.xml b/res/xml/notification_access_settings.xml
new file mode 100644
index 00000000000..1300140bb2b
--- /dev/null
+++ b/res/xml/notification_access_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/picture_in_picture_settings.xml b/res/xml/picture_in_picture_settings.xml
new file mode 100644
index 00000000000..b7091df374d
--- /dev/null
+++ b/res/xml/picture_in_picture_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/premium_sms_settings.xml b/res/xml/premium_sms_settings.xml
new file mode 100644
index 00000000000..7bcf11e4661
--- /dev/null
+++ b/res/xml/premium_sms_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/process_stats_ui.xml b/res/xml/process_stats_ui.xml
index ba9066eb2f9..84dccabab3b 100644
--- a/res/xml/process_stats_ui.xml
+++ b/res/xml/process_stats_ui.xml
@@ -16,7 +16,7 @@
+ android:title="@string/memory_usage_apps">
-
+
+
+
+
diff --git a/res/xml/vpn_app_management.xml b/res/xml/vpn_app_management.xml
index c044a58a9f9..2cf14984f0e 100644
--- a/res/xml/vpn_app_management.xml
+++ b/res/xml/vpn_app_management.xml
@@ -15,8 +15,7 @@
-->
+ xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
+
+
+
diff --git a/res/xml/vr_listeners_settings.xml b/res/xml/vr_listeners_settings.xml
new file mode 100644
index 00000000000..1954596385b
--- /dev/null
+++ b/res/xml/vr_listeners_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/webview_app_settings.xml b/res/xml/webview_app_settings.xml
new file mode 100644
index 00000000000..c7a611ace8b
--- /dev/null
+++ b/res/xml/webview_app_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/when_to_dream_settings.xml b/res/xml/when_to_dream_settings.xml
new file mode 100644
index 00000000000..7b91a34b322
--- /dev/null
+++ b/res/xml/when_to_dream_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/res/xml/wifi_display_settings.xml b/res/xml/wifi_display_settings.xml
index 81fb7012591..2be31d2f7a5 100644
--- a/res/xml/wifi_display_settings.xml
+++ b/res/xml/wifi_display_settings.xml
@@ -15,6 +15,6 @@
-->
+ android:title="@string/wifi_display_settings_title">
diff --git a/res/xml/wifi_p2p_settings.xml b/res/xml/wifi_p2p_settings.xml
index 0bdc1cf75b2..405d0810c81 100644
--- a/res/xml/wifi_p2p_settings.xml
+++ b/res/xml/wifi_p2p_settings.xml
@@ -14,7 +14,9 @@
limitations under the License.
-->
-
+
diff --git a/res/xml/wifi_tether_settings.xml b/res/xml/wifi_tether_settings.xml
index feed2680e80..d6b8a25d501 100644
--- a/res/xml/wifi_tether_settings.xml
+++ b/res/xml/wifi_tether_settings.xml
@@ -15,7 +15,9 @@
limitations under the License.
-->
-
+
+
+
+
diff --git a/src/com/android/settings/DeviceAdminSettings.java b/src/com/android/settings/DeviceAdminSettings.java
index 4ae900ae86d..00f4d9cbec3 100644
--- a/src/com/android/settings/DeviceAdminSettings.java
+++ b/src/com/android/settings/DeviceAdminSettings.java
@@ -49,6 +49,7 @@ import android.widget.ListView;
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 @@ public class DeviceAdminSettings extends ListFragment implements Instrumentable
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 2c9701832ee..bac0a619456 100644
--- a/src/com/android/settings/MasterClear.java
+++ b/src/com/android/settings/MasterClear.java
@@ -21,6 +21,7 @@ import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
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 @@ public class MasterClear extends OptionsMenuFragment {
}
};
+ @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 1529e777f74..b5b8a183377 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 @@ public class ResetNetwork extends OptionsMenuFragment {
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 5209cc745b4..68050b1dde1 100644
--- a/src/com/android/settings/ScreenPinningSettings.java
+++ b/src/com/android/settings/ScreenPinningSettings.java
@@ -65,6 +65,9 @@ public class ScreenPinningSettings extends SettingsPreferenceFragment
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 587e814e2f8..12524b9bd00 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.MATCH_PARENT;
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;
@@ -90,6 +91,12 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment
private static final String USER_ACTION = "com.android.settings.TRUSTED_CREDENTIALS_USER";
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 6cf1ae0a54c..f34b7a771cd 100644
--- a/src/com/android/settings/UserCredentialsSettings.java
+++ b/src/com/android/settings/UserCredentialsSettings.java
@@ -18,6 +18,7 @@ package com.android.settings;
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 @@ public class UserCredentialsSettings extends SettingsPreferenceFragment
}
}
+ @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 fd48c39f5bd..0fbf5fa09ff 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -20,6 +20,7 @@ import android.accessibilityservice.AccessibilityServiceInfo;
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 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
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 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
}
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 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
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 4e95cadc1e0..0f6bdd70d2f 100644
--- a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
@@ -24,7 +24,6 @@ import android.os.UserHandle;
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 class AccessibilityShortcutPreferenceFragment extends ToggleFeaturePrefer
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) -> {
@@ -79,6 +80,11 @@ public class AccessibilityShortcutPreferenceFragment extends ToggleFeaturePrefer
updatePreferences();
}
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.accessibility_shortcut_settings;
+ }
+
@Override
protected void onInstallSwitchBarToggleSwitch() {
super.onInstallSwitchBarToggleSwitch();
diff --git a/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java b/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java
index f66a5e2256d..5b0e76d631e 100644
--- a/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java
+++ b/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java
@@ -34,6 +34,7 @@ import android.text.TextUtils;
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;
@@ -53,6 +54,11 @@ public class ShortcutServicePickerFragment extends DefaultAppPickerFragment {
return MetricsEvent.ACCESSIBILITY_TOGGLE_GLOBAL_GESTURE;
}
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.accessibility_shortcut_service_settings;
+ }
+
@Override
protected List extends DefaultAppInfo> getCandidates() {
final Context context = getContext();
diff --git a/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
index 16df03e48e4..5fa38e1e872 100644
--- a/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
@@ -109,11 +109,18 @@ public class ToggleAutoclickPreferenceFragment extends ToggleFeaturePreferenceFr
return R.string.help_url_autoclick;
}
+ @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 class ToggleAutoclickPreferenceFragment extends ToggleFeaturePreferenceFr
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 64d38af6095..6ee721708a1 100644
--- a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
@@ -50,7 +50,9 @@ public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF
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");
@@ -61,6 +63,11 @@ public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF
initPreferences();
}
+ @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 class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF
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 f66fb4dde36..213e585d510 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 @@ public abstract class ToggleFeaturePreferenceFragment
@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 @@ public abstract class ToggleFeaturePreferenceFragment
// 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 @@ public abstract class ToggleFeaturePreferenceFragment
}
// 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 c200d171b72..dbd269a38d5 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;
@@ -54,6 +55,12 @@ public class ToggleFontSizePreferenceFragment extends PreviewSeekBarPreferenceFr
}
}
+ @Override
+ @StringRes
+ protected int getTitle() {
+ return R.string.title_font_size;
+ }
+
@Override
protected Configuration createConfig(Configuration origConfig, int index) {
// Populate the sample layouts.
diff --git a/src/com/android/settings/applications/BackgroundCheckSummary.java b/src/com/android/settings/applications/BackgroundCheckSummary.java
index dd5c89c4a0b..1b8a787b778 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 @@ public class BackgroundCheckSummary extends InstrumentedPreferenceFragment {
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 c5e6d771e6d..192cd14b860 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.internal.logging.nano.MetricsProto.MetricsEvent;
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
@@ -44,6 +46,14 @@ public class ConvertToFbe extends InstrumentedFragment {
res.getText(R.string.convert_to_file_encryption));
}
+ @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) {
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index ccd91fdbcc7..1df3aef3688 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -930,11 +930,11 @@ public class InstalledAppDetails extends AppInfoBase
}
}
- 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 @@ public class InstalledAppDetails extends AppInfoBase
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 @@ public class InstalledAppDetails extends AppInfoBase
@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 @@ public class InstalledAppDetails extends AppInfoBase
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 @@ public class InstalledAppDetails extends AppInfoBase
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 @@ public class InstalledAppDetails extends AppInfoBase
@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 b9e251cb289..ce919e118fb 100644
--- a/src/com/android/settings/applications/ManageDomainUrls.java
+++ b/src/com/android/settings/applications/ManageDomainUrls.java
@@ -63,7 +63,11 @@ public class ManageDomainUrls extends SettingsPreferenceFragment
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 5569a4ef785..9b8a897ee12 100644
--- a/src/com/android/settings/applications/PictureInPictureSettings.java
+++ b/src/com/android/settings/applications/PictureInPictureSettings.java
@@ -147,7 +147,9 @@ public class PictureInPictureSettings extends EmptyTextSettings {
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
@@ -198,6 +200,11 @@ public class PictureInPictureSettings extends EmptyTextSettings {
setEmptyText(R.string.picture_in_picture_empty_text);
}
+ @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 70bc17c115c..94945a986c0 100644
--- a/src/com/android/settings/applications/PremiumSmsAccess.java
+++ b/src/com/android/settings/applications/PremiumSmsAccess.java
@@ -80,6 +80,11 @@ public class PremiumSmsAccess extends EmptyTextSettings implements Callback, Cal
super.onDestroy();
}
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.premium_sms_settings;
+ }
+
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.PREMIUM_SMS_ACCESS;
@@ -119,8 +124,14 @@ public class PremiumSmsAccess extends EmptyTextSettings implements Callback, Cal
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 @@ public class PremiumSmsAccess extends EmptyTextSettings implements Callback, Cal
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 634fefdb9f9..c79b7049d7e 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;
@@ -108,6 +109,12 @@ public class RunningServices extends SettingsPreferenceFragment {
mOptionsMenu.findItem(SHOW_BACKGROUND_PROCESSES).setVisible(!showingBackground);
}
+ @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 99340b19170..e40e3f9fe6f 100644
--- a/src/com/android/settings/applications/VrListenerSettings.java
+++ b/src/com/android/settings/applications/VrListenerSettings.java
@@ -58,6 +58,11 @@ public class VrListenerSettings extends ManagedServiceSettings {
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 07bc809b0c8..01ca25a5f54 100644
--- a/src/com/android/settings/applications/assist/DefaultAssistPicker.java
+++ b/src/com/android/settings/applications/assist/DefaultAssistPicker.java
@@ -64,6 +64,11 @@ public class DefaultAssistPicker extends DefaultAppPickerFragment {
mAssistUtils = new AssistUtils(context);
}
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.default_assist_settings;
+ }
+
@Override
protected List getCandidates() {
mAvailableAssistants.clear();
diff --git a/src/com/android/settings/applications/assist/DefaultVoiceInputPicker.java b/src/com/android/settings/applications/assist/DefaultVoiceInputPicker.java
index 5adda238483..7a5c13dd1b6 100644
--- a/src/com/android/settings/applications/assist/DefaultVoiceInputPicker.java
+++ b/src/com/android/settings/applications/assist/DefaultVoiceInputPicker.java
@@ -24,6 +24,7 @@ import android.text.TextUtils;
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;
@@ -54,6 +55,11 @@ public class DefaultVoiceInputPicker extends DefaultAppPickerFragment {
}
}
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.default_voice_settings;
+ }
+
@Override
protected List getCandidates() {
final List candidates = new ArrayList<>();
diff --git a/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java b/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java
index cc85f77e4eb..00dedf9ff68 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java
@@ -18,9 +18,7 @@ package com.android.settings.applications.defaultapps;
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.content.pm.ServiceInfo;
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;
@@ -105,6 +102,11 @@ public class DefaultAutofillPicker extends DefaultAppPickerFragment {
}
}
+ @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 fb9c3bfdf20..2639c8db848 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.PackageManager;
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;
@@ -30,6 +31,11 @@ import java.util.List;
*/
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 8f8c64e41e8..bafd56fd6ae 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
@@ -39,6 +39,11 @@ public class DefaultEmergencyPicker extends DefaultAppPickerFragment {
return MetricsProto.MetricsEvent.DEFAULT_EMERGENCY_APP_PICKER;
}
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.default_emergency_settings;
+ }
+
@Override
protected List getCandidates() {
final List candidates = new ArrayList<>();
diff --git a/src/com/android/settings/applications/defaultapps/DefaultHomePicker.java b/src/com/android/settings/applications/defaultapps/DefaultHomePicker.java
index 75f5292b5e9..63efc44422d 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultHomePicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultHomePicker.java
@@ -43,6 +43,11 @@ public class DefaultHomePicker extends DefaultAppPickerFragment {
mPackageName = context.getPackageName();
}
+ @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 9f6cc4d091e..6a1d919576a 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.telecom.TelecomManager;
import android.text.TextUtils;
import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
import java.util.ArrayList;
import java.util.List;
@@ -43,6 +44,11 @@ public class DefaultPhonePicker extends DefaultAppPickerFragment {
(TelecomManager) context.getSystemService(Context.TELECOM_SERVICE));
}
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.default_phone_settings;
+ }
+
@Override
protected List getCandidates() {
final List candidates = new ArrayList<>();
diff --git a/src/com/android/settings/applications/defaultapps/DefaultSmsPicker.java b/src/com/android/settings/applications/defaultapps/DefaultSmsPicker.java
index 57159b3241f..4c6c9ced030 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultSmsPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultSmsPicker.java
@@ -39,6 +39,11 @@ public class DefaultSmsPicker extends DefaultAppPickerFragment {
return MetricsProto.MetricsEvent.DEFAULT_SMS_PICKER;
}
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.default_sms_settings;
+ }
+
@Override
protected List getCandidates() {
final Context context = getContext();
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index 3caa8ab43c9..33762e4e480 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -223,10 +223,13 @@ public class ManageApplications extends InstrumentedPreferenceFragment
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 @@ public class ManageApplications extends InstrumentedPreferenceFragment
|| 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 @@ public class ManageApplications extends InstrumentedPreferenceFragment
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 @@ public class ManageApplications extends InstrumentedPreferenceFragment
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 63f6054a6a7..35cfbbc7df3 100644
--- a/src/com/android/settings/datausage/DataUsagePreference.java
+++ b/src/com/android/settings/datausage/DataUsagePreference.java
@@ -16,23 +16,36 @@ package com.android.settings.datausage;
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 @@ public class DataUsagePreference extends Preference implements TemplatePreferenc
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 c60b84159c6..8fad9864b15 100644
--- a/src/com/android/settings/datausage/UnrestrictedDataAccess.java
+++ b/src/com/android/settings/datausage/UnrestrictedDataAccess.java
@@ -59,7 +59,11 @@ public class UnrestrictedDataAccess extends SettingsPreferenceFragment
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 @@ public class UnrestrictedDataAccess extends SettingsPreferenceFragment
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 2d58dd8b427..00a77df58a6 100644
--- a/src/com/android/settings/datetime/ZonePicker.java
+++ b/src/com/android/settings/datetime/ZonePicker.java
@@ -34,6 +34,7 @@ import android.widget.TextView;
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 @@ public class ZonePicker extends ListFragment implements Instrumentable {
// 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 998e4312c85..c482d8716d8 100644
--- a/src/com/android/settings/development/featureflags/FeatureFlagsDashboard.java
+++ b/src/com/android/settings/development/featureflags/FeatureFlagsDashboard.java
@@ -42,7 +42,7 @@ public class FeatureFlagsDashboard extends DashboardFragment {
@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 c822de007e9..ca4181e7ffd 100644
--- a/src/com/android/settings/development/qstile/DevelopmentTileConfigFragment.java
+++ b/src/com/android/settings/development/qstile/DevelopmentTileConfigFragment.java
@@ -29,7 +29,6 @@ import java.util.List;
public class DevelopmentTileConfigFragment extends DashboardFragment {
private static final String TAG = "DevelopmentTileConfig";
-
@Override
protected String getLogTag() {
return TAG;
@@ -37,7 +36,7 @@ public class DevelopmentTileConfigFragment extends DashboardFragment {
@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 ec3999b5144..ab92155fd4f 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;
@@ -98,6 +99,12 @@ public class ScreenZoomSettings extends PreviewSeekBarPreferenceFragment impleme
return R.string.help_url_display_size;
}
+ @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 bccdaa5922f..5487c46b15f 100644
--- a/src/com/android/settings/display/VrDisplayPreferencePicker.java
+++ b/src/com/android/settings/display/VrDisplayPreferencePicker.java
@@ -32,6 +32,11 @@ public class VrDisplayPreferencePicker extends RadioButtonPickerFragment {
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 da9bf9e3be0..f0d520c72ec 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;
@@ -40,6 +40,11 @@ public final class CurrentDreamPicker extends RadioButtonPickerFragment {
mBackend = DreamBackend.getInstance(context);
}
+ @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 a55064dc345..7031bdf7ad4 100644
--- a/src/com/android/settings/dream/WhenToDreamPicker.java
+++ b/src/com/android/settings/dream/WhenToDreamPicker.java
@@ -37,6 +37,11 @@ public class WhenToDreamPicker extends RadioButtonPickerFragment {
mBackend = DreamBackend.getInstance(context);
}
+ @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 fe264f3b9ba..e40fc217b9a 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 class AndroidBeam extends InstrumentedPreferenceFragment
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 10f115429f9..66d110397a2 100644
--- a/src/com/android/settings/nfc/PaymentSettings.java
+++ b/src/com/android/settings/nfc/PaymentSettings.java
@@ -58,8 +58,14 @@ public class PaymentSettings extends SettingsPreferenceFragment implements Index
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 appInfos = mPaymentBackend.getPaymentAppInfos();
if (appInfos != null && appInfos.size() > 0) {
@@ -71,7 +77,9 @@ public class PaymentSettings extends SettingsPreferenceFragment implements Index
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 3f8ccc63097..2b5998e4043 100644
--- a/src/com/android/settings/notification/EmptyTextSettings.java
+++ b/src/com/android/settings/notification/EmptyTextSettings.java
@@ -31,6 +31,17 @@ public abstract class EmptyTextSettings extends SettingsPreferenceFragment {
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);
@@ -47,4 +58,9 @@ public abstract class EmptyTextSettings extends SettingsPreferenceFragment {
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 858482ca591..af89f4904ff 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 @@ public class NotificationAccessSettings extends ManagedServiceSettings {
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 @@ public class NotificationAccessSettings extends ManagedServiceSettings {
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 238c11ec0e3..44052b10e55 100644
--- a/src/com/android/settings/notification/ZenAccessSettings.java
+++ b/src/com/android/settings/notification/ZenAccessSettings.java
@@ -21,9 +21,7 @@ import android.app.ActivityManager;
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.Bundle;
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.text.TextUtils;
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 @@ public class ZenAccessSettings extends EmptyTextSettings {
mContext = getActivity();
mPkgMan = mContext.getPackageManager();
mNoMan = mContext.getSystemService(NotificationManager.class);
- setPreferenceScreen(getPreferenceManager().createPreferenceScreen(mContext));
+ if (!usePreferenceScreenTitle()) {
+ setPreferenceScreen(getPreferenceManager().createPreferenceScreen(mContext));
+ }
}
@Override
@@ -89,6 +87,11 @@ public class ZenAccessSettings extends EmptyTextSettings {
setEmptyText(R.string.zen_access_empty_text);
}
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.zen_access_settings;
+ }
+
@Override
public void onResume() {
super.onResume();
diff --git a/src/com/android/settings/webview/WebViewAppPicker.java b/src/com/android/settings/webview/WebViewAppPicker.java
index 536cd8b0a81..0e9fc39ec6f 100644
--- a/src/com/android/settings/webview/WebViewAppPicker.java
+++ b/src/com/android/settings/webview/WebViewAppPicker.java
@@ -57,6 +57,11 @@ public class WebViewAppPicker extends DefaultAppPickerFragment {
}
}
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.webview_app_settings;
+ }
+
@Override
protected List getCandidates() {
final List packageInfoList = new ArrayList();
diff --git a/src/com/android/settings/widget/RadioButtonPickerFragment.java b/src/com/android/settings/widget/RadioButtonPickerFragment.java
index d73631965bc..f1df0a5fc91 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 @@ public abstract class RadioButtonPickerFragment extends InstrumentedPreferenceFr
@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();
}
@@ -113,6 +115,13 @@ public abstract class RadioButtonPickerFragment extends InstrumentedPreferenceFr
onSelectionPerformed(success);
}
+ /**
+ * 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.
*/
diff --git a/tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagsDashboardTest.java b/tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagsDashboardTest.java
index 92e92fc218d..0839a024c95 100644
--- a/tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagsDashboardTest.java
+++ b/tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagsDashboardTest.java
@@ -51,8 +51,8 @@ public class FeatureFlagsDashboardTest {
}
@Test
- public void shouldUsePlaceholderPreferenceLayout() {
+ public void shouldUseFeatureFlagPreferenceLayout() {
assertThat(mDashboard.getPreferenceScreenResId())
- .isEqualTo(R.xml.placeholder_prefs);
+ .isEqualTo(R.xml.feature_flags_settings);
}
}