diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java index 609b96a9709..66ccb6f2648 100644 --- a/src/com/android/settings/SettingsPreferenceFragment.java +++ b/src/com/android/settings/SettingsPreferenceFragment.java @@ -35,6 +35,8 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.annotation.XmlRes; import androidx.fragment.app.DialogFragment; @@ -54,6 +56,7 @@ import com.android.settings.widget.LoadingViewController; import com.android.settingslib.CustomDialogPreferenceCompat; import com.android.settingslib.CustomEditTextPreferenceCompat; import com.android.settingslib.core.instrumentation.Instrumentable; +import com.android.settingslib.preference.PreferenceScreenCreator; import com.android.settingslib.search.Indexable; import com.android.settingslib.widget.LayoutPreference; @@ -176,6 +179,24 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF } } + @Override + protected final int getPreferenceScreenResId(@NonNull Context context) { + return getPreferenceScreenResId(); + } + + /** Returns if catalyst is enabled on current screen. */ + protected final boolean isCatalystEnabled() { + return getPreferenceScreenCreator() != null; + } + + protected @Nullable PreferenceScreenCreator getPreferenceScreenCreator() { + if (!Flags.catalyst()) { + return null; + } + Context context = getContext(); + return context != null ? getPreferenceScreenCreator(context) : null; + } + public View setPinnedHeaderView(int layoutResId) { final LayoutInflater inflater = getActivity().getLayoutInflater(); final View pinnedHeader = diff --git a/src/com/android/settings/core/InstrumentedPreferenceFragment.java b/src/com/android/settings/core/InstrumentedPreferenceFragment.java index 9b03e9b16e2..ac87ea5abc6 100644 --- a/src/com/android/settings/core/InstrumentedPreferenceFragment.java +++ b/src/com/android/settings/core/InstrumentedPreferenceFragment.java @@ -147,7 +147,7 @@ public abstract class InstrumentedPreferenceFragment extends ObservablePreferenc mMetricsFeatureProvider.logClickedPreference(preference, getMetricsCategory()); } - private void updateActivityTitleWithScreenTitle(PreferenceScreen screen) { + protected void updateActivityTitleWithScreenTitle(PreferenceScreen screen) { if (screen != null) { final CharSequence title = screen.getTitle(); if (!TextUtils.isEmpty(title)) { diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java index c6d1222adca..6a96089cc96 100644 --- a/src/com/android/settings/dashboard/DashboardFragment.java +++ b/src/com/android/settings/dashboard/DashboardFragment.java @@ -308,11 +308,6 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment super.onDestroy(); } - @Override - protected final int getPreferenceScreenResId(@NonNull Context context) { - return getPreferenceScreenResId(); - } - @Override protected abstract int getPreferenceScreenResId(); @@ -413,7 +408,7 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment removeControllersForHybridMode(); } setPreferenceScreen(screen); - requireActivity().setTitle(screen.getTitle()); + updateActivityTitleWithScreenTitle(screen); } else { addPreferencesFromResource(resId); screen = getPreferenceScreen(); @@ -447,19 +442,6 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment } } - /** Returns if catalyst is enabled on current screen. */ - protected final boolean isCatalystEnabled() { - return getPreferenceScreenCreator() != null; - } - - private @Nullable PreferenceScreenCreator getPreferenceScreenCreator() { - if (!Flags.catalyst()) { - return null; - } - Context context = getContext(); - return context != null ? getPreferenceScreenCreator(context) : null; - } - /** * Perform {@link AbstractPreferenceController#displayPreference(PreferenceScreen)} * on all {@link AbstractPreferenceController}s. diff --git a/src/com/android/settings/widget/RadioButtonPickerFragment.java b/src/com/android/settings/widget/RadioButtonPickerFragment.java index d68a91afca8..121458c714a 100644 --- a/src/com/android/settings/widget/RadioButtonPickerFragment.java +++ b/src/com/android/settings/widget/RadioButtonPickerFragment.java @@ -86,7 +86,13 @@ public abstract class RadioButtonPickerFragment extends SettingsPreferenceFragme @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { - super.onCreatePreferences(savedInstanceState, rootKey); + if (isCatalystEnabled()) { + PreferenceScreen preferenceScreen = createPreferenceScreen(); + setPreferenceScreen(preferenceScreen); + updateActivityTitleWithScreenTitle(preferenceScreen); + } else { + super.onCreatePreferences(savedInstanceState, rootKey); + } try { // Check if the xml specifies if static preferences should go on the top or bottom final List metadata = PreferenceXmlParserUtils.extractMetadata(getContext(),