From 45cb6a8739dff2ae65aa93e8fdb928bfc75d1d90 Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Fri, 26 Feb 2021 11:15:56 -0500 Subject: [PATCH] Check for developer option on resuming settings activity. Test: Turn system dev option off, check pref is gone in home settings Turn system dev option on, check pref is visible in home settings Change-Id: I71d90aa5840571e908228552e498ab3a82a3352d --- .../launcher3/settings/SettingsActivity.java | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/com/android/launcher3/settings/SettingsActivity.java b/src/com/android/launcher3/settings/SettingsActivity.java index ac8dac5f7e..f03065c7f8 100644 --- a/src/com/android/launcher3/settings/SettingsActivity.java +++ b/src/com/android/launcher3/settings/SettingsActivity.java @@ -129,6 +129,7 @@ public class SettingsActivity extends FragmentActivity private String mHighLightKey; private boolean mPreferenceHighlighted = false; private NotificationDotsPreference mNotificationSettingsChangedListener; + private Preference mDeveloperOptionPref; @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { @@ -202,18 +203,37 @@ public class SettingsActivity extends FragmentActivity return FeatureFlags.showFlagTogglerUi(getContext()); case DEVELOPER_OPTIONS_KEY: - // Show if plugins are enabled or flag UI is enabled. - return FeatureFlags.showFlagTogglerUi(getContext()) || - PluginManagerWrapper.hasPlugins(getContext()); + mDeveloperOptionPref = preference; + return updateDeveloperOption(); } return true; } + /** + * Show if plugins are enabled or flag UI is enabled. + * @return True if we should show the preference option. + */ + private boolean updateDeveloperOption() { + boolean showPreference = FeatureFlags.showFlagTogglerUi(getContext()) + || PluginManagerWrapper.hasPlugins(getContext()); + if (mDeveloperOptionPref != null) { + mDeveloperOptionPref.setEnabled(showPreference); + if (showPreference) { + getPreferenceScreen().addPreference(mDeveloperOptionPref); + } else { + getPreferenceScreen().removePreference(mDeveloperOptionPref); + } + } + return showPreference; + } + @Override public void onResume() { super.onResume(); + updateDeveloperOption(); + if (isAdded() && !mPreferenceHighlighted) { PreferenceHighlighter highlighter = createHighlighter(); if (highlighter != null) {