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
This commit is contained in:
@@ -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)) {
|
||||
|
@@ -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();
|
||||
|
@@ -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();
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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));
|
||||
}
|
||||
|
||||
|
@@ -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.
|
||||
|
Reference in New Issue
Block a user