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
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 1202d13..7203e24 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -55,6 +55,7 @@
 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 @@
 
     @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 @@
         if (titleRes < 0) {
             if (titleText != null) {
                 title = titleText.toString();
-            } else {
+            } else if (!InstrumentedPreferenceFragment.usePreferenceScreenTitle()) {
                 // There not much we can do in that case
                 title = "";
             }