diff --git a/src/com/android/settings/core/BasePreferenceController.java b/src/com/android/settings/core/BasePreferenceController.java index 6cc09e23369..5763d3b93ef 100644 --- a/src/com/android/settings/core/BasePreferenceController.java +++ b/src/com/android/settings/core/BasePreferenceController.java @@ -126,7 +126,6 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl @Nullable private UserHandle mWorkProfileUser; private int mMetricsCategory; - private boolean mIsFirstLaunch; private boolean mPrefVisibility; /** @@ -198,7 +197,6 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl public BasePreferenceController(Context context, String preferenceKey) { super(context); mPreferenceKey = preferenceKey; - mIsFirstLaunch = true; mPrefVisibility = true; if (TextUtils.isEmpty(mPreferenceKey)) { throw new IllegalArgumentException("Preference key must be set"); @@ -331,13 +329,6 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl } } - /** - * Set back the value of whether this is the first launch. - */ - public void revokeFirstLaunch() { - mIsFirstLaunch = false; - } - /** * Launches the specified fragment for the work profile user if the associated * {@link Preference} is clicked. Otherwise just forward it to the super class. @@ -454,7 +445,7 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl * preference visibility. */ protected void updatePreferenceVisibilityDelegate(Preference preference, boolean isVisible) { - if (mUiBlockerFinished || !mIsFirstLaunch) { + if (mUiBlockerFinished) { preference.setVisible(isVisible); return; } diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java index 256a6201cb7..aaa9b3d3bca 100644 --- a/src/com/android/settings/dashboard/DashboardFragment.java +++ b/src/com/android/settings/dashboard/DashboardFragment.java @@ -132,17 +132,22 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment @VisibleForTesting void checkUiBlocker(List controllers) { final List keys = new ArrayList<>(); + final List baseControllers = new ArrayList<>(); controllers.forEach(controller -> { if (controller instanceof BasePreferenceController.UiBlocker && controller.isAvailable()) { ((BasePreferenceController) controller).setUiBlockListener(this); keys.add(controller.getPreferenceKey()); + baseControllers.add((BasePreferenceController) controller); } }); if (!keys.isEmpty()) { mBlockerController = new UiBlockerController(keys); - mBlockerController.start(() -> updatePreferenceVisibility(mPreferenceControllers)); + mBlockerController.start(() -> { + updatePreferenceVisibility(mPreferenceControllers); + baseControllers.forEach(controller -> controller.setUiBlockerFinished(true)); + }); } } @@ -250,11 +255,6 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment } mListeningToCategoryChange = false; } - mControllers.forEach(controller -> { - if (controller instanceof BasePreferenceController.UiBlocker) { - ((BasePreferenceController) controller).revokeFirstLaunch(); - } - }); } @Override