Set activity title from preference screen title.

- When we initialize the preference screen, if the screen title is
available, use that to set the activity title, so that it will be up to
date with dynamic language changes.
- for preference fragment that don't have preference screen xml, added a
getTitle() method for the fragment to provide the title explicitly.
- use feature flag to switch between the old and new mechanism for
handling activity title.

Bug: 64564191
Test: blaze-bin/screenshots/android/i18nscreenshots/i18nscreenshots
Change-Id: I96318a5aa81e7b8ca94118adac3245ed27a03d93
This commit is contained in:
Doris Ling
2017-10-20 15:29:56 -07:00
parent 1e87036496
commit 1a6887bbd3
2 changed files with 62 additions and 3 deletions

View File

@@ -55,6 +55,7 @@ import com.android.internal.util.ArrayUtils;
import com.android.settings.Settings.WifiSettingsActivity;
import com.android.settings.applications.manageapplications.ManageApplications;
import com.android.settings.backup.BackupSettingsActivity;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.gateway.SettingsGateway;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.core.instrumentation.SharedPreferencesLogger;
@@ -209,8 +210,12 @@ public class SettingsActivity extends SettingsDrawerActivity
@Override
public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) {
startPreferencePanel(caller, pref.getFragment(), pref.getExtras(), -1, pref.getTitle(),
null, 0);
if (InstrumentedPreferenceFragment.usePreferenceScreenTitle()) {
startPreferencePanel(caller, pref.getFragment(), pref.getExtras(), -1, null, null, 0);
} else {
startPreferencePanel(caller, pref.getFragment(), pref.getExtras(), -1, pref.getTitle(),
null, 0);
}
return true;
}
@@ -629,7 +634,7 @@ public class SettingsActivity extends SettingsDrawerActivity
if (titleRes < 0) {
if (titleText != null) {
title = titleText.toString();
} else {
} else if (!InstrumentedPreferenceFragment.usePreferenceScreenTitle()) {
// There not much we can do in that case
title = "";
}